Я перед началом торгов синхронизирую часы ПК с ntp-сервером, чтобы как можно раньше выставить заявки. Но иногда задержка в Интернете меняется, что может привести к опозданию.
В скрипте, который выставляет заявки, я сначала вызываю
Код |
---|
waitForDateTime(datetime)
|
и она ждёт до времени 06:49:59, т.е. выход из неё происходит за 1 с. до начала приёма заявок. Затем я использую
это число подобрал опытным путём. После этого начинает работать цикл выставления заявок. Алгоритм Нейгла не использую, т.к. не заметил особой пользы. Иногда почему-то бывают отклонения в 0.2 с и до 0.3 с. Возможно, брокер или биржа в разные дни может тормозить по-разному, чёрт их знает… В цикле выставления заявок перед повтором заявки использую свою функцию задержки на 1 мс, которая делает определённое количество умножений:
Код |
---|
local a
for _ = 1, 2604 * ms do
a = 10000 * 10000 a = 10000 * 10000 a = 10000 * 10000 a = 10000 * 10000 a = 10000 * 10000
[...]
a = 10000 * 10000 a = 10000 * 10000 a = 10000 * 10000 a = 10000 * 10000 a = 10000 * 10000
end
|
В диспетчере задач повышаю приоритет Квика на шаг, до "выше среднего".
Есть ли у кого идеи, как усовершенствовать этот скрипт, чтобы он адаптировался к сиюминутной задержке в Интернете?