Ребят,такая просьба - вот эти два скрипта на 4-х знаке работают отлично,а на 5-и знаке - выставляют не так,как хотелось,подправьте плиз...
Вот поправил. Открытие ордера поместил в цикл из 100 попыток. Чтобы скрипт всегда срабатывал и не нужно было бы его запускать понескольку раз
Buy-OrderTPSL.ex4:
#property copyright "© 2010"
#property show_inputs
extern int bar = 2;
extern double lot = 1;
extern int TakeProfit = 10;
extern int StopLoss = 20;
int start()
{
double TradePoint;
double spread = MarketInfo(Symbol(),MODE_SPREAD);
if(Digits==3 || Digits==5) {TradePoint = Point*10; spread = spread/10;}
else TradePoint = Point;
double BuyStop = High[bar] + (1+spread)*TradePoint;
double TP = NormalizeDouble(BuyStop + TakeProfit * TradePoint, Digits);
double SL = NormalizeDouble(BuyStop - StopLoss * TradePoint, Digits);
int tb;
for(int i=0;i<100;i++){
tb = OrderSend(Symbol(),OP_BUYSTOP,lot,BuyStop,3,SL,TP,"BRB-BuyStop-script",0,0,CLR_NONE);
if(tb <=0 ) Print("Ошибка открытия buy-ордера" ,GetLastError());
else break;
}
return(0);
}
Sell-OrderTPSL.mq4:
#property show_inputs
extern int bar = 2;
extern double lot = 1;
extern int TakeProfit = 10;
extern int StopLoss = 20;
int start()
{
double TradePoint;
double spread = MarketInfo(Symbol(),MODE_SPREAD);
if(Digits==3 || Digits==5) {TradePoint = Point*10; spread = spread/10;}
else TradePoint = Point;
double SellStop = Low[bar] - TradePoint;
double TP = NormalizeDouble(SellStop - TakeProfit * TradePoint, Digits);
double SL = NormalizeDouble(SellStop + StopLoss * TradePoint, Digits);
int tb;
for(int i=0;i<100;i++){
tb = OrderSend(Symbol(),OP_SELLSTOP,lot,SellStop,3,SL,TP,"MRB-SellStop-script",0,0,CLR_NONE);
if(tb<=0) Print("Ошибка открытия sell-ордера" ,GetLastError());
else break;
}
return(0);
}
Делаем эксперты, индикаторы и прочее для МТ4 ... мыло olegov_oleg@mail.ru