Обсуждение статьи "Универсальный торговый эксперт: Событийная модель и прототип торговой стратегии (Часть 2)" - страница 3

 
Гога:

... а я при добавлении к советнику новой стратегии, дописываю ТОЛЬКО правила торговли для неё и настраиваю торговый движок.

Я не претендую на правильность моего подхода, мне так больше нравится. ;)

Так это движок и делает. Вы описываете стратегию в терминах правил входа и выхода, и добавляете в советник.

Гога:

Я исхожу, что мне нужны в логе только содержательные информационные сообщения. Исходя из этого, мне не интересно знать, что СТОПЫ не изменились. Про торговое окружение тоже...

Василий, я не критикую, я высказываю свою точку зрения. Я понимаю, когда много времени потрачено на создание системы, даже мысль о возможном её изменении, вызывает дискомфорт. Такие разговоры (обмен мнениями) имеет смысл на стадии осмысливания. :)

Возможно на счет того сообщения Вы и правы. Но мне оно в начале разработки движка было крайне необходимо. На самом деле оно и сейчас достаточно полезно. Оно показывает что движок в курсе торговых действий и значит торговая позиция гарантировано доставляется до стратегии. Эта информация становиться важной в момент отладки, когда например, позиция есть, однако по каким-то причинам стратегия не обрабатывает ее. Это сообщеие помогает найти причину: ошибка в логике стратегии или торговая ошибка, или ошибка движка.

 
Vasiliy Sokolov:

Так это движок и делает. Вы описываете стратегию в терминах правил входа и выхода, и добавляете в советник.

Не пойму, а когда и где описывать правильное формирование СТОПов (в том числе с учётом STOPLEVEL), обрабатывать (при открытии и закрытии позиций) реквоты?

Как я понимаю, Вы настраиваете работу движка на начале нового бара. Если нет механизма многократного повтора торгового запроса при обработке реквотов, то вовремя не откроется новая позиция (это куда не шло), а вот, если вовремя не закроется (по сигналу) открытая позиция - могут быть неприятные последствия для депозита.

 
Гога:

Не пойму, а когда и где описывать правильное формирование СТОПов (в том числе с учётом STOPLEVEL), обрабатывать (при открытии и закрытии позиций) реквоты?

Как я понимаю, Вы настраиваете работу движка на начале нового бара. Если нет механизма многократного повтора торгового запроса при обработке реквотов, то вовремя не откроется новая позиция (это куда не шло), а вот, если вовремя не закроется (по сигналу) открытая позиция - могут быть неприятные последствия для депозита.

Обработка реквот должна происходить в торговой логике эксперта. Если в InitBuy вы вызвали метод Trade.Buy и вместо ожидаемого true, он вернул false, необходимо, не выходя из InitBuy, понять что произошло и повторить либо скорректировать свое действие. Замечу что реквоты для многих режимов торгов не актуальны. Например на бирже нет вообще понятия реквоты. Следовательно не может быть и речи о создании некой универсальной прослойки, которая всегда способна понять торговые действия пользователя и исправить их на "лету".
 
Vasiliy Sokolov:
Замечу что реквоты для многих режимов торгов не актуальны. Например на бирже нет вообще понятия реквоты. Следовательно не может быть и речи о создании некой универсальной прослойки, которая всегда способна понять торговые действия пользователя и исправить их на "лету".

Ну, это как раз не помеха, анализировать ошибку можно, даже если на каких-то типах счетов или торговых площадках ее никогда не будет.

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

 
Vasiliy Sokolov:
Обработка реквот должна происходить в торговой логике эксперта. Если в InitBuy вы вызвали метод Trade.Buy и вместо ожидаемого true, он вернул false, необходимо, не выходя из InitBuy, понять что произошло и повторить либо скорректировать свое действие. Замечу что реквоты для многих режимов торгов не актуальны. Например на бирже нет вообще понятия реквоты. Следовательно не может быть и речи о создании некой универсальной прослойки, которая всегда способна понять торговые действия пользователя и исправить их на "лету".

Получается, что каждый раз для новой стратегии, нужно отдельно прописывать обработку реквотов ( в зависимости от того, есть они или нет) а, также, делать проверку правильного формирования СТОПов, опять-таки от требований стратегии или предпочтений трейдера. Получается, то кроме

Vasiliy Sokolov:

Так это движок и делает. Вы описываете стратегию в терминах правил входа и выхода, и добавляете в советник.

описания правил входа\выхода ещё нужно каждый раз ещё что-то дописывать?! Хотелось бы уточнить "что ещё нужно каждый раз дописывать"?

 
Andrey Khatimlianskii:

Ну, это как раз не помеха, анализировать ошибку можно, даже если на каких-то типах счетов или торговых площадках ее никогда не будет.

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

Интересно, какие ещё возможные действия можно предпринять в ответ на реквоту, кроме как повторить попытку торгового запроса?
 
Гога:
Интересно, какие ещё возможные действия можно предпринять в ответ на реквоту, кроме как повторить попытку торгового запроса?
Как минимум, проанализировать цену. Возможно, входить уже совсем не надо.
 
Andrey Khatimlianskii:
Как минимум, проанализировать цену. Возможно, входить уже совсем не надо.
Да, есть такой механизм. И где ему быть встроенным, как не в класс торговых приказов? И как формализовать такой механизм, какое резкое движение считать критическим?
 
Гога:
Да, есть такой механизм. И где ему быть встроенным, как не в класс торговых приказов? И как формализовать такой механизм, какое резкое движение считать критическим?

Ну так в этом и вопрос! Поэтому и не встраивается это в движок.

Для одной стратегии просскольз на 20 пунктов роли не играет, и войти надо в любом случае, а для другой проскольз в 2 пипса ломает всю статистику, и входить хуже нельзя.

И что должен делать универсальный торговый движок для этих двух стратегий? Правильно, вернуть цену реквота и позволить торговой логике принимать решение.

Ну, или настройку добавить. Точнее, настройки на все случаи жизни ) 

Причина обращения: