До недавного времени пользовался обычным перенесением в безубыток. Подскажите, есть ли советник, который может после достижения определённого профита закрыть половину лота (разумеется лот предполагается делящимся на 2), а остальное - в безубыток???
- Скрипт закрывает половину сделки , остальное тралит
- Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6.
- Реализация метода "Сейфа"
Блин, готовые функции это конечно хорошо. Но вот если бы готовый эксперт. Я нифига особо не понимаю пока этот MQL.
CanisLC:
До недавного времени пользовался обычным перенесением в безубыток. Подскажите, есть ли советник, который может после достижения определённого профита закрыть половину лота (разумеется лот предполагается делящимся на 2), а остальное - в безубыток???
могу сделать, но за деньги
До недавного времени пользовался обычным перенесением в безубыток. Подскажите, есть ли советник, который может после достижения определённого профита закрыть половину лота (разумеется лот предполагается делящимся на 2), а остальное - в безубыток???
Не, там такого нет. Фактически нужен тот же e-MovingInWL от KimIV, но только чтобы от не всё переносил на установленный уровень, а только 1/2 лота, другую 1/2 закрывал.
CanisLC:
До недавного времени пользовался обычным перенесением в безубыток. Подскажите, есть ли советник, который может после достижения определённого профита закрыть половину лота (разумеется лот предполагается делящимся на 2), а остальное - в безубыток???
До недавного времени пользовался обычным перенесением в безубыток. Подскажите, есть ли советник, который может после достижения определённого профита закрыть половину лота (разумеется лот предполагается делящимся на 2), а остальное - в безубыток???
Этот кусок кода как раз делает, то что вам нужно... при достижении определенного профата (к примеру 15 пунктов) передвигает стоп в безубыток и закрывает половину объема сделки. Если цена продолжает двигаться в направлении сделки, то еще через 15 пунктов передвигает стоп и закрывает половину половины объема и т.д. пока не сработает СЛ или не закончатся лоты.
////////////////Трейлинг (tr=уровень трейлинга в пунктах, ml=минимальный лот) void tral (int tr,double ml,int mn) { int cnt; int k; int x; datetime last_time; double close_lot; for (cnt=0;cnt<OrdersTotal();cnt++) { OrderSelect(cnt,SELECT_BY_POS); if (OrderMagicNumber()!=mn) continue; close_lot=NormalizeDouble(OrderLots()/2,2); if (close_lot<ml) close_lot=ml; if (OrderType()==OP_BUY) { if (OrderStopLoss()==0||OrderStopLoss()<OrderOpenPrice()) { if (MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice()>=tr*MarketInfo(OrderSymbol(),MODE_POINT)) { Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType()); OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID)-tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0); OrderClose (OrderTicket(),close_lot,MarketInfo(OrderSymbol(),MODE_BID),10000); } } else { if (MarketInfo(OrderSymbol(),MODE_BID)-OrderStopLoss()>=tr*MarketInfo(OrderSymbol(),MODE_POINT)*2) { Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType()); OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID)-tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0); OrderClose (OrderTicket(),close_lot,MarketInfo(OrderSymbol(),MODE_BID),10000); } } } if (OrderType()==OP_SELL) { if (OrderStopLoss()==0||OrderStopLoss()>OrderOpenPrice()) { if (OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK)>=tr*MarketInfo(OrderSymbol(),MODE_POINT)) { Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType()); OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK)+tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0); OrderClose (OrderTicket(),close_lot,MarketInfo(OrderSymbol(),MODE_ASK),10000); } } else { if (OrderStopLoss()-MarketInfo(OrderSymbol(),MODE_ASK)>=tr*MarketInfo(OrderSymbol(),MODE_POINT)*2) { Print("Двигаем стоп и закрываем половину ",OrderTicket()," ", OrderSymbol()," ",OrderType()); OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK)+tr*MarketInfo(OrderSymbol(),MODE_POINT),MarketInfo(OrderSymbol(),MODE_DIGITS)),0,0); OrderClose (OrderTicket(),close_lot,MarketInfo(OrderSymbol(),MODE_ASK),10000); } } } } }
Ну этот код только для тестера хорош
Diamant:
В каком смысле? Неужели нет нормально работающего советника?
Ну этот код только для тестера хорош
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь