Как отследить исполнение лимитированной заявки?

Страницы: 1
RSS
Как отследить исполнение лимитированной заявки?
 
Добрый день. Написал для себя торгового робота на луа. Алгоритм работы следующий:
1.После возникновения сигнала, робот выставляет лимитированную заявку с небольшим отступом от текущей цены.
2. Ждёт 10 секунд и снимает неисполненный остаток либо всю заявку. Торгуем  пробой, поэтому либо получается войти по хорошей цене, либо ждём следующего сигнала на вход.
3. Если заявка исполнилась полностью или частично, то выставляется лимитированная заявка для фиксации прибыли.
4. Номер заявки получен. Каждый бар отслеживается её активность, при необходимости выставляется новая заявка.
Вопрос:
Каким образом отследить исполнение этой лимитированной заявки с конкретным номером? Т.е. отслеживать не состояние "АКТИВНА" или "НЕ АКТИВНА", а именно исполнена или нет.

Стоп-заявки не использую принципиально,  в случае отклонения цены против открытой позиции робот отправляет смс-уведомление.
 
Калбаки OnOrder и OnTrade в этой ветке уже предлагали?
 
Цитата
Imersio Arrigo написал:
Калбаки OnOrder и OnTrade в этой ветке уже предлагали?
Я понимаю, что в  OnTrade  можно сравнить номера заявок и соответственно отследить та или не та заявка была исполнена.
Но дело в том, что OnTrade, не использую по причине многократного срабатывания по одной и той же сделке (может не разобрался, только учусь). Вот и подумал, что может другие решения есть? Ну или как вариант подскажите как победить многократные вызовы OnTrade. Т.к. после исполнения моей заявки, мне отправляется СМС с платного центра. И по 3-4 сообщения с одной сделки не айс))
 
Только что попробовал через OnTrade. В результате - 4 срабатывания ну и 4 смс соответственно, при том что заявка прошла 1 сделкой. Может из скрипта как-то можно стандартное квиковское оповещение на заявку повесить?
 
Добрый день.
Используйте поле flags на структуре заявки. Вот выдержка из документации на QLua:
бит 0 (0x1) Заявка активна, иначе – не активна
бит 1 (0x2) Заявка снята. Если флаг не установлен и значение бита «0» равно «0», то  заявка исполнена
перехватываете в OnOrder() изменение заявки и смотрите на флаг.
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
 
Добрый день.
Используйте поле flags на структуре заявки. Вот выдержка из документации на QLua:

бит 0 (0x1) Заявка активна, иначе – не активна
бит 1 (0x2) Заявка снята. Если флаг не установлен и значение бита «0» равно «0», то заявка исполнена

перехватываете в OnOrder() изменение заявки и смотрите на флаг.
Перед тем как задать вопрос, убедитесь, что решение Вашей задачи не описано в официальном мануале - 'Использование Lua в Рабочем месте QUIK.pdf' https://arqatech.com/upload/Public/quik_lua.zip
 
Цитата
Nikolay Pavlov написал:
Добрый день.
Используйте поле flags на структуре заявки. Вот выдержка из документации на QLua:

бит 0 (0x1) Заявка активна, иначе – не активна  
бит 1 (0x2) Заявка снята. Если флаг не установлен и значение бита «0» равно «0», то заявка  исполнена  

перехватываете в OnOrder() изменение заявки и смотрите на флаг.
Блин! Спасибо! Все оказалось проще чем думал. Флаги в скрипте использовал, только не додумался через OnOrder()  мониторить. Несмотря на то, что OnOrder()  срабатывает неоднократно, флаг отфильтрует ненужные срабатывания.  
Страницы: 1
Читают тему
Наверх