Обсуждение статьи "Универсальный торговый эксперт: Работа с пользовательскими трейлинг-стопами (часть 6)"
MetaQuotes Software Corp.:
Теперь всё работает - просто класс...все и сразу... спасибо большое...так и знал что пока не устаканится новая версия...будут ошибки...))
Опубликована статья Универсальный торговый эксперт: Работа с пользовательскими трейлинг-стопами (часть 6):
Автор: Vasiliy Sokolov
Здравствуйте. Отличная работа, большое спасибо! Скажите, не планируете ли вы внедрить в движок подходы для торговли на MOEX, описанные вами же в статье https://www.mql5.com/ru/articles/1683? Конкретно интересует анализ рыночной ликвидности и на его основании вход с заданным отклонением (макс. проскальзыванием).
Как обезопасить себя и своего эксперта при торговле на Московской бирже
- 2015.06.18
- Vasiliy Sokolov
- www.mql5.com
В статье подробно описываются методы работы, призванные обеспечить безопасность совершения торговых операций на биржевых и малоликвидных рынках, на примере срочной секции Московской биржи. Статья является логическим продолжением статьи "Основы биржевого ценообразования на примере срочной секции Московской биржи", в которой даны теоретические основы биржевой торговли, но носит более практический характер.
igorbel:
Здравствуйте. Отличная работа, большое спасибо! Скажите, не планируете ли вы внедрить в движок подходы для торговли на MOEX, описанные вами же в статье https://www.mql5.com/ru/articles/1683? Конкретно интересует анализ рыночной ликвидности и на его основании вход с заданным отклонением (макс. проскальзыванием).
Предложение интересное. Посмотрим.
Здравствуйте. Отличная работа, большое спасибо! Скажите, не планируете ли вы внедрить в движок подходы для торговли на MOEX, описанные вами же в статье https://www.mql5.com/ru/articles/1683? Конкретно интересует анализ рыночной ликвидности и на его основании вход с заданным отклонением (макс. проскальзыванием).
//+------------------------------------------------------------------+ //| Закрывает текущую позицию по рынку, устанавливая закрывающий | //| комментарий равный comment | //+------------------------------------------------------------------+ bool CPosition::CloseAtMarket(string comment="") { if(!IsActive()) return false; m_trade.PositionModify(m_id, 0.0, 0.0); ENUM_ACCOUNT_MARGIN_MODE mode=(ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE); if(mode != ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) return m_trade.PositionClose(m_symbol); return m_trade.PositionClose(m_id); }
Скажите, а зачем m_trade.PositionModify(m_id, 0.0, 0.0) в этой функции? У меня в журнале ошибки Invalid Stops из-за этой операции.
igorbel:
Это рудименты старой версии. Спасибо что указали, будет исправлено.
Скажите, а зачем m_trade.PositionModify(m_id, 0.0, 0.0) в этой функции? У меня в журнале ошибки Invalid Stops из-за этой операции.
Вроде ничего не менял, а при компиляции любого из модулей трейлинга, включая базовый класс ошибки:
'CTrailing' - declaration without type PositionMT5.mqh 48 4 'Trailing' - undeclared identifier PositionMT5.mqh 73 20 'Trailing' - object pointer expected PositionMT5.mqh 73 20 'Trailing' - object pointer expected PositionMT5.mqh 74 14
bool CTrailingClassic::Modify(void) { if(CheckPointer(m_position)==POINTER_INVALID) { string text="Invalid position for current trailing-stop. Set position with 'SetPosition' method"; CMessage *msg=new CMessage(MESSAGE_WARNING,__FUNCTION__,text); Log.AddMessage(msg); return false; } if(m_diff_extremum<=0.0) { string text="Set points trailing-stop with 'SetDiffExtremum' method"; CMessage *msg=new CMessage(MESSAGE_WARNING,__FUNCTION__,text); Log.AddMessage(msg); return false; } double extremum=FindExtremum(m_position); if(extremum == 0.0)return false; double n_sl = 0.0; if(m_position.Direction()==POSITION_TYPE_BUY) n_sl=extremum-m_diff_extremum; else n_sl=extremum+m_diff_extremum; if(n_sl!=m_position.StopLossValue()) return m_position.StopLossValue(n_sl); return false; }
Не помешала бы проверка, что новый sl ниже текущей цены для длинной позиции и выше текущей цены для короткой позиции.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Опубликована статья Универсальный торговый эксперт: Работа с пользовательскими трейлинг-стопами (часть 6):
Шестая часть статьи об универсальном торговом эксперте описывает работу с трейлинг-стопами. Прочитав ее, Вы узнаете, как с помощью унифицированных правил создать свой собственный модуль трейлинг-стопа и подключить его в торговый движок таким образом, чтобы управление позицией с его помощью происходило в автоматическом режиме.
Трейлинг-стоп, по своей сути, является неким алгоритмом, единственная задача которого — перестановка стоп-лосса на определенный ценовой уровень, с целью защиты позиции от чрезмерного убытка. Очевидно, что алгоритмов по управлению стоп-лоссом позиции может быть множество. Конечно, можно было бы представить алгоритм по управлению трейлинг-стопом как отдельный метод, размещенный в классе CStrategy. Например, он мог бы принимать в качестве параметра текущую позицию и возвращать торговый уровень, на который необходимо было бы переставить текущий стоп-лосс позиции:
Автор: Vasiliy Sokolov