Обсуждение статьи "Универсальный торговый эксперт: Событийная модель и прототип торговой стратегии (Часть 2)" - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Василий, как "руководство по применению ООП в трейдинге" Ваши работы очень познавательны и полезны, а вот, как "рабочий торговый движок" очень бедны. Я, в частности, о разнообразии "административных функций".
Сегодня МТ5 по доступности и лояльности к трейдеру близится к МТ4 (добавлена хэдж-торговля). За многие годы МТ4 накопило достаточно богатый административный функционал в свободном доступе:
* частичное закрытие позиций (я про контроль за этим процессом со стороны торгового движка);
* разнообразие расчёта СТОПов;
* динамические СТОПы;
* виртуальные СТОПы;
* профессиональный ММ (это контроль за распределением средств м\у стратегиями). Конечный, а главное устойчивый результат торговли, зависит в большей степени не от правильного входа и выхода в рынок (хоя и это важно), а от правильного инвестирования;
* виртуальная троговля;
* построение сетей. Т.е. взаимосвязь серии ордеров, объединённых м\у собой единой логикой формирования размеров лотов каждой позиции в серии.
* оставляет желать лучшего и реализация обработки исключений при содании торговых приказов (реквоты, ошибка № 130 [МТ4], STOPLEVEL, FREEZELEVEL и т.д. и т.п.).
Возникает вопрос: "Будете в свободном доступе развивать дальше свой движок?"
Да, развитие движка планируется и дальше. И он всегда останется свободным.
На счет остального что Вы перечислили - пишите свои стопы, ММ и "административные функции" в рамках CStrategy. Никто этого не запрещает.
Контроль ошибок всегда был - юзайте класс CTrade и его ответы для контроля ошибок.
Да, развитие движка планируется и дальше. И он всегда останется свободным.
На счет остального что Вы перечислили - пишите свои стопы, ММ и "административные функции" в рамках CStrategy. Никто этого не запрещает.
Контроль ошибок всегда был - юзайте класс CTrade и его ответы для контроля ошибок.
Простому пользователю не нужно задумываться об ошибках, возвращаемых торговым сервером. Торговый движок должен обеспечивать, чтобы при любых обстоятельствах (кроме не рабочего времени) торговый приказ (открытие, закрытие, модификация) был правильно сформирован, а затем выполнен. Или я слишком многого требую от торгового движка?
P.S. Что следующим ожидать (какой функционал) в очередной статье?
Простому пользователю не нужно задумываться об ошибках, возвращаемых торговым сервером. Торговый движок должен обеспечивать, чтобы при любых обстоятельствах (кроме не рабочего времени) торговый приказ (открытие, закрытие, модификация) был правильно сформирован, а затем выполнен. Или я слишком многого требую от торгового движка?
Что, по вашему мнению, должен сделать торговый движок, если в приказе на открытие сделки СЛ слишком близко к цене открытия:
- не открывать сделку;
- скорректировать стоп на минимально допустимое расстояние и открыть сделку (а если новости и стоп-левел 50 четырехзначных пунктов — тоже?);
- скорректировать стоп, как в предыдущем пункте, пропорционально скорректировать лот (чтобы риск оставался таким же), и открыть сделку. Если при этом лот становится меньше минимально допустимого:
- отменить вход, чтобы не нарушать риск-менеджмент,
- войти минимальным лотом.
- скорректировать стоп-лосс и все отложенные ордера, которые стоят на том же уровне (если это сетка);
- скорректировать стоп-лосс и пропорционально тейк-профит;
- ...
Вы понимаете, что, в зависимости от стратегии, нужно использовать разные варианты?Да, можно сделать элементарную корректировку на минимальное расстояние (как опцию), но абсолютно универсального рецепта не существует.
Простому пользователю не нужно задумываться об ошибках, возвращаемых торговым сервером. Торговый движок должен обеспечивать, чтобы при любых обстоятельствах (кроме не рабочего времени) торговый приказ (открытие, закрытие, модификация) был правильно сформирован, а затем выполнен. Или я слишком многого требую от торгового движка?
P.S. Что следующим ожидать (какой функционал) в очередной статье?
Задача торгового движка предоставить удобное окружение стратегии, а также обеспечить целостность и непротиворечивость представляемых данных. Других задач у торгового движка нет. Но не в коем случае он не должен "приторговывать" за саму стратегию. Поэтому если стратегия накосячила, движок не будет исправлять ее ошибки, иначе получиться медвежья услуга. Нужно сделать все для предотвращения ошибки. Но если она произошла, менять торговую логику эксперта на лету не имеет ни какого смысла. Нужно просто сесть и исправить код стратегии. Другого варианта нет.
Пример из практики. Если Вы в CStrategy запросите какую-либо цену, например так:
То гарантированно получите уже нормализованную цену инструмента, которую можно непосредственно использовать в торговых приказах. Чего нельзя сказать о том же, если будете использовать системный запрос. Т.е. CStrategy делает все, что бы предотвратить технические ошибки появляющиеся например при отсутствии нормализации цен. Однако выполнять работу за пользователя он не будет. И если Вы эту цену подставите для отложенного ордера, он может и не сработать.
Что, по вашему мнению, должен сделать торговый движок, если в приказе на открытие сделки СЛ слишком близко к цене открытия:
- не открывать сделку;
- скорректировать стоп на минимально допустимое расстояние и открыть сделку (а если новости и стоп-левел 50 четырехзначных пунктов — тоже?);
- скорректировать стоп, как в предыдущем пункте, пропорционально скорректировать лот (чтобы риск оставался таким же), и открыть сделку. Если при этом лот становится меньше минимально допустимого:
- отменить вход, чтобы не нарушать риск-менеджмент,
- войти минимальным лотом.
- скорректировать стоп-лосс и все отложенные ордера, которые стоят на том же уровне (если это сетка);
- скорректировать стоп-лосс и пропорционально тейк-профит;
- ...
Вы понимаете, что, в зависимости от стратегии, нужно использовать разные варианты?Да, можно сделать элементарную корректировку на минимальное расстояние (как опцию), но абсолютно универсального рецепта не существует.
Задача торгового движка предоставить удобное окружение стратегии, а также обеспечить целостность и непротиворечивость представляемых данных. Других задач у торгового движка нет. Но не в коем случае он не должен "приторговывать" за саму стратегию. Поэтому если стратегия накосячила, движок не будет исправлять ее ошибки, иначе получиться медвежья услуга. Нужно сделать все для предотвращения ошибки. Но если она произошла, менять торговую логику эксперта на лету не имеет ни какого смысла. Нужно просто сесть и исправить код стратегии. Другого варианта нет.
Пример из практики. Если Вы в CStrategy запросите какую-либо цену, например так:
То гарантированно получите уже нормализованную цену инструмента, которую можно непосредственно использовать в торговых приказах. Чего нельзя сказать о том же, если будете использовать системный запрос. Т.е. CStrategy делает все, что бы предотвратить технические ошибки появляющиеся например при отсутствии нормализации цен. Однако выполнять работу за пользователя он не будет. И если Вы эту цену подставите для отложенного ордера, он может и не сработать.
Спорить здесь бесполезно. Это сугубо личночстный подход. Но я себе не позволяю получать в лог такие сообщения:
об этом должен заботится движок.Спорить здесь бесполезно. Это сугубо личночстный подход. Но я себе не позволяю получать в лог такие сообщения:
об этом должен заботится движок.Андрей, не нужно усложнять - правильный ответ: "скорректировать стоп на минимально допустимое расстояние и открыть сделку (а если новости и стоп-левел 50 четырехзначных пунктов — тоже?)". Слишком маленький СТОП длжен работать виртуально (без модификации). А сделка должна быть открыта по поступившему сигналу. В случае построения сетей дополнительные правила прописываются на этапе формирования СТОПа.
Если использовать виртуальный стоп, откладываемый от цены открытия, на расширенном спреде можно нарваться на серию открытий и моментальных закрытий на этом же тике.
Я согласен, что наличие готовых вариантов обработки тех или иных ситуаций будет удобно, но автоматически движок ничего решать не должен.
Если использовать виртуальный стоп, откладываемый от цены открытия, на расширенном спреде можно нарваться на серию открытий и моментальных закрытий на этом же тике.
Про 5-ку не знаю. В 4-ке у меня никогда проблем не было.
Я согласен, что наличие готовых вариантов обработки тех или иных ситуаций будет удобно, но автоматически движок ничего решать не должен.
С чем не могу не согласится, что правил "что должен делать торговый движок", нет - мы их сами придумываем. Я исхожу из простого постулата: мой движок должен делать любую (всю) административную работу (выше я перечислял, что я понимаю под административной работой, там не упомянут трейлинг и работа с общим профитом, как отдельно взятой стратегии, так и всего советника), а я при добавлении к советнику новой стратегии, дописываю ТОЛЬКО правила торговли для неё и настраиваю торговый движок.
Я не претендую на правильность моего подхода, мне так больше нравится. ;)
О чем "об этом"? Это информационное сообщение идущее совместно с системными сообщениями, которые вы зачем-то почистили.
Я исхожу, что мне нужны в логе только содержательные информационные сообщения. Исходя из этого, мне не интересно знать, что СТОПЫ не изменились. Про торговое окружение тоже...
Василий, я не критикую, я высказываю свою точку зрения. Я понимаю, когда много времени потрачено на создание системы, даже мысль о возможном её изменении, вызывает дискомфорт. Такие разговоры (обмен мнениями) имеет смысл на стадии осмысливания. :)