ЭКСПЕРТЫ, РОБОТЫ, СОВЕТНИКИ
Займемся изменением эксперта modifystoploss.htm
1. Вычислим StopLevel double StopLevel=MarketInfo(Symb,MODE_STOPLEVEL); // в пунктах
2. Определим спред double spred=MarketInfo(Symb,MODE_SPREAD); // в пунктах
3. Сложим эти 2 величины и прибавим дистанцию преследования Tral_Up и обозначим как
double mindist=(StopLevel+spred+Tral_Up) ; // в пунктах
Под Tral_Up будем понимать уже как составную из точности исполнения ордеров (минимум 5 пунктов с количеством знаков после точки Digits = 5) + желаемую дистанцию. Сюда можно заложить и проскальзывание, если оно введено в настройках и ту дистанцию в пределах которой может колебаться цена не доходя до StopLoss.
4. Выведем информацию о параметрах mindist и Digits чтобы представлять заранее когда будет происходить модификация ордеров:
Alert("mindist=",mindist," Digits=",Digits);
5. Далее нам понадобится постоянно вычислять не только StopLoss но и TakeProfit ордеров
double TP=OrderTakeProfit();
6. Чтобы не привязываться к StopLoss ордеров, а они могут быть разные для разных ордеров в том числе и =0, будем вычислять прибыль ордеров в пунктах
P=OrderProfit( ) ; // Прибыль ордера в $$$
LotSize=MarketInfo(Symb,MODE_LOTSIZE); // Размер лота
Lot=OrderLots( ) ; // Величина лота ордеров
Pp=LotSize*Point*Lot; // Стоимость 1 пункта лота
RealPofit=P/Pp; // Прибыль ордеров в пунктах
7. А теперь главное условие модификации и переноса ордеров в безубыток будет выглядеть так:
для ордеров Buy if (SL<=(Ask-mindist*Point)&&RealPofit>=mindist)
для ордеров Sell if (SL>=(Bid+mindist*Point)&&RealPofit>=mindist)
8. В переключателе типа ордеров кроме модификации StopLoss добавим еще и модификацию TakeProfit ордеров
TP=Ask+Min_dist*Point; // для ордеров на Buy
TP=Bid-Min_dist*Point; // для ордеров на Sell
9. Удалим привязку программы к конкретному символу, чтобы она работала с ордерами разных валютных пар.
10. А теперь внесем все изменения в программу, назвав ее SL&TP_Up и откомпилируем.
11. Опробуем работу на демо счете.
Все нормально работает и для одновременно открытых нескольких ордеров ордеров на Sell и на Buy.
Посмотреть программу можно здесь SL_TP_Up.htm,
А откомпилированную рабочую программу скачать здесь modify.rar
В архив входят эксперты: modifystoploss.ex4, modifystoploss.mq4, SL&TP_Up.ex4, SL&TP_Up.mq4)
12. Эта программа создавалась для брокера InstaForex и будет работать на любом MT4 с количеством знаков после точки Digits = 5. По умолчанию Tral_Up=20; TPp=250;в
Если количество знаков Digits = 4, то необходимо уменьшить Tral_Up и TPp в 10 раз, т.е. Tral_Up=2; TPp=25;
Например для брокера InstaForex для MT4 и Digits=4 - Spred=3, StopLevel=3, Tral_Up=1.
А для Digits=5 - Spred=30, StopLevel=30, Tral_Up=10.
Этот эксперт - помощник SL&TP_Up.ex4 незаменим при выходе важных новостей, когда цена может очень быстро изменяться и не хватает времени на перестановку StopLoss и TakeProfit ордеров, особенно если их несколько, или возникает необходимость отлучиться от монитора.
Вот еще простенький эксперт - помощник Profit_Stop для тех, кто торгует на малых таймфреймах и довольствуется небольшой прибылью в несколько пунктов, меньшей чем минимальный TakeProfit. Например, у брокера Rinkost минимальный TakeProfit=7 пунктам, а вам необходимо закрыть один или несколько ордеров с прибылью в 2 пункта. Выставляете в параметрах эксперта Profit_Stop=2 (прибыль в пунктах) и все ордера будут закрыты с указанной прибылью. При включении параметра info будет выводится информация о StopLevel+spred (в пунктах) и количестве знаков после запятой Digits.
Скачать эксперта Profit_Stop.rar (в архив входит эксперт Profit_Stop.mq4)
Оба эксперта будут работать совместно с другими экспертами если их поместить в отдельное окно с таким же символом.
На следующей странице приведен простой эксперт - скальпер, работающий только на нисходящем тренде.
Copyright © 2012 Easyfx.narod.ru All rights reserved