TGB написал: Почему бы не записывать строку сразу в файл (в системе это буферизуется). Вы проверяли, сколько записей выполняется в файл за 1 секунду, если писать напрямую? Если вы это сделаете, то, возможно, удивитесь.
Я кэш буферам виндовс уже давно не удивляюсь, на диске тоже что-то похожее есть... Если писать с буферизацией, то сначала кусочки будут переписываться из памяти в память, а потом на диск, а если я сам буду писать без буферизации, то, как я надеюсь, винда будет писать сразу на диск. Хотя, в принципе, не факт, что это будет быстрее, тут опять нужны эксперименты (за которые денег не дают).
Повторное использование строки
Пользователь
Сообщений: Регистрация: 27.12.2022
19.03.2024 09:41:33
Цитата
TGB написал: При этом надо понимать, что реально работающую стратегию, стабильно, без провалов, приносящую доход хотя бы в 20% (в текущий момент) на годовом периоде, вам никто не предложит.
Я безо всякой "стратегии" как раз этим давно занимаюсь, акциями металлами я уже давно не торгую и уже отвык от этих стрёмных активов. Я ещё в октябре "силовым методом" получил статус квала и получаю взаймы от брокера столько, что можно купить квартирку в Москве (но, правда, не для всех активов). Проблема, как успеть продать лишнее по цене на шаг выше, а не по цене покупки...
Ближайшая задача слегка автоматизировать эту торговлю, чтобы не щёлкать в бешеном темпе по 5-ти стаканам, когда "шара попёрла"...
Кстати, я вчера день потратил на выяснение возможности повторного использования строки и выяснил, что это невозможно, т.к. Луа при малейшей попытке конкатенации моментально отправляет эту строку в мусор, пусть даже её длина равна 0 (очевидно, проверок не делается). Поэтому, надо либо держать строки в массиве и использовать concat, либо в длл.
Повторное использование строки
Пользователь
Сообщений: Регистрация: 27.12.2022
18.03.2024 14:53:09
Когда я это делал, то только начал писать на Луа, не знал, что мне нужно делать, и какая дорога к деньгам более прямая. Просто хотел накопить таких файлов и попробовать найти закономерности взлёта цены. И у меня околонаучный склад ума, как у киплинговского слонёнка: хочется копать вглубь и искать там золотые самородки. До сих пор ничего роботоподобного не сделал... На этом форуме могут до кровохарканья обсуждать двойные и тройные очереди, показывать загадочные картинки, от которых рябит в глазах, но ничего действительно полезного не скажут.
Повторное использование строки
Пользователь
Сообщений: Регистрация: 27.12.2022
18.03.2024 13:04:03
Цитата
TGB написал: Этот коллбек я до сих пор не использовал.
Тогда посмотрите на кусочек от вывода моего Луа скрипта, который обрабатывал OnAllTrade от 4 января 2023 г.:
Скрытый текст
TRMK 18:45:26.000085 216.96 2 S TRMK 18:45:26.000085 216.96 8 S TRMK 18:45:26.000085 216.96 2 S TRMK 18:45:26.000085 216.96 18 S TRMK 18:45:26.000085 216.96 51 S TRMK 18:45:26.000085 216.96 9 S TRMK 18:45:26.000085 216.96 4 S TRMK 18:45:26.000085 216.96 1 S TRMK 18:45:26.000085 216.96 47 B
Он записывал из таблицы, переданной ему, тикер, время, цену, количество лотов и направление сделки. И таких строк с тем же самым тикером и временем набралось 58. И это только по одному тикеру, а ещё работал обработчик OnQuote, который в этот же файл выводил содержимое стаканов. Вот ещё кусочек из того же файла, со стаканами:
TGB написал: Где вы обнаружили коллбеки QUIK, вызываемые десятки раз за 1 мкс?
В OnAllTrade видел: время на сервере биржи с точностью 1 мкс не меняется, а в файл записалось больше 64 сделок...
Повторное использование строки
Пользователь
Сообщений: Регистрация: 27.12.2022
18.03.2024 10:43:58
Можно найти, что эта тема (чудовищная конкатенация строк в Луа) волнует народ в районе англоязычного stackoverflow, а здесь создатель Луа предлагает такую полумеру:
Повторное использование строки
Пользователь
Сообщений: Регистрация: 27.12.2022
18.03.2024 10:40:21
И да, ваш перегруженный вариант анекдота некорректен: ведь я с самого начала играл на стороне чукчи...
Повторное использование строки
Пользователь
Сообщений: Регистрация: 27.12.2022
18.03.2024 10:18:10
Тут дело не в том, что есть запись на диск, а в том, что за 1 мкс десятки раз может выполняться оператор
Код
mess = mess .. <строка от коллбэка>
что будет приводить к созданию новой строки и переписыванию в неё содержимое старой, которую должен убрать сборщик мусора. И ЦП будет занят этой бесполезной издевательской работой. Я считаю, что в этом причина торможения.
Повторное использование строки
Пользователь
Сообщений: Регистрация: 27.12.2022
18.03.2024 10:00:50
И всё-таки, я на этом форуме несколько раз видел, что людям издавна не хватает скорости (и для них это "жизненно важно"), а наращивание числа ядер и повышение тактовой частоты мало что не даёт, вот ещё пример такой темы:
А геологам просто надо держать свои снегоходы заведёнными.
Повторное использование строки
Пользователь
Сообщений: Регистрация: 27.12.2022
17.03.2024 22:31:59
Мне кажется, что ничего не случится, если извне (из длл) строка будет изменена, ведь, если строка не находится внутри таблицы, вычисление хеша от неё не нужно?
Повторное использование строки
Пользователь
Сообщений: Регистрация: 27.12.2022
17.03.2024 22:28:04
Кто-то предлагал вместо наращивания строки запоминать каждый вывод коллбэка в строку таблицы t, а потом делать
Код
s = table.concat(t)
Но это тоже дурацкий костыль для обхода неизменяемости строк Луа... Чувствую, что можно сделать, как я хотел в #1...
Звук через mciSendString и MessageBeep
Пользователь
Сообщений: Регистрация: 27.12.2022
17.03.2024 22:09:37
Вопрос, почему mciSendString в консольной программе не выдаёт звук, так и остался открытым...
Как вы боретесь с описками в именах переменных?
Пользователь
Сообщений: Регистрация: 27.12.2022
17.03.2024 22:04:38
Не нашёл нормального "линтера", а условный оператор это не совсем то и громоздко...
Повторное использование строки
Пользователь
Сообщений: Регистрация: 27.12.2022
17.03.2024 22:01:29
Как-то уже об этом писал... Есть строка mess (age), в которой коллбэки накапливают свой вывод, при превышении определённой длины строка записывается в файл. Потом обычно пишут mess='', чтобы сбросить длину строки в 0, но что в этом случае произойдёт? Создастся новая строка, или в структуре TString для этой строки её длина установится в 0? Я не вижу, где хранится число байтов, выделенных под строку, и как контролируется выход за её предел при дописывании к строке? Не хочется ненужного пересоздания строки и сборки мусора, а хочется просто зарезервировать под строку 10 Мб и использовать эту же память под строку постоянно. Зачем выметать сор из избы строки, если можно обойтись без этого? Как это всё оптимизировать и сделать, как в нормальных языках типа того же си?
DNS влияет на скорость работы Квика?
Пользователь
Сообщений: Регистрация: 27.12.2022
17.03.2024 21:12:13
Похоже, что DNS не ускорит работу Квика, хотя, в доступных соединениях у Сервер1 и Резерв стоят IP, а у Сервер 2 в столбце IP стоит почему-то quik.vtb.ru.
Как получить цены "BID" и "OFFER" чтобы они выводились как в стакане?
Пользователь
Сообщений: Регистрация: 27.12.2022
17.03.2024 21:06:17
Цитата
paluke написал: Код string.format('%.'..tostring(price_scale)..'f', tonumber(price))
Здесь вызов tostring по-моему лишний.
DNS влияет на скорость работы Квика?
Пользователь
Сообщений: Регистрация: 27.12.2022
15.03.2024 11:13:03
Цитата
nikolz написал: , А Вы знаете, зачем нужен DNS? ---------------------- Судя по вопросу, Вы этого не знаете. ---------------------- Прочитайте в интернете и вопрос отпадет сам собой.
Я когда-то знал это, даже своей программкой получал пакет по UDP с корневого сервера. Сейчас поискал в Гугле, зачем нужен DNS, оказалось, что для того же, для чего и раньше:
=== DNS (система доменных имен) преобразует доменные имена, удобные для человеческого восприятия (например, ), в IP-адреса, понимаемые машиной (например, 192.0.2.44). ===
и вдобавок
=== Какой DNS самый быстрый? 1.1.1.1 — самый быстрый в мире, ориентированный на конфиденциальность DNS-резолвер ===
А в чём был замечен криминал у этой темы?
DNS влияет на скорость работы Квика?
Пользователь
Сообщений: Регистрация: 27.12.2022
13.03.2024 17:21:02
Ошибся: не провайдеру, а брокеру...
DNS влияет на скорость работы Квика?
Пользователь
Сообщений: Регистрация: 27.12.2022
13.03.2024 17:20:35
Как часто ПК запрашивает DNS сервер для посылки данных провайдеру? Можно эту частоту уменьшить?
DNS влияет на скорость работы Квика?
Пользователь
Сообщений: Регистрация: 27.12.2022
13.03.2024 17:19:05
Или DNS родного провайдера лучше? Чем можно сравнить скорости, в Квике можно как-то заметить ускорение?
DNS влияет на скорость работы Квика?
Пользователь
Сообщений: Регистрация: 27.12.2022
13.03.2024 17:17:04
Сегодня увидел, что кое-кто на западе советует установить самые быстрые и бесплатные DNS 1.1.1.1 и 1.0.0.1, например: nimaboldi.uz/как-настроить-в-windows-10-самый-быстрый-dns/ Есть ли от этого польза В РФ? А есть ещё DNS от Гугла 8.8.8.8. Что из этого всего лучше?
Вопрос по стеку Lua, стеку Lua и нюансы его чтения
Добавлю отсебятину: в Lua для логического типа и типа nil не используется память под данные: просто байт для хранения типа переменной указывает, что тип этой переменной nil. Для логического типа байт типа указывает, что это лог. тип, а дополнительный бит в этом байте равен 0/1 в случае false/true.
Как вы боретесь с описками в именах переменных?
Пользователь
Сообщений: Регистрация: 27.12.2022
13.03.2024 10:36:06
В Луа нет опции предупреждать об использовании необъявленных переменных, как это сделано в Перле, поэтому могут возникать труднонаходимые ошибки. Есть ли какие-нибудь сторонние программы для проверки скриптов на такие описки?
Получить всю таблицу целиком, Получить всю таблицу целиком без цикла
Пользователь
Сообщений: Регистрация: 27.12.2022
11.03.2024 19:46:12
Не знаю, почему не выводит, но я бы написал fn так (для чего в неё передавать sec_code и currentbal?):
Код
function fn(limit_kind)
return limit_kind==2
end
Схема торговой программы
Пользователь
Сообщений: Регистрация: 27.12.2022
11.03.2024 14:52:08
Цитата
Constantin написал: Я тоже свою систему написал. Правда не торгую.
Она у вас по какому принципу покупает: по индикаторам, по всплеску цены акции, по минимуму у волны в коридоре цен?.. При проверке работы в плюсе торгует?
nikolz написал: if (lua_gettop(L)>1)SleepEx(lua_tointeger(L,2),1);
Не понял, в чём здесь отличие от простого Sleep?
Цитата
Nikolay написал: Там тоже надо путь с пробелами обрамлять в кавычки. Весь путь, а не только часть.
Я в #31 обрамлял также часть пути, по-всякому пробовал, не работает! Если у вас работает, то покажите команду из Луа и из Си.
способ звукового сигнала в луа
Пользователь
Сообщений: Регистрация: 27.12.2022
07.03.2024 16:18:15
Вернее, дело не в звуковом устройстве: в упрощённом варианте команд файлы с пробелами не играются, а в той форме, что была у w32, как помню, они игрались.
способ звукового сигнала в луа
Пользователь
Сообщений: Регистрация: 27.12.2022
07.03.2024 16:09:44
Короче, устройство waveaudio почему-то не играет файлы с пробелами, хоть тресни...
способ звукового сигнала в луа
Пользователь
Сообщений: Регистрация: 27.12.2022
07.03.2024 16:04:41
Опять ошибся: это другой файл игрался, просто я с него комментарии зачем-то убрал...
способ звукового сигнала в луа
Пользователь
Сообщений: Регистрация: 27.12.2022
07.03.2024 16:01:46
Тьфу ты, черти мелкомягкие: я так и подозревал, что такой костыль заработает:
Код
mciSendString("PLAY C:/Windows/Media/Windows Hardware Fail.wav type waveaudio", NULL, 0, NULL);
Явная ошибка в парсинге команды...
Сколько времени на эту ерунду потерял вместо того, чтобы что-то полкзное для себя сделать...
Для чего в Си и в Луа в путях ставят две обратных косых вместо оной прямой, ведь Виндовс в путях понимает одну прямую косую: C:/Windows/Media/Alarm09.wav?
способ звукового сигнала в луа
Пользователь
Сообщений: Регистрация: 27.12.2022
07.03.2024 14:57:53
В принципе, получился неплохой подарок к 8 Марта (а чем я хуже женщины?) Но неработоспособность в некоторых случаях омрачает предпраздничное настроение...
способ звукового сигнала в луа
Пользователь
Сообщений: Регистрация: 27.12.2022
07.03.2024 14:55:01
Хм, методом тыка убрал ALIAS, как было в w32, устройство взял waveaudio, и звуки стали смешиваться:
Т.е., методика такая: один раз выдаём команду OPEN и потом много раз только PLAY, а в OnStop можно выдать CLOSE waveaudio?
Но почему не получается играть файлы с пробелами, как в комментариях?? И почему в консольной программе это всё продолжает не работать???
способ звукового сигнала в луа
Пользователь
Сообщений: Регистрация: 27.12.2022
07.03.2024 12:41:36
Цитата
Nikolay написал: Можно даже проигрывать кусок из файла.
Я на те страницына сайте МС смотрел, не нашёл, как смешивать звуки. Я сейчас сделал аналог того, что у меня игралось в dll:
Код
#include <stdio.h>
#include <windows.h>
#include <Mmsystem.h>
int main()
{ if (!mciSendString("OPEN C:\\Windows\\Media\\chord.wav TYPE MpegVideo ALIAS QUIK_MP3", NULL, 0, NULL)) puts("fail");
mciSendString("PLAY QUIK_MP3", NULL, 0, NULL);
return 0;
}
Не играет, выдаёт fail. Не пойму, почему это работает в dll для Квика. Такое впечатление, что в консольной программе mciSendString не работает. А у вас как? Транслировать командой
Кто что скажет, почему асинхронно не работает? Или это только у меня так?
способ звукового сигнала в луа
Пользователь
Сообщений: Регистрация: 27.12.2022
06.03.2024 20:21:56
Мне ваш пример с os.execute и 10-кратным появлением окна цмд перекрыл все стаканы... А если бы у меня в это время пошли сделки? Представляете свою материальную отвественность?
способ звукового сигнала в луа
Пользователь
Сообщений: Регистрация: 27.12.2022
06.03.2024 19:48:44
Цитата
nikolz написал: Т е не надо никаких dll для этого , понятно?
Из моей темы, где я привёл свой пример на основе w32, было видно, что мне это понятно... И мне почему-то кажется, что SoundPlayer не может воспроизводить mp3.
Схема торговой программы
Пользователь
Сообщений: Регистрация: 27.12.2022
06.03.2024 17:21:42
А может, его звали Вальдемар, кто его знает...
способ звукового сигнала в луа
Пользователь
Сообщений: Регистрация: 27.12.2022
06.03.2024 14:04:59
Цитата
nikolz написал: Кроме музыки, в модуле можно синтезировать предложения .
Круть. На след. этапе можно сделать виртуальную дикторшу. А для простых смертных у mciSendString предусмотрено проигрывание звука с заданного смещения и заданной длительности.
Схема торговой программы
Пользователь
Сообщений: Регистрация: 27.12.2022
06.03.2024 12:00:44
Кстати, если кто не знает, Буратино в этой сказке - это сам А. Толстой, Карабас-Барабас - Мейерхольд (которого Толстой не любил), а Дуремар - помощник Мейерхольда, которого звали Вольдемар. У др. героев тоже были прототипы. Поэтому не всё так просто.