Помогите пожалуйста!

 

Я недавно начал изучать 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);
}

 
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);
}

 

 
nov123:

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



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

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

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

 
Mathemat:

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

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


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

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

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

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

 
more:


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

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

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

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


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

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

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

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

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

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

 
Mathemat:

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

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


Ладно, ладно, знаю, добрый ты человек.  Это я, что-то, наверное, съел, или выпил....лишнее...
 
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);}
      }
    }
  }     
 


Потому что он не открывает ордера.
 
more:


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

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

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

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

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

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

:)))))))))) 

 
fozi:

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

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

:)))))))))) 


я плакал