ёмаё делаю все как положено, открыть позицию OrderSend() затем OrderModify(), он один хер 130 выдает, че за на?
- Скрипты: Pipsing_Setup_Buy_Sell
- Советники: JS-MA-Day
- Помогите устранить ошибку в советнике
поясню, открываю позицию со стопами 0... 130 возвращает OrderModify()
И, кстати еще кое что.... Добавьте MIME-тип "application/octet-stream" к файлам MQ4, а то некоторые дебильные арбузы(как у меня) вызывают несуществующий плагин))
Evgeno:
ёмаё делаю все как положено, открыть позицию OrderSend() затем OrderModify(), он один хер 130 выдает, че за на?
ёмаё делаю все как положено, открыть позицию 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);
}
Всеравно так же
Неверно вызываете Ордерсенд, стопы пропущены.
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);
}
Всеравно так же
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);
}
Типа, заходим, чтобы купить, все для этого готовим, а потом - бац! и продаем.
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)...(работаем в канале - где раньше покупали сейчас продаем...:-)))
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь