Market Execution ошибка 130(Неправильные стопы)

 
ёмаё делаю все как положено, открыть позицию OrderSend() затем OrderModify(), он один хер 130 выдает, че за на?
 
поясню, открываю позицию со стопами 0... 130 возвращает OrderModify()
 
И, кстати еще кое что.... Добавьте MIME-тип "application/octet-stream" к файлам MQ4, а то некоторые дебильные арбузы(как у меня) вызывают несуществующий плагин))
 
Evgeno:
ёмаё делаю все как положено, открыть позицию OrderSend() затем OrderModify(), он один хер 130 выдает, че за на?

Передаваемые в функцию цены нормализуйте.
 

PapaYozh:

Передаваемые в функцию цены нормализуйте.


if(MarketExec==true){
Tick=OrderSend(Symb,OP_SELL,Vol,Bid,Slippage,0,0);
OrderSelect(Tick,SELECT_BY_TICKET);
Sleep(2000);
OrderModify(Tick,OrderOpenPrice(),NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits),0);
if(UseSound==true) PlaySound(SND_Order);
MaskOn();
return(Tick);
}

Всеравно так же
 
Читайте документацию, которая прямо в Метаидиторе.
 
Evgeno:


if(MarketExec==true){
Tick=OrderSend(Symb,OP_SELL,Vol,Bid,Slippage,0,0);
OrderSelect(Tick,SELECT_BY_TICKET);
Sleep(2000);
OrderModify(Tick,OrderOpenPrice(),NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits),0);
if(UseSound==true) PlaySound(SND_Order);
MaskOn();
return(Tick);
}

Всеравно так же
Неверно вызываете Ордерсенд, стопы пропущены.
 
Evgeno:


if(MarketExec==true){
Tick=OrderSend(Symb,OP_SELL,Vol,Bid,Slippage,0,0);
OrderSelect(Tick,SELECT_BY_TICKET);
Sleep(2000);
OrderModify(Tick,OrderOpenPrice(),NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits),0);
if(UseSound==true) PlaySound(SND_Order);
MaskOn();
return(Tick);
}

Всеравно так же

Посмотрите порядок организации всех торговых ф-ий, особенно последней ф-ии (трала) на этой страничке учебника - у Вас отсутствуют необходимые проверки мин дистанций модифицируемых ордеров соответствия требованиям и ограничениям проведения торговых операций.
 

int OpBuy(string Symb="",double Vol=NULL,int StLs=-1,int TkPr=-1,string Snd=""){
Fncs++;
if(Reverse==true) CloseSells();
if(Symb=="") Symb=Symbol();
if(StLs==-1) StLs=StopLoss;
if(TkPr==-1) TkPr=TakeProfit;
if(Vol==NULL) Vol=Lots;
double SL=0;
double TP=0;
int Tick=0;
if(StLs>0 && StLs<MarketInfo(Symbol(),MODE_STOPLEVEL)+LevelShift) StLs=MarketInfo(Symbol(),MODE_STOPLEVEL)+LevelShift;
if(TkPr>0 && TkPr<MarketInfo(Symbol(),MODE_STOPLEVEL)+LevelShift) TkPr=MarketInfo(Symbol(),MODE_STOPLEVEL)+LevelShift;
RefreshRates();
if(StLs>0) SL=Ask-StLs*Point;
if(TkPr>0) TP=Ask+TkPr*Point;
//ReqOn();
ReqOn("Запрос на сервер");
if(MarketExec==true){
Tick=OrderSend(Symb,OP_SELL,Vol,Bid,Slippage,0,0);
OrderSelect(Tick,SELECT_BY_TICKET);
Sleep(2000);
OrderModify(Tick,OrderOpenPrice(),NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits),0);
if(UseSound==true) PlaySound(SND_Order);
MaskOn();
return(Tick);
}
for(int i=1;i<=Requots;i++){
Reqs++;

Tick=OrderSend(Symb,OP_BUY,Vol,Ask,Slippage,SL,TP);
if(Tick>0){
if(UseSound==true) PlaySound(SND_Order);
MaskOn();
ReqOn("Запрос на сервер","Открыт BUY!","",1000);
return(Tick);
}
else{
if(GetLastError()!=135){
Error(GetLastError());
return(0);
}
}
ReqOn("Запрос на сервер","РЕКВОТ! Попытка № "+DoubleToStr(i+1,0));
}
if(UseSound==true) PlaySound(SND_Order);
MaskOn();
return(Tick);
}

Вот полная функция

 
Evgeno:

int OpBuy(string Symb="",double Vol=NULL,int StLs=-1,int TkPr=-1,string Snd=""){
Fncs++;
if(Reverse==true) CloseSells();
if(Symb=="") Symb=Symbol();
if(StLs==-1) StLs=StopLoss;
if(TkPr==-1) TkPr=TakeProfit;
if(Vol==NULL) Vol=Lots;
double SL=0;
double TP=0;
int Tick=0;
if(StLs>0 && StLs<MarketInfo(Symbol(),MODE_STOPLEVEL)+LevelShift) StLs=MarketInfo(Symbol(),MODE_STOPLEVEL)+LevelShift;
if(TkPr>0 && TkPr<MarketInfo(Symbol(),MODE_STOPLEVEL)+LevelShift) TkPr=MarketInfo(Symbol(),MODE_STOPLEVEL)+LevelShift;
RefreshRates();
if(StLs>0) SL=Ask-StLs*Point;
if(TkPr>0) TP=Ask+TkPr*Point;
//ReqOn();
ReqOn("Запрос на сервер");
if(MarketExec==true){
Tick=OrderSend(Symb,OP_SELL,Vol,Bid,Slippage,0,0);
OrderSelect(Tick,SELECT_BY_TICKET);
Sleep(2000);
OrderModify(Tick,OrderOpenPrice(),NormalizeDouble(SL,Digits),NormalizeDouble(TP,Digits),0);
if(UseSound==true) PlaySound(SND_Order);
MaskOn();
return(Tick);
}
for(int i=1;i<=Requots;i++){
Reqs++;

Tick=OrderSend(Symb,OP_BUY,Vol,Ask,Slippage,SL,TP);
if(Tick>0){
if(UseSound==true) PlaySound(SND_Order);
MaskOn();
ReqOn("Запрос на сервер","Открыт BUY!","",1000);
return(Tick);
}
else{
if(GetLastError()!=135){
Error(GetLastError());
return(0);
}
}
ReqOn("Запрос на сервер","РЕКВОТ! Попытка № "+DoubleToStr(i+1,0));
}
if(UseSound==true) PlaySound(SND_Order);
MaskOn();
return(Tick);
}

Вот полная функция

Типа, заходим, чтобы купить, все для этого готовим, а потом - бац! и продаем.
 
Roger:
Типа, заходим, чтобы купить, все для этого готовим, а потом - бац! и продаем.

Да... :-))) Это мошь просто фишка такая - работаем на отбой... :-))) (включаем реверс) - типа как торги по 5-ти измерениям Б.Вильямса - я делал прямую (на трендовых инструментах - доливаемся по тренду) и обратную версию(на флетовых типа EURGBP)...(работаем в канале - где раньше покупали сейчас продаем...:-)))
Причина обращения: