Rgd: Open a position if there are 30 pips gap between all running order of Symbol()

 

Hi guys.. I need some help here.

Previously I ask a similar question and i got this reply below.. however when I try compile, there quite a lot of errors as the variables are not fully declare and I not sure if its work below.

Just to ask how do I create a code or function that do the following.

Example I got 1 trades of EUR/USD running

Trade 1 at 1.3030, 1.3065, 1.3090

If the EA want to create a new trade,it must make sure there is 30 pips gap difference on all running trades ( means the Highest & Lowest Price Trade must have 30 pips gap with the next open position )

so the acceptable trade will be anything > 1.3010 or < 1.3120 (30 pips from 1.3030[Minimum] and 30 pips from 1.3090[Max])

Thanks for helping..

Below is a code that someone post to me earlier on a few weeks ago but I trying integrate now and got some list of errors like

 if(Digits % 2 == 1){   // DE30=1/JPY=3/EURUSD=5 forum.mql4.com/43064#515262
            pips2dbl = Point*10;    pips2points = 10;    Digits.pips = 1;
   } else { pips2dbl = Point;       pips2points =  1;    Digits.pips = 0;     }
   // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//---- These are adjusted for 5 digit brokers.
   //{On ECN brokers you must open first and THEN set stops
   // int      ticket = OrderSend(..., 0,0,...)
   // if(      ticket < 0)
   //    Alert("OrderSend failed: ", GetLastError());
   // else  if(!OrderSelect(ticket, SELECT_BY_TICKET))
   //    Alert("OrderSelect failed: ", GetLastError());
   // else  if(!OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0))
   //    Alert("OrderModify failed: ", GetLastError());
   //}
   market.pair    = Symbol();
   :
}
// extern int magic.number
bool     MySelect(int iWhat, int eSelect, int ePool=MODE_TRADES){
   if(!OrderSelect(iWhat, eSelect, ePool) )  return (false);
   if(OrderMagicNumber() != magic.number  )  return (false);
   if(OrderSymbol()      != market.pair   )  return (false);
   if(ePool != MODE_HISTORY               )  return (true);
   return(OrderType() <= OP_SELL);  // Avoid cr/bal forum.mql4.com/32363#325360
                                    // https://forum.mql4.com/30708
                                    // Never select canceled orders.
}
//////
bool validGap = true; // Assume ok.
   for(int iPos = OrdersTotal()-1; iPos >= 0 ; iPos-- ) if(
      MySelect(iPos, SELECT_BY_POS)                   ) if(
      MathAbs( OrderClosePrice() - OrderOpenPrice() ) < 30*pips2dbl) validGap = false;

Error result..

Compiling 'Baoky - Alpha Release.mq4'...        
'market.pair' - variable not defined    C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (171, 4)
'magic.number' - variable not defined   C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (177, 29)
'market.pair' - variable not defined    C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (178, 29)
'OrdersTotal' - initialization expected C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (186, 19)
'(' - comma or semicolon expected       C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (186, 30)
'iPos' - expression on global scope not allowed C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (186, 36)
'iPos' - variable not defined   C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (186, 36)
'iPos' - expression on global scope not allowed C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (186, 48)
'iPos' - variable not defined   C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (186, 48)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (186, 55)
'MySelect' - expression on global scope not allowed     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (187, 7)
'iPos' - expression on global scope not allowed C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (187, 16)
'iPos' - variable not defined   C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (187, 16)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (187, 55)
'pips2dbl' - expression on global scope not allowed     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (188, 60)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (188, 68)
'validGap' - expression on global scope not allowed     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (188, 70)
'currentPrice' - expression on global scope not allowed C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (191, 7)
'currentPrice' - variable not defined   C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (191, 7)
'highRange' - expression on global scope not allowed    C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (191, 23)
'currentPrice' - expression on global scope not allowed C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (191, 38)
'currentPrice' - variable not defined   C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (191, 38)
'lowRange' - expression on global scope not allowed     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (191, 54)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (191, 64)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (193, 29)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (197, 22)
'tdiINDICATION' - variable not defined  C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (199, 31)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (199, 55)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (203, 17)
'SL' - variable not defined     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (204, 4)
'onePip' - variable not defined C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (204, 12)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (204, 23)
'TP' - variable not defined     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (205, 4)
'onePip' - variable not defined C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (205, 12)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (205, 23)
'Ticket' - variable not defined C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (206, 4)
'SL' - variable not defined     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (206, 51)
'TP' - variable not defined     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (206, 54)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (206, 56)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (210, 23)
'tdiINDICATION' - variable not defined  C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (212, 29)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (212, 53)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (214, 17)
'SL' - variable not defined     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (215, 4)
'onePip' - variable not defined C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (215, 12)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (215, 23)
'TP' - variable not defined     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (216, 4)
'onePip' - variable not defined C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (216, 12)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (216, 23)
'Ticket' - variable not defined C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (217, 4)
'SL' - variable not defined     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (217, 52)
'TP' - variable not defined     C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (217, 55)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (217, 57)
'i' - expression on global scope not allowed    C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (225, 19)
'i' - expression on global scope not allowed    C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (225, 38)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (225, 41)
'{' - expression on global scope not allowed    C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (226, 3)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (227, 48)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (229, 59)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (230, 62)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (231, 61)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (235, 32)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (237, 43)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (239, 45)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (241, 101)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (242, 75)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (245, 86)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (246, 115)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (247, 68)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (249, 38)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (251, 43)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (253, 73)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (255, 101)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (256, 76)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (259, 86)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (260, 115)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (261, 69)
')' - unbalanced right parenthesis      C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (266, 12)
'}' - unbalanced parentheses    C:\Program Files (x86)\FXCM MetaTrader 4\experts\Baoky - Position Builder Alpha Release.mq4 (267, 3)
 

I don't need the same code, but will hope if someone can point to me or give me the code to check if its in "valid condition to open trade " .

Checking all running trades of Symbol() minimum & max price got 30 pips gap. and return boolean validTrade = yes;

Thanks for helping

 

The function MySelect () should be placed outside of any other function.

I have made some adjustments to your code, but am not claiming that it will do what you want. I'm not totally sure what you want it to do.

Note that as you give the variable ePool=MODE_TRADES, it will always != MODE_HISTORY

int start()
  {
//---- 
  double pips2dbl, pips2points, Digits.pips;
   
   

  if(Digits % 2 == 1)   // DE30=1/JPY=3/EURUSD=5 forum.mql4.com/43064#515262
       { pips2dbl = Point*10;    pips2points = 10;    Digits.pips = 1; }
  else { pips2dbl = Point;       pips2points =  1;    Digits.pips = 0; }
   
   

//////
bool validGap = true; // Assume ok.
   for(int iPos = OrdersTotal()-1; iPos >= 0 ; iPos-- )
      { 
      if( MySelect(iPos, SELECT_BY_POS) ) 
      if( MathAbs( OrderClosePrice() - OrderOpenPrice() ) < 30*pips2dbl) 
         validGap = false;
      }
     
//----
   return(0);
  }
//+------------------------------------------------------------------+

// extern int magic.number
bool     MySelect(int iWhat, int eSelect, int ePool=MODE_TRADES)
   {
   if(!OrderSelect(iWhat, eSelect, ePool) )  return (false);
   if(OrderMagicNumber() != magic.number  )  return (false);
   if(OrderSymbol()      != Symbol()   )  return (false);
   if(ePool != MODE_HISTORY               )  return (true);
   return(OrderType() <= OP_SELL);  // Avoid cr/bal forum.mql4.com/32363#325360
                                    // https://forum.mql4.com/30708
                                    // Never select canceled orders.
   }
 
  1. First learn to code
  2. Go back to your original post. Pips2dbl was set in init()
  3. Don't come back until you can at least get your code to compile.
 
GumRai:

The function MySelect () should be placed outside of any other function.

I have made some adjustments to your code, but am not claiming that it will do what you want. I'm not totally sure what you want it to do.

Note that as you give the variable ePool=MODE_TRADES, it will always != MODE_HISTORY


Hi GumRai, how do I get the value of magic.number or I just set it as

int magic.number;

 
baokydev:


Hi GumRai, how do I get the value of magic.number or I just set it as

int magic.number;


I assumed that as you included //extern int magic.number

in your code, then it is one of the input parameters

Reason: