//+------------------------------------------------------------------+ //| FXSig.mq4 | //| eComHighTech | //| mailto:ftc@klax.tula.ru | //+------------------------------------------------------------------+ #property copyright "eComHighTech" #property link "mailto:ftc@klax.tula.ru" extern double TakeProfit = 50; extern double Lots = 0.1; extern double TrailingStop = 7; double Points; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init () { Points = MarketInfo (Symbol(), MODE_POINT); //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { // в нашем случае проверяем только TrailingStop if(TrailingStop<5) { Print("Invalid traling stop"); return(0); // проверяем TrailingStop // переходим к важной части эксперта - контролю открытых позиций // 'важно правильно войти в рынок, но выйти - еще важнее...' if(OrderType()<=OP_SELL && // это открытая позиция? OP_BUY или OP_SELL OrderSymbol()==Symbol()) // инструмент совпадает? { if(OrderType()==OP_BUY) // открыта длинная позиция { // проверим - может можно/нужно уже трейлинг стоп ставить? // пользователь выставил в настройках трейлингстоп { // значит мы идем его проверять if(Bid-OrderOpenPrice()>Points*TrailingStop) { if(OrderStopLoss()(Points*TrailingStop)) { if(OrderStopLoss()==0.0 || OrderStopLoss()>(Ask+Points*TrailingStop)) { OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Points*TrailingStop,OrderTakeProfit(),0,Red); return(0); } } } } } } return(0); } // the end