«Бот для входа» на языке Lua для Quik

Гість3 роки у сервісі
Дані замовника будуть вам доступні після подання заявки
21.06.2022

Что должен делать бот:

Алгоритм должен автоматически выставлять лимитные заявки по текущей рыночной цене (ближайшая цена в момент выставления) по всем указанным счетам. При этом должен быть параметр «временного лага», т.е. например выставляется лимитная заявка, и неисполненный остаток через 15 секунд переносится на новую текущую цену. И так каждые 15 сек пока весь объем не исполнится.

В случае подключения нескольких счетов алгоритм должен выставлять заявки пропорционально объему средств на каждом счете исходя из текущего ГО.

Пример:

Остаток на Счете 1 – 500 тыс

Остаток на Счете 2 – 1 млн. руб

Задача: купить фьючерс BR-5.22 в 18:30 на 90% от свободных средств на счетах с лагом 15 секунд.

Итог: цена Ask фьючерса в BR-5.22 в 18:30 была 106,30, гарантийное обеспечение 1 контракта в 18:30 = 28000р. Бот выставляет две заявки по цене 106.30:

по Счету 1= 500.000*0,9/28000 = 16 контрактов

по Счету 2= 1.000.000*0,9/28000 = 32 контракта

Каждые 15 секунд неисполненное количество переносится на новую текущую цену Ask пока не исполнится.

Параметры, которые указываются вручную:

1) Инструмент (код фьючерса)

2) Выбор направление (покупка/продажа)

3) Время открытия позиции

4) Объем средств, на которое выставляется заявка (в % от текущей стоимости портфеля)

5) Временной Лаг (в секундах)

6) Номера счетов, которые участвуют в алгоритме (список счетов, по которым будут выставлены заявки)

Параметры, которые берутся из Quik’а:

1) Цена входа – Ask для покупок в момент выставления заявки, и Bid для продаж (из стакана), либо цена последней покупки/продажи.

2) Стоимость портфеля – денежная оценка (таблица «Ограничения по клиентским счетам»)

3) ГО – из «таблицы текущих торгов»

В ситуации когда уже есть открытая позиция и необходимо зайти в противоположную, бот должен автоматом закрывать текущую открытую и заходить в противоположную позицию. Например, текущая позиция – +15 контрактов (покупка). В 18:30 должна быть продажа на 90% от портфеля (допустим также -15 контрактов). Тут бот должен продать не 15, а 30 контрактов.

+15 – 30 = -15

+ это позиция на покупку,

— это позиция на продажу

Заявки фрілансерів