I need help for error i get in my code

 

this is my end of code

void OnTick()
  {
   double currentPrice = MarketInfo(Symbol(), MODE_BID);
   double buyStopPrice = currentPrice + Spread * Point;
   double sellStopPrice = currentPrice - Spread * Point;


   for(int i = 0; i < 3; i++)
     {
      OrderSend(Symbol(), OP_BUYSTOP, LotSize, buyStopPrice, Slippage, 0, 0, "", 0, clrNONE);
      OrderSend(Symbol(), OP_SELLSTOP, LotSize, sellStopPrice, Slippage, 0, 0, "", 0, clrNONE);
     }

   while(true)
     {
      double highestBuyStop = OrderGetDouble(ORDER_PROPERTY_PRICE_OPEN, OrderGetTicket(OrderGetInteger(ORDER_PROPERTY_NEXT)));
      double lowestSellStop = OrderGetDouble(ORDER_PROPERTY_PRICE_OPEN, OrderGetTicket(OrderGetInteger(ORDER_PROPERTY_NEXT)));

      if(highestBuyStop - currentPrice >= ProfitTarget * Point && lowestSellStop - currentPrice >= ProfitTarget * Point)
        {
         for(int i = 0; i < 3; i++)
           }
      OrderClose(OrderGetTicket(OrderGetInteger(ORDER_PROPERTY_NEXT)), OrderLots(), OrderClosePrice()

                 //+------------------------------------------------------------------+
                 //+------------------------------------------------------------------+ 

                 

and this is what i get 2 err

')' - unexpected end of program DayTrading.mq4 53 101
'{' - unbalanced parentheses DayTrading.mq4 33 3


 
אריק אלגרבלי:

this is my end of code

                       

and this is what i get 2 err


fix your brackets...

   while(true)
     {
      double highestBuyStop = OrderGetDouble(ORDER_PROPERTY_PRICE_OPEN, OrderGetTicket(OrderGetInteger(ORDER_PROPERTY_NEXT)));
      double lowestSellStop = OrderGetDouble(ORDER_PROPERTY_PRICE_OPEN, OrderGetTicket(OrderGetInteger(ORDER_PROPERTY_NEXT)));

      if(highestBuyStop - currentPrice >= ProfitTarget * Point && lowestSellStop - currentPrice >= ProfitTarget * Point)
        {
         for(int i = 0; i < 3; i++)
           }
      OrderClose(OrderGetTicket(OrderGetInteger(ORDER_PROPERTY_NEXT)), OrderLots(), OrderClosePrice() )
    }

 
Paul Anscombe #:

fix your brackets...

and add the ;

OrderClose(OrderGetTicket(OrderGetInteger(ORDER_PROPERTY_NEXT)), OrderLots(), OrderClosePrice() );
}
 
   double currentPrice = MarketInfo(Symbol(), MODE_BID);
   double buyStopPrice = currentPrice + Spread * Point;
  1. You buy at the Ask and sell at the Bid. Pending Buy Stop orders become market orders when hit by the Ask.

    1. Your buy order's TP/SL (or Sell Stop's/Sell Limit's entry) are triggered when the Bid / OrderClosePrice reaches it. Using Ask±n, makes your SL shorter and your TP longer, by the spread. Don't you want the specified amount used in either direction?

    2. Your sell order's TP/SL (or Buy Stop's/Buy Limit's entry) will be triggered when the Ask / OrderClosePrice reaches it. To trigger close at a specific Bid price, add the average spread.
                MODE_SPREAD (Paul) - MQL4 programming forum - Page 3 #25

    3. The charts show Bid prices only. Turn on the Ask line to see how big the spread is (Tools → Options (control+O) → charts → Show ask line.)

      Most brokers with variable spreads widen considerably at end of day (5 PM ET) ± 30 minutes.
      My GBPJPY shows average spread = 26 points, average maximum spread = 134.
      My EURCHF shows average spread = 18 points, average maximum spread = 106.
      (your broker will be similar).
                Is it reasonable to have such a huge spreads (20 PIP spreads) in EURCHF? - General - MQL5 programming forum (2022)

  2. You can't move stops (or pending prices) closer to the market than the minimum: MODE_STOPLEVEL * _Point or SymbolInfoInteger(SYMBOL_TRADE_STOPS_LEVEL).
              Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial

    On some ECN type brokers, the value might be zero (the broker doesn't know). Use a minimum of two (2) PIPs.

    The checks a trading robot must pass before publication in the Market - MQL5 Articles (2016)