Помогите переделать

 
https://www.mql5.com/ru/code/11182#comment_form

У меня EURUSD 1,55555 пять цифр после запятой И так хотелос бы самому по примеру этого советника попробовать самому писать Описание комбинаций буду писать цам о насчет остального прошы помощи


Открываем ордер на продажу по комбинации которая укязывает на продажу Если появилась еще комбинация на продажу открываем еще один ордер и т д...... Все Ордера на продажу закрывается при первой появлении комбинации на покупку на оборот

TP нету

SL нету

LOT постоянный 0,01

Советник должен анализировать только японские свечи и не коких больше индикаторов

Если кто поможет зарание спасибо
 

gince писал (а) >>
https://www.mql5.com/ru/code/11182#comment_form

У меня EURUSD 1,55555 пять цифр после запятой И так хотелос бы самому по примеру этого советника попробовать самому писать Описание комбинаций буду писать цам о насчет остального прошы помощи


Слишком много чего то стерел.

И тут закрываетса по SL или TP,а я хотел бы чтобы закрытие произошло всех преведущих позичий при появлейии противоположного сигнала.  То есть если были открыты ордера на продажу при появлений сигнала на покупку должны закрытся все  открытые ордера на продажу и наоборот.

//+------------------------------------------------------------------+
//| Executer_candles.mq4 |
//| Copyright © 2006, Alex Sidd (Executer) |
//| mailto:work_st@mail.ru |
//+------------------------------------------------------------------+
//| ????????? "????????????" ??????? ????, ???????? ????, ????????, |
//| ???? ??????? ?????????????? ?? ?????? ?????????. |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Alex Sidd (Executer)"
#property link "mailto:work_st@mail.ru"
//----
#define MAGIC 612457
//----
//extern double lStopLoss = 90;
//extern double sStopLoss =60;
//extern double lTakeProfit = 80;
//extern double sTakeProfit = 100;
//extern double lTrailingStop = 30;
//extern double sTrailingStop = 100;
extern double Lots = 0.010;
extern double DecreaseFactor = 100;
extern double MaximumRisk = 0.025;
extern double MaximumLots = 100;
extern bool flag = true;
//----
double Limit = 400;
color clOpenBuy = Blue;
color clCloseBuy = Aqua;
color clOpenSell = Red;
color clCloseSell = Violet;
color clModiBuy = Blue;
color clModiSell = Red;
string Name_Expert = "Executer_Candles";
int Slippage = 0;
bool UseSound = True;
string NameFileSound = "alert.wav";
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//double GetSizeLot()
  //{
  // double Lot = Lots;
  // int cycle;
  // int prof = 0;
  /// int orders = HistoryTotal(); // history orders total
  // int losses = 0; // number of losses orders without a break
  //int vinn = 0;
  // int i = orders;
//---- select lot size
 // Lot = NormalizeDouble(AccountFreeMargin()*MaximumRisk / 100, 1);
 // if(AccountFreeMargin() <= 10000 && AccountFreeMargin() > 5000) 
  // DecreaseFactor = NormalizeDouble(AccountFreeMargin() / 100, 1);
  /// if(AccountFreeMargin() <= 5000 && AccountFreeMargin() > 3000) 
  // DecreaseFactor = NormalizeDouble(AccountFreeMargin() / 200, 1);
  // if(AccountFreeMargin() <= 14) 
  // DecreaseFactor = 14;
  // if(AccountFreeMargin() > 10000) 
  // DecreaseFactor = 60;
  /// if(DecreaseFactor > 0 && orders > DecreaseFactor)
  // {
  // for(cycle = 1; cycle < DecreaseFactor; cycle++)
  // {
  // i--;
  // if(OrderSelect(i, SELECT_BY_TICKET, MODE_HISTORY) == false) 
  // { 
  // Print("Error in history!"); 
  // break; 
  // }
  //  
  // if(OrderCloseTime() > 0)
  // {
  // prof = prof + OrderProfit(); 
  // if(OrderProfit() <= 0 ) 
  // losses++;
  // else 
  // vinn++;
  // }
  // } 
  // if(prof <= 0 ) 
  // Lot = 0.1; // Lot - (0.1*losses); //Lot = 0.1;//&& losses > vinn
//////////// if(prof <=0 && vinn>losses) Lot = Lot - (0.1*losses);
  // if(prof > 0 && losses > vinn) 
  // {
  // Lot = Lot + (0.1*NormalizeDouble(vinn / 4, 0.1));
  // }
  // if(prof > 0 && losses <= vinn )
  // {
  // Lot = Lot + (0.1*NormalizeDouble(vinn / 2, 0.1));
  // }
  // } 
  // if(AccountFreeMargin() < 300 || Lot < 0.1) 
 // Lot = 0.1;
  // if(Lot*1275 >= AccountFreeMargin()) 
  // Lot = NormalizeDouble(AccountFreeMargin()*MaximumRisk / 100, 1);
  /// if(MaximumLots != 0 && Lot > MaximumLots) 
  // Lot = MaximumLots;
  // if(DecreaseFactor > orders) 
  // Lot = Lots;
  // Lot = Lots;
  // return(Lot);
 // }  
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+  
bool IsUp()
  {
  if(iOpen(NULL, 1440, 1) < iClose(NULL, 1440, 1)) 
  return(false);
  else 
  return(true);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void deinit() 
  {
  Comment("");
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsViselnik()
  {
  if((IsUp() == true) && 
  (Open[1] - Close[1] > 0) && 
  ((High[1] - Open[1])*100 / (Open[1] - Close[1] + 0.0000001) < 15) && 
  ((Close[1] - Low[1])*100 / (Open[1] - Close[1] + 0.0000001) > 200) && 
  (Open[2] - Close[2] < 0)) 
  return(true);
  else 
  return(false);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsHummer()
  {
  if((IsUp() == false) && 
  (Open[1] - Close[1] < 0) &&
  ((High[1] - Close[1])*100 / (Close[1] - Open[1] + 0.0000001) > 200) && 
  ((Open[1] - Low[1])*100 / (Close[1] - Open[1] + 0.0000001)<15) && 
  (Open[2] - Close[2] > 0)) 
  return(true);
  else 
  return(false);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsBear()
  {
  if((IsUp() == true) && 
  (Open[1] - Close[1] > 0) &&
  (Open[1] >= Close[2]) && 
  (Close[1] <= Open[2]) && 
  (Open[2] - Close[2] < 0) && 
  ((Open[1] - Close[1]) / (Close[2] - Open[2] + 0.0000001) > 1.5)) 
  return(true);
  else 
  return(false);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsBull()
  {
  if((IsUp() == false) &&
  (Open[1] - Close[1] < 0) && 
  (Open[2] - Close[2] > 0) && 
  (Close[1] >= Open[2]) && 
  (Open[1] <= Close[2]) && 
  ((Close[1] - Open[1]) / (Open[2] - Close[2] + 0.0000001) > 1.5)) 
  return(true);
  else 
  return(false);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool Zavesa_black()
  {
  if((IsUp() == true) && 
  (Open[1] - Close[1] > 0) &&
  (Open[2] - Close[2] < 0) && 
  ((Close[2] - Open[2]) / (High[2] - Low[2]) > 0.6) && 
  (Open[1] > High[2]) && 
  (Close[1] < (Open[2] + (Close[2] - Open[2]) / 2))) 
  return(true);
  else 
  return(false);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool Prosvet()
  {
  if((IsUp() == false) && 
  (Open[1] - Close[1] < 0) &&
  (Open[2] - Close[2] > 0) && 
  ((Open[2] - Close[2]) / (High[2] - Low[2]) > 0.6) && 
  (Open[1] < Low[2]) && 
  (Close[1] > (Close[2] + (Open[2] - Close[2]) / 2))) 
  return(true);
  else 
  return(false);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool morning_star()
  {
  if((Open[3] - Close[3] > 0) && 
  (Close[2] - Open[2] > 0) && 
  (Close[1] - Open[1] > 0) && 
  (Close[2] < Close[3]) && 
  (Open[1] > Close[2]) && 
  (((MathAbs(Open[3] - Close[1]) + MathAbs(Open[1] - Close[3])) / 
  (Open[3] - Close[3] + 0.0000001)) < 0.1) && 
  ((Open[3] - Close[3]) / (High[3] - Low[3]) > 0.8) && ((Close[2] - Open[2]) / 
  (High[2] - Low[2]) < 0.3) && 
  (Close[1] - Open[1]) / (High[1] - Low[1]) > 0.8) 
  return(true);
  else 
  return(false);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool evening_star()
  {
  if((Open[3] - Close[3] < 0) && 
  (Close[2] - Open[2] < 0) && 
  (Close[1] - Open[1] < 0) && 
  (Close[2] > Close[3]) && 
  (Open[1] < Close[2]) && 
  (((MathAbs(Open[3] - Close[1]) + MathAbs(Open[1] - Close[3])) / (Close[3] - 
  Open[3] + 0.0000001)) < 0.1) && 
  ((Close[3] - Open[3]) / (High[3] - Low[3]) > 0.8) && ((Open[2] - Close[2]) / 
  (High[2] - Low[2]) < 0.3) && 
  ((Open[1] - Close[1]) / (High[1] - Low[1]) > 0.8)) 
  return(true);
  else 
  return(false);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsEveningDodgiStar()
  {
  if((Open[3] - Close[3] < 0) && 
  (Close[2] - Open[2] == 0) && 
  (Close[1] - Open[1] <0) && 
  (Close[2] >= Close[3]) && 
  (Open[1] <= Close[2]) && 
  (((MathAbs(Open[3] - Close[1]) + MathAbs(Open[1] -Close[3])) / 
  (Open[3] - Close[3] + 0.0000001)) < 0.1)) 
  return(true);
  else 
  return(false);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
bool IsMorningDodgiStar()
  {
  if((Open[3] - Close[3] > 0) && 
  (Close[2] - Open[2] == 0) && 
  (Close[1] - Open[1] > 0) && 
  (Close[2] <= Close[3]) && 
  (Open[1] >= Close[2]) && 
  (((MathAbs(Open[3] - Close[1]) + MathAbs(Open[1] - Close[3])) / 
  (Open[3] - Close[3] + 0.0000001)) < 0.1)) 
  return(true);
  else 
  return(false);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//int start()
  {
  if(Bars < 100)
  {
  Print("bars less than 100");
  return(0);
  }
 // if(lStopLoss < 3)
  // {
  // Print("StopLoss less than 3");
  // return(0);
  //}
  // if(lTakeProfit < 3)
  // {
  // Print("TakeProfit less than 3");
  // return(0);
  // }
  //if(sStopLoss < 3)
  //{
  // Print("StopLoss less than 3");
  return(0);
  //}
  //if(sTakeProfit < 3)
  // {
  // Print("TakeProfit less than 3");
  // return(0);
  // }
  //// if(AccountFreeMargin() < (1000*Lots))
  // {
  // Print("We have no money. Free Margin = ", AccountFreeMargin());
  /// return(0);
  // }
 if(!ExistPositions())
  {
  if(IsHummer() == true)
  {
  OpenBuy();
  return(0);
  }
  if(IsBull() == true)
  {
  OpenBuy();
  return(0);
  }
  if(Prosvet() == true)
  {
  OpenBuy();
  return(0);
  }
  if(morning_star() == true)
  {
  OpenBuy();
  return(0);
  }
  if(IsMorningDodgiStar() == true)
  {
  OpenBuy();
  return(0);
  }  
  }
  if(!ExistPositions())
  {
  if(IsViselnik() == true)
  {
  OpenSell();
  return(0);
  }
  if(IsBear() == true)
  {
  OpenSell();
  return(0);
  }
  if(Zavesa_black() == true)
  {
  OpenSell();
  return(0);
  }
  if(evening_star() == true)
  {
  OpenSell();
  return(0);
  }
  if(IsEveningDodgiStar() == true)
  {
  OpenSell();
  return(0);
  }  
  }
  //TrailingPositionsBuy(lTrailingStop);
  // TrailingPositionsSell(sTrailingStop);
  // return (0);
  }
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//bool ExistPositions() 
  //{
  // for(int i = 0; i < OrdersTotal(); i++) 
  // {
  // if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
  // {
  if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC) 
  // {
  // return(True);
  // }
  // } 
  // } 
  // return(false);
  //}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//void TrailingPositionsBuy(int trailingStop) 
 // { 
  // for(int i = 0; i < OrdersTotal(); i++) 
  // { 
  // if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
  // { 
  // if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC) 
  // { 
  // if(OrderType() == OP_BUY) 
  // { 
  // if(Bid - OrderOpenPrice() > trailingStop*Point) 
  // { 
  // if(OrderStopLoss() < Bid - trailingStop*Point) 
  // ModifyStopLoss(Bid - trailingStop*Point); 
  // } 
  // } 
  // } 
  // } 
  // } 
 // } 
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//void TrailingPositionsSell(int trailingStop) 
 // { 
 // for(int i = 0; i < OrdersTotal(); i++) 
 // { 
  // if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
  // { 
  // if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC) 
  // { 
  // if(OrderType() == OP_SELL) 
  // { 
  // if(OrderOpenPrice() - Ask > trailingStop*Point) 
  // { 
  // if(OrderStopLoss() > Ask + trailingStop*Point || OrderStopLoss() == 0)  
  // ModifyStopLoss(Ask + trailingStop*Point); 
  // } 
  // } 
  // } 
  // } 
  // } 
 // } 
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//void ModifyStopLoss(double ldStopLoss) 
 // { 
  // bool fm;
  // fm = OrderModify(OrderTicket(), OrderOpenPrice(), ldStopLoss, OrderTakeProfit(), 
  // 0, CLR_NONE); 
  //if(fm && UseSound) 
  // PlaySound(NameFileSound); 
  //}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CloseBuy() 
  { 
  bool fc; 
  fc = OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, clCloseBuy); 
  // if(fc && UseSound) 
  // PlaySound(NameFileSound); 
  } 
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CloseSell() 
  { 
  bool fc; 
  fc = OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, clCloseSell); 
  //if(fc && UseSound) 
  // PlaySound(NameFileSound); 
  } 
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OpenBuy() 
  { 
  double ldLot, ldStop, ldTake; 
  string lsComm; 
  // ldLot = GetSizeLot(); 
  //ldStop = GetStopLossBuy(); 
  //ldTake = GetTakeProfitBuy(); 
  // lsComm = GetCommentForOrder();
  OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, ldStop, ldTake, MAGIC, 
  0, clOpenBuy); 
  //if(UseSound) 
  // PlaySound(NameFileSound);
  } 
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OpenSell() 
  { 
  double ldLot, ldStop, ldTake; 
  string lsComm;
  int i = 1;
  int orders = HistoryTotal(); 
  //ldLot = GetSizeLot(); 
  //ldStop = GetStopLossSell(); 
  //ldTake = GetTakeProfitSell(); 
  // lsComm = GetCommentForOrder();
  OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, ldStop, ldTake, MAGIC, 
  0, clOpenSell); 
  //if(UseSound) 
  // PlaySound(NameFileSound);  
  } 
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//string GetCommentForOrder() 
 // {  
 // return(Name_Expert); 
// } 
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//double GetStopLossBuy() 
 // {  
  // return (Bid - lStopLoss*Point);
  //} 
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//double GetStopLossSell() 
  //{  
  // return(Ask + sStopLoss*Point); 
 // } 
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//double GetTakeProfitBuy() 
// {  
 // return(Ask + lTakeProfit*Point); 
 // } 
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//double GetTakeProfitSell() 
  //{  
  // return(Bid - sTakeProfit*Point); 
 // } 
//----
//return(0);
//+------------------------------------------------------------------+