Иногда случаются моменты, когда сердце системного трейдера начинает учащенно биться от предвкушения невероятных прибылей. Кажется, что вот он «святой грааль», найден и находится у тебя в руках. Эквити монотонно повышается в неведомые дали, а если использовать торговлю на весь капитал, то уходит вверх по экспоненте.
К несчастью, если Вы видите такую картину, то скорее всего Вы столкнулись с заглядыванием в будущее.
Как ни печально, хотя бы однажды любой трейдер, тестирующий торговую стратегию попадается в такую ловушку. Чтобы заранее знать о подстерегающих Вас опасностях — обязательно внимательно прочитайте
пост о ловушках программирования торговых стратегий.
Вот несколько основных правил:
При тестировании не получайте доступа к данным из будущего
Убедитесь в том, что Ваша
стратегия не извлекает преимущество из той информации, которую Вы никогда не сможете получить в реальном мире.
Такого типа ошибки можно легко избежать если всегда получать доступ к значению ряда данных либо индикатора в главном цикле только на текущем (либо предыдущем) баре, не пытаясь получить доступ к данным на баре с номером (bar + 1) либо с любых других баров, которые находятся в будущем
Выполняйте торговые сигналы только на баре с номером (bar + 1)
Если Вы не хотите получать доступ к данным бара, который находится в будущем, Ваша стратегия должна обрабатывать текущий бар и создавать торговый сигнал для следующего бара, т.е. для бара с номером (bar + 1). Все стратегии, которые поставляются вместе с программой Wealth-Lab Developer являются хорошими примерами для внимательного изучения. Обязательно посмотрите также
технику выходов, основанных на времени удержания позиции.
Придерживайтесь порядка выполнения приказов, применяющихся для торговых сигналов
В стратегиях, которые используют многочисленные виды приказов одновременно придерживайтесь следующего порядка выставления приказов:
1. Сигналы AtClose могут выполняются как на текущем баре,
2. Сигналы AtMarket
3. Сигналы AtStop (ограничивающие убытки), и наконец,
4. Сигналы AtLimit (берущие целевую
прибыль)
С осторожностью используйте торговые сигналы, базирующийся на статусе активности позиции
Для избегания таких ошибок запомните главное правило: никогда не проверяйте статус активности позиции после выполнения любого торгового сигнала.
К примеру, в шаблоне кода однопозиционной стратегии, который изначально встроен в редактор стратегий вся логика торговли базируется на проверке является ли текущая позиция активной. Причем это происходит до выполнения торговых сигналов.
Искажения результатов из-за выбытия компаний
Вы должны иметь в виду, что возможны значительные искажения результатов тестирования даже в том случае, если код стратегии безупречен.
Однако здесь вклинивается другая проблема — при бектестинге стратегий Вы обычно используете данные о финансовых инструментах, которые относятся только к тем компаниям, которые выжили в суровых условиях рыночных реалий.
При этом финансовые инструменты, относящиеся к компаниям, которые больше не существуют или же больше не торгуются публично «выпадают» из Ваших тестов.
Более подробно об этих ловушках, включая пример кода таких «ущербных» стратегий можно прочитать
здесь:.
Ну и конечно было бы великолепно сделать посты по оценке стратегий.
1) торговля лимитниками на открытии
2) торговля стоп-лимитниками… т.к очень часто не наливают
Доколе Тимофей будет спонсировать всех?
«1. Сигналы AtClose могут выполняются как на текущем баре,»
логично было видеть окнчание мфразы «так и ...»
Спасибо КЭП, а я то не знал.