Как тестируете стратегии для биржи? - страница 11

Несколько цитат по теме.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вопрос по работе со стопами: классический на лимитниках + интегрированные в позицию стопы

Renat Fatkhullin, 2012.07.02 15:41

Лимит ордера активируются, когда найдется соответствующий Bid или Ask (в зависимости от типа ордера).

Смогли сматчить ваше желание купить по цене X с ценой Ask продавца при подходящем объеме - сделка состоится. Last - это цена последней сделки и тут не важна.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Какими инструментами торговать в "Открытие"

Renat Fatkhullin, 2016.04.22 18:22

В общем случае исполнение по аску байлимита абсолютно верное. Например, нет ластов или идет тестирование не по реальным тикам.

Как я говорил ранее, стратегия трейдера в тестере пассивна по отношению к рыночным ценам и не меняет их своими сделками.

К сожалению, moex не передает в своих шлюзах направление сделки в ласт тиках. Это означает, что нельзя со 100% точностью сказать, в каком направлении двигали рынок. А это важно для срабатывания ордеров.

Если продавливали вниз продажей по рынку, то цена ласт имеет право выступать виртуальным аском. И наоборот, при покупках с рынка ласт становится виртуальным бидом, что позволяет срабатывать ордерам типа селллимит.

В случае, когда нет направления в ласте, можно предсказать направление сдвига. Мы проведем исследования и возможно, будем проставлять направление сами.

Но без этого моделирование срабатывания только по бидам и аскам.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 2615: Фундаментальный анализ и комплексный критерий в тестере стратегий

Renat Fatkhullin, 2020.09.16 11:51

Это нормально - Bid, Ask, Last могут приходить независимо заполненными.

Вы Last забыли выводить, кстати. Поэтому и думаете, что тики битые.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Renat Fatkhullin, 2017.04.08 17:27

Не забывайте, в запросе вы получаете сырой объединенный поток тиков, а тестер пропускает дублирующиеся тики.

info/trade-потоки часто могут быть несинхронизированными. Поэтому логично для бэктестов создавать свою историю, убирая из нее косяки.

fxsaber #:

Несколько цитат по теме.

info/trade-потоки часто могут быть несинхронизированными. Поэтому логично для бэктестов создавать свою историю, убирая из нее косяки.

Какими инструментами торговать в "Открытие"

Renat Fatkhullin, 2016.04.22 18:22


К сожалению, moex не передает в своих шлюзах направление сделки в ласт тиках. Это означает, что нельзя со 100% точностью сказать, в каком направлении двигали рынок. А это важно для срабатывания ордеров.
...
В случае, когда нет направления в ласте, можно предсказать направление сдвига. Мы проведем исследования и возможно, будем проставлять направление сами.
Видимо уже сами ставят. Но наблюдаемые в сохраненной истории терминала скачки Ask|Bid цен относительно Last сверху и снизу говорит о том, что не совсем правильно проставляют, то есть действительно лучше самостоятельно корректировать из Last.

Какими инструментами торговать в "Открытие"

Renat Fatkhullin, 2016.04.22 18:22

Если продавливали вниз продажей по рынку, то цена ласт имеет право выступать виртуальным аском. И наоборот, при покупках с рынка ласт становится виртуальным бидом, что позволяет срабатывать ордерам типа селллимит.
Может наоборот? 
Aleksei Kuznetsov #:
Видимо уже сами ставят. Но наблюдаемые в сохраненной истории терминала скачки Ask|Bid цен относительно Last сверху и снизу говорит о том, что не совсем правильно проставляют, то есть действительно лучше самостоятельно корректировать из Last. Может наоборот? 
В полной мере наоборот (т.е. переворачивая оба слова формулировки) не получится, потому что продажа по рынку идет по Bid-у и ставить "виртуальный" Bid на то же место, где он и был - ничего не меняет. Но вот правомерно ли ставить туда Ask - тоже большой вопрос. Вероятно, имеется в виду, что нижний край стакана опустел, и старого Bid-а там уже нет. Но тогда по идее нужно двигать Bid вниз, а не Ask, но не понятно, насколько. С противоположным направлением - аналогичные сомнения. В общем, при отсутствии данных, любые предположения неточны.
Stanislav Korotky #:
Но тогда по идее нужно двигать Bid вниз, а не Ask, но не понятно, насколько. С противоположным направлением - аналогичные сомнения. В общем, при отсутствии данных, любые предположения неточны.
Либо на место последнего в серии (подряд идущие в одну миллисекунду SELL-сделки) last, либо еще ниже - на TickSize (например). Сам реализовал первый вариант.
Stanislav Korotky #:
В полной мере наоборот (т.е. переворачивая оба слова формулировки) не получится, потому что продажа по рынку идет по Bid-у и ставить "виртуальный" Bid на то же место, где он и был - ничего не меняет. Но вот правомерно ли ставить туда Ask - тоже большой вопрос. Вероятно, имеется в виду, что нижний край стакана опустел, и старого Bid-а там уже нет. Но тогда по идее нужно двигать Bid вниз, а не Ask, но не понятно, насколько. С противоположным направлением - аналогичные сомнения. В общем, при отсутствии данных, любые предположения неточны.

Полагаю, что логиным можно считать так:
 Если Last Sell изменил цену, то это новый Bid:

- если стал ниже, то полностью выбраны все лоты по предыдущей цене
- если стал выше, то был добавлен лимитный ордер на покупку выше Bid и ниже Ask (внутри спреда) и его цена стала новым Bid и затем новый Last Sell произошел по его цене

Если Last Buy изменил цену, то это новый Ask

- если стал выше, то полностью выбраны все лоты по предыдущей цене
- если стал ниже, то был добавлен лимитный ордер на продажу ниже Ask и выше Bid (внутри спреда) и его цена стала новым Ask и затем новый Last Buy произошел по его цене

Aleksei Kuznetsov #:

Полагаю, что логиным можно считать так:
 Если Last Sell изменил цену, то это новый Bid:

- если стал ниже, то полностью выбраны все лоты по предыдущей цене
- если стал выше, то был добавлен лимитный ордер на покупку выше Bid и ниже Ask (внутри спреда) и его цена стала новым Bid и затем новый Last Sell произошел по его цене

Если Last Buy изменил цену, то это новый Ask

- если стал выше, то полностью выбраны все лоты по предыдущей цене
- если стал ниже, то был добавлен лимитный ордер на продажу ниже Ask и выше Bid (внутри спреда) и его цена стала новым Ask и затем новый Last Buy произошел по его цене

Ровно эту логику закодил. Единственное, что если мы видим в last-серии сразу много ценовых уровней, то это значит, что сразу несколько уровней стакана были взяты. Поэтому цена одномоментно сразу скачет на несколько TickSize-уровней для стороннего наблюдателя.