Mr.Profit Опубликовано 6 июля, 2013 Поделиться [open source] [Советник] по ТС [Н1] Master Candle Metho… Опубликовано 6 июля, 2013 (изменено) Заинтересовала ТС Master Candle Method, более подробно можно посмотреть в блоге, решил сделать робота. Соответственно кому интересно, предлагаю вместе заняться усовершенствованием этой совы. Валютные пары GBP/USD GBP/JPY. Тайм фрейм H4.MQL-Код://+------------------------------------------------------------------+//| Aktn.mq4 |//| Copyright 2012, MetaQuotes Software Corp. |//| //+------------------------------------------------------------------+#property copyright "Copyright 2012, MetaQuotes Software Corp."#property link //--- input parametersextern int lot=1;extern int StopLoss=200;extern string _____= "Параметры функции ТРЕЙЛИНГ СТОП";extern bool UseTrailing = true;//Выключатель трейлинг стопаextern int MinProfit = 150; //порог включения трейлин стопаextern int TrailingStop = 75;// величина трейлинг стопаextern int TrailingStep = 5; // шаг трейлинг стопаextern int Magic = 1;double Top;double Dno;int TikBuy;int TikSell,BarSig;double Cena;datetime NewTime;double Balance;//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init() {TikBuy=0;TikSell=0;BarSig=0;//---- return(1); }//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit() {//----//---- return(0); } void TrailPositions() // функция трейлинг стоп{ int Orders = OrdersTotal(); for (int i=0; i if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))) continue; if (OrderSymbol() != Symbol()) continue; if (OrderMagicNumber() == Magic ){ if (OrderType() == OP_BUY ) { if (Bid-OrderOpenPrice() > MinProfit*Point) { if (OrderStopLoss() OrderModify(OrderTicket(), OrderOpenPrice(), Bid-TrailingStop*Point, OrderTakeProfit(), 0, Blue); } } } if (OrderType() == OP_SELL) { if (OrderOpenPrice()-Ask >MinProfit*Point) { if (OrderStopLoss() > Ask+(TrailingStop+TrailingStep-1)*Point || OrderStopLoss() == 0) { OrderModify(OrderTicket(), OrderOpenPrice(), Ask+TrailingStop*Point, OrderTakeProfit(), 0, Blue); } } } } } }//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start() { if (UseTrailing) TrailPositions(); if ((OrdersTotal()==0)&&(iHigh(Symbol(),0,5)>iHigh(Symbol(),0,4))&&(iHigh(Symbol(),0,5)>iHigh(Symbol(),0,3))&&(iHigh(Symbol(),0,5)>iHigh(Symbol(),0,2))&&(iHigh(Symbol(),0,5)>iHigh(Symbol(),0,1))&& (iLow(Symbol(),0,5) { if (iHigh(Symbol(),0,5) TikBuy=OrderSend(Symbol(),OP_BUYSTOP,lot,Cena,0,Cena-StopLoss*Point,0,NULL,Magic,0,CLR_NONE); if (iLow(Symbol(),0,5)>Bid-30*Point){Cena=Bid-30*Point;} else {Cena=iLow(Symbol(),0,5);} TikSell=OrderSend(Symbol(),OP_SELLSTOP,lot,Cena,0,Cena+StopLoss*Point,0,NULL,Magic,0,CLR_NONE); BarSig=4; } if (OrdersTotal()>1) { OrderSelect(TikBuy,SELECT_BY_TICKET); if (OrderProfit()!=0){OrderDelete(TikSell);TikSell=0;} OrderSelect(TikSell,SELECT_BY_TICKET); if (OrderProfit()!=0){OrderDelete(TikBuy); TikBuy=0;} } if ((BarSig==8)&&(OrdersTotal()==2)) { OrderDelete(TikSell); TikSell=0; OrderDelete(TikBuy); TikBuy=0; } if (NewTime!=iTime(Symbol(),0,0)) { BarSig++; NewTime=iTime(Symbol(),0,0); }//----//---- return(1); }//+------------------------------------------------------------------+ Изменено 7 июля, 2017 пользователем Pavel888 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти