Вылетает с ошибкой пример трейлинга.
Программисты, помогите с mql5, пожалуйста!!!
Возможно ли использовать просто ОБЫЧНУЮ ФУНКЦИЮ трэйлинга как в mql4 без всяких классов? Точно также, как , например, реализована функция TradeSizeOptimized в Moving Averages.mq5.
Я уже все перерыл, в примерах, статьях, форуме - ничего не нашел. Сам что-то уже совсем запарился.... Может у кого есть готовый вариант, буду очень Благодарен!!! - Очень хочется в чемпионате поучаствовать.
Программисты, помогите с mql5, пожалуйста!!!
Возможно ли использовать просто ОБЫЧНУЮ ФУНКЦИЮ трэйлинга как в mql4 без всяких классов? Точно также, как , например, реализована функция TradeSizeOptimized в Moving Averages.mq5.
Я уже все перерыл, в примерах, статьях, форуме - ничего не нашел. Сам что-то уже совсем запарился.... Может у кого есть готовый вариант, буду очень Благодарен!!! - Очень хочется в чемпионате поучаствовать.
держи
int TrailingStop() { if(PositionSelect(Symbol())) // выбираем позицию { //MqlTradeRequest m_request; // объявляем структуру запроса на сервер //MqlTradeResult m_result; // объявляем структуру ответа сервера double Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID); // записываем в переменную цену бид double Ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK); // записываем в переменную цену аск double OpenPrice=PositionGetDouble(POSITION_PRICE_OPEN); // записываем в переменную цену открытия позиции double PositionSL=PositionGetDouble(POSITION_SL); // записываем в переменную уровень стоплосса double PositionTP=PositionGetDouble(POSITION_TP); // записываем в переменную уровень тейкпрофита if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) // определяем тип позиции { if(TrailWhileMinus==true || Bid-OpenPrice>_Point*Trail) //не тралим, пока не можем достичь безубытка первым переносом стопа { if(Bid-PositionSL>Trail*_Point) //основное условие необходимости перемещения стоп-лосса { //--- записываем данные в структуру request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Bid-Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // отправляем запрос на сервер } } } else { if(TrailWhileMinus==true || OpenPrice-Ask>_Point*Trail) //не тралим, пока не можем достичь безубытка первым переносом стопа { if(PositionSL-Ask>Trail*_Point) //основное условие необходимости перемещения стоп-лосса { //--- записываем данные в структуру request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Ask+Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // отправляем запрос на сервер } } } } return(0); }
держи
Я так полагаю (наверное не без основании) что result лучше передавать как параметр :)
А то нет возможности его анализировать. Не хорошо как-то это...
PS
Я бы еще создал две функции - TrailingStopBuy и TrailingStopSell
Я так полагаю (наверное не без основании) что result лучше передавать как параметр :)
А то нет возможности его анализировать. Не хорошо как-то это...
PS
Я бы еще создал две функции - TrailingStopBuy и TrailingStopSell
ну я человеку пример привел а то он уже мозг себе вынес как обычный трейлинг написать, ну а дальше пускай немножко подумает, что бы без косяков работал, в тестере в принципе и эта конструкция работает нормально. на реале не проверял
держи
sergey1294,
Спасибо еще раз, все работает!!!
Возник еще один маленький вопрос, как в функцию добавить проверку по магическому номеру? Я пытаюсь вставить такую проверку:
if (OrderGetInteger(ORDER_MAGIC)==EA_Magic) { ..... }..... но что-то это ломает всю торговлю...
sergey1294,
Спасибо еще раз, все работает!!!
Возник еще один маленький вопрос, как в функцию добавить проверку по магическому номеру? Я пытаюсь вставить такую проверку:
..... но что-то это ломает всю торговлю...

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Как создать свой Trailing Stop:
Основное правило трейдера - дай прибыли расти, обрезай убытки! В статье рассматривается один из основных технических приемов, позволяющий следовать этому правилу - перемещение уровня защитной остановки (уровня Stoploss) вслед за растущей прибылью позиции, другими словами - скользящий стоп или трейлинг стоп (trailingstop). Приводится пошаговая процедура создания класса для трейлинг стопа на индикаторах SAR и NRTR, который каждый желающий сможет за 5-ть минут встроить в своего эксперта или использовать независимо для управления позициями на своем счете.
Автор: Дмитрий