помогите пожалуйста. как этот код использовать в советнике. допустим вот этом https://www.mql5.com/ru/articles/100
никак это ООП не доходит. помогите. покажите как этот код или трал вставить в свой советник. который создан без помощи мастера. Спасибо

- 2010.06.09
- Samuel
- www.mql5.com

- 2010.12.15
- MetaQuotes Software Corp.
- www.mql5.com
помогите пожалуйста. как этот код использовать в советнике. допустим вот этом https://www.mql5.com/ru/articles/100
никак это ООП не доходит. помогите. покажите как этот код или трал вставить в свой советник. который создан без помощи мастера. Спасибо
"этот код или трал вставить в свой советник", с учётом того, что "никак это ООП не доходит" не получится.
Модуль сопровождения открытых позиций написан с учётом особенностей его (модуля) взаимодействия с классом CExpert.
Теоретически, можно написать некую программную "прослойку", но это потребует знаний ООП и дополнительных усилий.
получается что все стандартные классы сделаны только для использования их в советнике, который получен с помощью встроенного генератора...
плохо, очень плохо, что эти стандартные классы, тот же алгоритм установки SL в без убыток, нельзя вставить допустим в код Николая Косицина https://www.mql5.com/ru/articles/105 или в советнике пошаговое руководство https://www.mql5.com/ru/articles/100.
Получается нужно писать все по новой, снова изобретать велосипед когда он вот готовый лежит (((
ведь те советники понятны, и понятно куда там вносить изменения, и к чему это приведет. А тут получается сгенерировал советник и сиди любуйся на него ((, т.к. малейшее изменение может привести к краху, да и не понятно куда и что можно вносить...вопросов милион

- 2010.06.30
- Nikolay Kositsin
- www.mql5.com
получается что все стандартные классы сделаны только для использования их в советнике, который получен с помощью встроенного генератора...
плохо, очень плохо, что эти стандартные классы, тот же алгоритм установки SL в без убыток, нельзя вставить допустим в код Николая Косицина https://www.mql5.com/ru/articles/105 или в советнике пошаговое руководство https://www.mql5.com/ru/articles/100.
Получается нужно писать все по новой, снова изобретать велосипед когда он вот готовый лежит (((
ведь те советники понятны, и понятно куда там вносить изменения, и к чему это приведет. А тут получается сгенерировал советник и сиди любуйся на него ((, т.к. малейшее изменение может привести к краху, да и не понятно куда и что можно вносить...вопросов милион
Невозможно создать класс, который можно использовать "например тут" или "допустим здесь". Класс содержит набор интерфейсов, которые можно использовать ОПРЕДЕЛЁННЫМ образом.
Если Вы хотите использовать готовый "велосипед", Вы просто ставите ноги на педали и крутите их (педали).
Если Вы хотите, чтобы "велосипед" ехал по хлопку в ладоши или по голосовой команде, то оставьте готовый тем кто крутит педали, а Вам придётся изобретать.
Невозможно создать класс, который можно использовать "например тут" или "допустим здесь". Класс содержит набор интерфейсов, которые можно использовать ОПРЕДЕЛЁННЫМ образом.
Если Вы хотите использовать готовый "велосипед", Вы просто ставите ноги на педали и крутите их (педали).
Если Вы хотите, чтобы "велосипед" ехал по хлопку в ладоши или по голосовой команде, то оставьте готовый тем кто крутит педали, а Вам придётся изобретать.
вот я и прошу покажите как прикрутить... ведь новый велосипед можно собрать как конструктор из кубиков и если все правильно прикрутил, он поедет.
Зачем по новой изобретать колесо, когда вот оно готовое лежит.
есть в статьях готовые велосипеды (советники я давал ссылку). помогите пользователю, покажите как правильно прикрутить созданные Вами стандартные классы к этим советникам...
вот я и прошу покажите как прикрутить... ведь новый велосипед можно собрать как конструктор из кубиков и если все правильно прикрутил, он поедет.
Зачем по новой изобретать колесо, когда вот оно готовое лежит.
есть в статьях готовые велосипеды (советники я давал ссылку). помогите пользователю, покажите как правильно прикрутить созданные Вами стандартные классы к этим советникам...
Хорошо, попробую объяснить, но не "прямо сейчас".
Для начала, давайте определимся какой именно "этот код" Вы хотите использовать в советнике.
Потом, (не обещаю, что это будет выполняться в первоочередном порядке) будем тихо-тихо решать Ваши проблемы с прикручиванием.
Здравствуйте уважаемые друзья.В своем модуле сопровождения позиций использую простой алгоритм закрытия части позиции, и модификация стопа в безубыток.До не давнего времени модуль работал а с новыми обновлениями не работае,не может инициализовать функцию и ищет какой то индикатор хотя их там нет.При использовании того ж експерта с другими модулями трала такой проблемы не возникает.Програмист который писал этот модуль сказал что надо обратится к Вам , связано что то с обновлениями.Помогите пожалуйста решить вопрос.
2012.02.02 12:14:38 Core 1 tester stopped because OnInit failed
Даже если генирировать експерт с модулем SampleTrailing.mqh та сама картина что делать ?

- 2010.06.18
- MetaQuotes Software Corp.
- www.mql5.com
Здравствуйте уважаемые друзья.В своем модуле сопровождения позиций использую простой алгоритм закрытия части позиции, и модификация стопа в безубыток.До не давнего времени модуль работал а с новыми обновлениями не работае,не может инициализовать функцию и ищет какой то индикатор хотя их там нет.При использовании того ж експерта с другими модулями трала такой проблемы не возникает.Програмист который писал этот модуль сказал что надо обратится к Вам , связано что то с обновлениями.Помогите пожалуйста решить вопрос.
2012.02.02 12:14:38 Core 1 tester stopped because OnInit failed
Даже если генирировать експерт с модулем SampleTrailing.mqh та сама картина что делать ?
Маловато информации:
2012.02.02 12:14:38 Core 1 tester stopped because OnInit failed
Кроме этого сообщения, в журнале есть ещё что-то. Возможно дело не в модуле трала, а в чём то ещё.
Чтобы это понять нужны исходники.
Поставьте заявку в сервисдеск и приложите исходники (они "умрут" вместе заявкой).
День добрый. Не работает модуль.
В логе выдает уровень пороговой прибыли должен быть больше уровня установки ордеров.
В конструкторе инициализирую переменные, не пустые и не равны нулю. Почему выдается ошибка?
//+------------------------------------------------------------------+ //| TrailingFixedPips.mqh | //| Copyright 2009-2013, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #include <Expert\ExpertTrailing.mqh> // wizard description start //+----------------------------------------------------------------------+ //| Description of the class | //| Title=Trailing with floating Stop Loss (Fox104) | //| Type=Trailing | //| Name=FixedPips | //| Class=CTrailingFixedPips | //| Page= | //| Parameter=StopLevel,int,30,Stop Loss trailing level (in points) | //| Parameter=ProfitLevel,int,50,Take Profit trailing level (in points) | //+----------------------------------------------------------------------+ // wizard description end //+------------------------------------------------------------------+ //| Class CTrailingFixedPips. | //| Purpose: Class of trailing stops with fixed stop level in pips. | //| Derives from class CExpertTrailing. | //+------------------------------------------------------------------+ class CTrailingFixedPips : public CExpertTrailing { protected: //--- input parameters int m_stop_level; int m_profit_level; public: CTrailingFixedPips(void); ~CTrailingFixedPips(void); //--- methods of initialization of protected data void StopLevel(int stop_level) { m_stop_level=stop_level; } void ProfitLevel(int profit_level) { m_profit_level=profit_level; } virtual bool ValidationSettings(void); //--- virtual bool CheckTrailingStopLong(CPositionInfo *position,double &sl,double &tp); virtual bool CheckTrailingStopShort(CPositionInfo *position,double &sl,double &tp); }; //+------------------------------------------------------------------+ //| Constructor | //+------------------------------------------------------------------+ void CTrailingFixedPips::CTrailingFixedPips(void) { m_stop_level = 30; m_profit_level = 50; } //+------------------------------------------------------------------+ //| Destructor | //+------------------------------------------------------------------+ CTrailingFixedPips::~CTrailingFixedPips(void) { } //+------------------------------------------------------------------+ //| Validation settings protected data. | //+------------------------------------------------------------------+ bool CTrailingFixedPips::ValidationSettings(void) { if(!CExpertTrailing::ValidationSettings()) return(false); //--- initial data checks if((m_profit_level-m_stop_level)*m_adjusted_point<=m_symbol.StopsLevel()*m_symbol.Point() && m_profit_level!=0.0) { printf(__FUNCTION__+": уровень пороговой прибыли должен быть больше уровня установки ордеров"); return(false); } //--- ok return(true); } //+------------------------------------------------------------------+ //| Checking trailing stop and/or profit for long position. | //+------------------------------------------------------------------+ bool CTrailingFixedPips::CheckTrailingStopLong(CPositionInfo *position,double &sl,double &tp) { //--- check if(position==NULL) return(false); if(m_stop_level==0) return(false); //--- проверка параметра if(m_profit_level==0.0) return(false); //--- уже в безубытке? double open=position.PriceOpen(); if(position.StopLoss()>=open) return(false); //--- проверка прибыли sl=EMPTY_VALUE; tp=EMPTY_VALUE; if(m_symbol.Bid()-open>m_profit_level*m_adjusted_point) sl=m_symbol.NormalizePrice(open+m_stop_level*m_adjusted_point); //--- return(sl!=EMPTY_VALUE); } //+------------------------------------------------------------------+ //| Checking trailing stop and/or profit for short position. | //+------------------------------------------------------------------+ bool CTrailingFixedPips::CheckTrailingStopShort(CPositionInfo *position,double &sl,double &tp) { //--- check if(position==NULL) return(false); if(m_stop_level==0) return(false); //--- проверка параметра if(m_profit_level==0.0) return(false); //--- уже в безубытке? double open=position.PriceOpen(); if(position.StopLoss()<=open) return(false); //--- проверка прибыли sl=EMPTY_VALUE; tp=EMPTY_VALUE; if(open-m_symbol.Ask()>m_profit_level*m_adjusted_point) sl=m_symbol.NormalizePrice(open-m_stop_level*m_adjusted_point); //--- return(sl!=EMPTY_VALUE); } //+------------------------------------------------------------------+

- www.mql5.com

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Мастер MQL5: Как написать свой модуль сопровождения открытых позиций:
Генератор торговых стратегий Мастера MQL5 значительно упрощает проверку торговых идей. В статье рассказывается о том, как написать и подключить в Мастер MQL5 свой собственный модуль управления открытыми позициями, устанавливающий уровень Stop Loss в безубыток при движении цены в благоприятном направлении, что позволяет защитить прибыль и уменьшить потери. Рассматривается структура и формат описания созданного класса для Мастера MQL5.
Автор: MetaQuotes