«Бот для входа» на языке Lua для Quik
Цена договорная
Что должен делать бот:
Алгоритм должен автоматически выставлять лимитные заявки по текущей рыночной цене (ближайшая цена в момент выставления) по всем указанным счетам. При этом должен быть параметр «временного лага», т.е. например выставляется лимитная заявка, и неисполненный остаток через 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
+ это позиция на покупку,
— это позиция на продажу
Алгоритм должен автоматически выставлять лимитные заявки по текущей рыночной цене (ближайшая цена в момент выставления) по всем указанным счетам. При этом должен быть параметр «временного лага», т.е. например выставляется лимитная заявка, и неисполненный остаток через 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
+ это позиция на покупку,
— это позиция на продажу
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.