How to formula entry to enter once and wait for next same entry

 

Hi,

How do I code, for e.g 1 entery has entered and exit from within certain condition, however the current condition still allow for another entry to enter. but I dont want. I want to wait for next round of entry event to occur.

how do I make the code to wait for next round of event before entering again?

I have been trying to figure this out and using all sort of ways but still couldnt get it to work.

any idea shared will be greatly appreciated.

 
Budiman Lays:

I have been trying to figure this out and using all sort of ways but still couldnt get it to work.

Show your code attempt and maybe somebody can help.

Use the code button (Alt+S) when pasting code.

 



string      LAST_TRADE_SELL_POS     = "NO TRADE";
string      LAST_TRADE_BUY_POS      = "NO TRADE";
string      LAST_POSITION_BUY       = "NO TRADE";
string      LAST_POSITION_SELL      = "NO TRADE";
string      B_POS_ENTER             = "Y";
string      S_POS_ENTER             = "Y";
bool        B_TRADED                = false;
bool        S_TRADED                = false;
void OnTick()
  { 
   shortSmaM1 = iMA(NULL, PERIOD_M1, PeriodOne, 0, MODE_SMMA, PRICE_CLOSE, 0);
   longSmaM1 = iMA(NULL, PERIOD_M1, PeriodTwo, 0, MODE_SMMA, PRICE_CLOSE, 0); 
   if (shortSmaM1 > longSmaM1)
   {
      PositionM1_BUY = "BUY";
      if (LAST_TRADE_BUY_POS == "NO TRADE")
      {
         PositionM1_BUY = "BUY";
      } else {
         if (LAST_TRADE_BUY_POS == PositionM1_BUY)
         {
            PositionM1_SELL = "SELL";
         }
         if (LAST_TRADE_BUY_POS == "BUY")
         {
            PositionM1_SELL = "SELL";
         }
      }

   } else {
      PositionM1_BUY = "SELL";
   }
   
   if (shortSmaM1 < longSmaM1)
   {
      PositionM1_SELL = "SELL";
      if (LAST_TRADE_SELL_POS == "NO TRADE")
      {
         PositionM1_SELL = "SELL";
      } else {
         if (LAST_TRADE_SELL_POS == PositionM1_SELL)
         {
            PositionM1_SELL = "BUY";
         }
         if (LAST_TRADE_SELL_POS == "BUY")
         {
            PositionM1_SELL = "SELL";
         }
      }
   } else {
      PositionM1_SELL = "BUY";
   
   }
           if (TradingType == 5) //MA
          {
              if ((PositionM1_BUY == "BUY")  && (iClose(NULL,0,1)>iOpen(NULL,0,1)) && ((iClose(NULL,0,1) + 2 *Point) < iBands(NULL,0,50,2,0,PRICE_CLOSE,MODE_UPPER,0) ) )
              {
                                
                     if (OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, Comment, MagicNumber, 0, Blue)) {
                        LAST_TRADE_BUY_POS = PositionM1_BUY;
                        B_TRADED = true;
                       // LAST_TRADE_SELL_POS = "NO TRADE";
                        Print("Buy order succeeded!");

                     }                 
            
               }  else (PositionM1_BUY ="NO TRADE" );
            
               if ((PositionM1_SELL == "SELL") && (iClose(NULL,0,1)<iOpen(NULL,0,1)) && ((iClose(NULL,0,1) - 2* Point) > iBands(NULL,0,50,2,0,PRICE_CLOSE,MODE_LOWER,0) ))
               {
                     if (OrderSend(Symbol(), OP_SELL, lots, Bid, 3, 0, 0, Comment, MagicNumber, 0, Red)) {
                        LAST_TRADE_SELL_POS = PositionM1_SELL;
                        S_TRADED = true;
                      //  LAST_TRADE_BUY_POS = "NO TRADE";
                        Print("Sell order succeeded!");

                     }                 
            
               }  else (PositionM1_SELL = "NO TRADE"); 
               
  
          }
roughly like above. I wants it to only enter when the first bar after cross over(Buy signal) to go according to the trade direction then enter. and once reach stop loss/take profit it will pause and wait till the next buy trend (MA Cross to trend) then kicked off again.

never able to get it to work.


the new trade always enter after the current trade closes.


and sometime enters outside the boilinger band while I dont want that to happen. I want it to enter inside the boilinger band.

Basic Principles - Trading Operations - MetaTrader 5 Help
Basic Principles - Trading Operations - MetaTrader 5 Help
  • www.metatrader5.com
is an instruction given to a broker to buy or sell a financial instrument. There are two main types of orders: Market and Pending. In addition, there are special Take Profit and Stop Loss levels. is the commercial exchange (buying or selling) of a financial security. Buying is executed at the demand price (Ask), and Sell is performed at the...