Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Скачай MetaTrader 5 и начни торговать уже сегодня!
nov123
32
nov123 2013.02.04 20:17 

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

#property copyright ""
//hedger_vX.mq4
//17.12.2011

extern string comment;     //Первая часть комментария, либо без комментария для отслеживания всех сделок
extern int drawdown = 20;  //Просадка в пунктах прибыли
extern int step = 10;      //Возврат хеджевой сделки в пунктах прибыли

int init(){}

int start(){
  bool hb, hs;
  int i, j, ti;
  for(i=0; i<OrdersTotal(); i++){//Сначала перебрать и найти уже открытые сделки хеджера
    OrderSelect(i,SELECT_BY_POS);
    if(OrderSymbol() == Symbol()){
      if(OrderComment() == "hedger_sell"){
        hs = true;
        if(OrderProfit()/10 < -step){OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);}
      }else if(OrderComment() == "hedger_buy"){
        hb = true;
        if(OrderProfit()/10 < -step){OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);}
      }
    }
  }
  for(j=0; j<OrdersTotal(); j++){//Открывать хедж, только если хеджа в этом направлении и по этому инструменту еще нет
    OrderSelect(j,SELECT_BY_POS);
    if(OrderSymbol() == Symbol() && OrderProfit()/10 < -drawdown){//Продвигаемся, только если просадка превышает заданный уровень
      if((comment != "" && StringFind(OrderComment(),comment,0) != -1) || (comment == "")){
        if(OrderType() == OP_BUY && !hs){OrderSend(Symbol(),OP_SELL,OrderLots(),NormalizeDouble(Bid,Digits),3,0,0,"hedger_sell",0,0,Red);}
        else if(OrderType() == OP_SELL && !hb){OrderSend(Symbol(),OP_BUY,OrderLots(),NormalizeDouble(Ask,Digits),3,0,0,"hedger_buy",0,0,Green);}
      }
    }
  }     
  if(comment == ""){comments("line1",5,15,StringConcatenate("Коммент: нет коммента; просадка: ",drawdown),Gold);}
  else{comments("line1",5,15,StringConcatenate("Коммент: ",comment,"; просадка: ",drawdown),Gold);}
}
   
void comments(string name, int x, int y, string texto, color couleur){
  if(ObjectFind(name) == -1){ObjectCreate(name,OBJ_LABEL,0,0,0);}
  ObjectSet(name,OBJPROP_XDISTANCE,x);
  ObjectSet(name,OBJPROP_YDISTANCE,y);
  ObjectSet(name,OBJPROP_CORNER,1);
  ObjectSetText(name,texto,10,"Times New Roman",couleur);
}

Boris
3902
Boris 2013.02.04 20:50  
nov123:

Я недавно начал изучать mql4 и не могу понять почему не работает советник.

#property copyright ""
//hedger_vX.mq4
//17.12.2011

extern string comment;     //Первая часть комментария, либо без комментария для отслеживания всех сделок
extern int drawdown = 20;  //Просадка в пунктах прибыли
extern int step = 10;      //Возврат хеджевой сделки в пунктах прибыли

int init(){}

int start(){
  bool hb, hs;
  int i, j, ti;
  for(i=0; i<OrdersTotal(); i++){//Сначала перебрать и найти уже открытые сделки хеджера
    OrderSelect(i,SELECT_BY_POS);
    if(OrderSymbol() == Symbol()){
      if(OrderComment() == "hedger_sell"){
        hs = true;
        if(OrderProfit()/10 < -step){OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);}
      }else if(OrderComment() == "hedger_buy"){
        hb = true;
        if(OrderProfit()/10 < -step){OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);}
      }
    }
  }
  for(j=0; j<OrdersTotal(); j++){//Открывать хедж, только если хеджа в этом направлении и по этому инструменту еще нет
    OrderSelect(j,SELECT_BY_POS);
    if(OrderSymbol() == Symbol() && OrderProfit()/10 < -drawdown){//Продвигаемся, только если просадка превышает заданный уровень
      if((comment != "" && StringFind(OrderComment(),comment,0) != -1) || (comment == "")){
        if(OrderType() == OP_BUY && !hs){OrderSend(Symbol(),OP_SELL,OrderLots(),NormalizeDouble(Bid,Digits),3,0,0,"hedger_sell",0,0,Red);}
        else if(OrderType() == OP_SELL && !hb){OrderSend(Symbol(),OP_BUY,OrderLots(),NormalizeDouble(Ask,Digits),3,0,0,"hedger_buy",0,0,Green);}
      }
    }
  }      
  if(comment == ""){comments("line1",5,15,StringConcatenate("Коммент: нет коммента; просадка: ",drawdown),Gold);}
  else{comments("line1",5,15,StringConcatenate("Коммент: ",comment,"; просадка: ",drawdown),Gold);}
}
    
void comments(string name, int x, int y, string texto, color couleur){
  if(ObjectFind(name) == -1){ObjectCreate(name,OBJ_LABEL,0,0,0);}
  ObjectSet(name,OBJPROP_XDISTANCE,x);
  ObjectSet(name,OBJPROP_YDISTANCE,y);
  ObjectSet(name,OBJPROP_CORNER,1);
  ObjectSetText(name,texto,10,"Times New Roman",couleur);
}

 

Sergey Sartakov
1287
Sergey Sartakov 2013.02.04 23:36  
nov123:

Я недавно начал изучать mql4 и не могу понять почему не работает советник.



Я давно изучаю MQL4, я давно изучил MQL4, но все мои советники сливают.  Что еще надо изучить ? Помогите, пожалуйста !
Sceptic Philozoff
Модератор
17844
Sceptic Philozoff 2013.02.05 00:29  
nov123: Я недавно начал изучать mql4 и не могу понять почему не работает советник.

Что конкретно Вам не нравится? Какая ошибка выдается при компиляции?

Если ее нет, проясните, пожалуйста, какое несоответствие ожиданиям Вас беспокоит.

Sergey Sartakov
1287
Sergey Sartakov 2013.02.05 00:41  
Mathemat:

Что конкретно Вам не нравится? Какая ошибка выдается при компиляции?

Если ее нет, проясните, пожалуйста, какое несоответствие ожиданиям Вас беспокоит.


"Что конкретно Вам не нравится? Какая ошибка выдается при компиляции?

Если ее нет, проясните, пожалуйста, какое несоответствие ожиданиям Вас беспокоит ? "

С уважением - Рената Литвинова. 

Срочно в анналлы. 

Sergey Sartakov
1287
Sergey Sartakov 2013.02.05 00:45  
more:


"Что конкретно Вам не нравится? Какая ошибка выдается при компиляции?

Если ее нет, проясните, пожалуйста, какое несоответствие ожиданиям Вас беспокоит ? "

С уважением - Рената Литвинова. 

Срочно в анналлы. 


Нас беспокоит душевное здоровье Математика !

Прямо как на приеме у психотерапевта ! 

Слушай, Математик, ты, случайно, ориентацию не поменял ? 

Sceptic Philozoff
Модератор
17844
Sceptic Philozoff 2013.02.05 00:52  
more: Слушай, Математик, ты, случайно, ориентацию не поменял ? 

Спасибо, нет, не поменял: как был модератором, так и остаюсь.

P.S. ТС - новичок. Название темы и формулировка вопроса, мягко говоря, не слишком четкие - вот и решил помочь.

Sergey Sartakov
1287
Sergey Sartakov 2013.02.05 00:55  
Mathemat:

Спасибо, нет, не поменял: как был модератором, так и остаюсь.

P.S. ТС - новичок. Название темы и формулировка вопроса не слишком четкие, вот и решил помочь.


Ладно, ладно, знаю, добрый ты человек.  Это я, что-то, наверное, съел, или выпил....лишнее...
Vladimir Paukas
4099
Vladimir Paukas 2013.02.05 03:01  
nov123:

Я недавно начал изучать mql4 и не могу понять почему не работает советник.



  for(j=0; j<OrdersTotal(); j++){//Открывать хедж, только если хеджа в этом направлении и по этому инструменту еще нет
    OrderSelect(j,SELECT_BY_POS);
    if(OrderSymbol() == Symbol() && OrderProfit()/10 < -drawdown){//Продвигаемся, только если просадка превышает заданный уровень
      if((comment != "" && StringFind(OrderComment(),comment,0) != -1) || (comment == "")){
        if(OrderType() == OP_BUY && !hs){OrderSend(Symbol(),OP_SELL,OrderLots(),NormalizeDouble(Bid,Digits),3,0,0,"hedger_sell",0,0,Red);}
        else if(OrderType() == OP_SELL && !hb){OrderSend(Symbol(),OP_BUY,OrderLots(),NormalizeDouble(Ask,Digits),3,0,0,"hedger_buy",0,0,Green);}
      }
    }
  }     
 


Потому что он не открывает ордера.
fozi
2926
fozi 2013.02.05 08:06  
more:


"Что конкретно Вам не нравится? Какая ошибка выдается при компиляции?

Если ее нет, проясните, пожалуйста, какое несоответствие ожиданиям Вас беспокоит ? "

С уважением - Рената Литвинова. 

Срочно в анналлы. 

Я купил советник за 100 долларов в интернете, в инструкции написано что он приносит прибыль 20% в день. В первые два дня советник вообще не торговал, а через месяц слил все депо. Деньги на депозит я брал в банке (кредит).

Прогрпмисты помогите. Почему советник не торгует прибыльно, нужно сделать так чтобы он торговал в плюс мне нужно чтоб он отработал кредит а то проценты ростут.

:)))))))))) 

pako
3311
pako 2013.02.05 09:44  
fozi:

Я купил советник за 100 долларов в интернете, в инструкции написано что он приносит прибыль 20% в день. В первые два дня советник вообще не торговал, а через месяц слил все депо. Деньги на депозит я брал в банке (кредит).

Прогрпмисты помогите. Почему советник не торгует прибыльно, нужно сделать так чтобы он торговал в плюс мне нужно чтоб он отработал кредит а то проценты ростут.

:)))))))))) 


я плакал 
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий