why short work and buy not ?

 

hi guys  in my script i want open  a trade at time  it  works only for short   return me error 130  i suppose is sleepage  but i set also 100 or 1000  and continue to non open  i try also to open only a buy (because i open 2 trade buy and short in the same time )

but nothing  anyone  have idea why not? ?? 

this my code


extern string   b9="=== SETUP TRADE ===";//.
extern double   Size=0.1; // LOT. SIZE
extern int      SlippaGe=2; // SLIPPAGE TOLLERATO
extern int      Ora=19; // SETTA LE ORE
extern int      Minuto=35; // SETTA I MINUTI
extern int      Stoploss=10; // STOP LOSS IN PIPS
extern int      Takeprofit=25; // TAKEPROFIT IN PIPS
int Magik=123456;
int ctrl=0;
// Dichiarazion

void OnTick()
{
      
    // Controlla se è 14:28
    if ( TimeHour(TimeLocal()) == Ora && TimeMinute(TimeLocal()) == Minuto)
    {
      if (ctrl==0){
       // Apertura trade long 
       if (OrderSend(Symbol(),OP_BUY,Size,0,SlippaGe,Ask + (Stoploss*10) * Point,Ask - (Takeprofit*10) * Point,"1430_ROBOT",Magik,0,clrGreen)==-1){Print("ERRORE APERTURA BUY ",GetLastError());}    
       // Apertura trade short
      // if (OrderSend(Symbol(),OP_SELL,Size,0,SlippaGe,Bid + (Stoploss*10) * Point,Bid - (Takeprofit*10) * Point,"1430_ROBOT",Magik,0,clrGreen)==-1){Print("ERRORE APERTURA BUY ",GetLastError());}  
       ctrl==1;
       }
    }
    if ( TimeHour(TimeLocal()) == Ora && TimeMinute(TimeLocal()) == (Minuto+1))
    {
         ctrl=0;
    }
}
 
faustf:

hi guys  in my script i want open  a trade at time  it  works only for short   return me error 130  i suppose is sleepage  but i set also 100 or 1000  and continue to non open  i try also to open only a buy (because i open 2 trade buy and short in the same time )

but nothing  anyone  have idea why not? ?? 

this my code


Hello 

The stop loss for a buy is below the entry price and the take profit above 

 
thanks  i never  arrive  thanks  so much
 
faustf: anyone  have idea why not? ?? 
  1. Invalid market price to buy.
    Your code
     Documentation
    OrderSend(
    Symbol(),
    OP_BUY,
    Size,
    0,                             
    SlippaGe,
    Ask + (Stoploss*10) * Point,
    Ask - (Takeprofit*10) * Point,
    "1430_ROBOT",
    Magik,
    0,
    clrGreen
    )
    int  OrderSend(
       string   symbol,              // symbol
       int      cmd,                 // operation
       double   volume,              // volume
       double   price,               // price
       int      slippage,            // slippage
       double   stoploss,            // stop loss
       double   takeprofit,          // take profit
       string   comment=NULL,        // comment
       int      magic=0,             // magic number
       datetime expiration=0,        // pending order expiration
       color    arrow_color=clrNONE  // color
       );

  2. 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)

  3.   if ( TimeHour(TimeLocal()) == Ora && TimeMinute(TimeLocal()) == Minuto)

    What if there are no ticks during a specific candle period? There can be minutes between ticks during the Asian session, think M1 chart. Larger charts, think weekend, market holiday (country and broker specific), requires knowledge of when your broker stops and starts (not necessary the same as the market.)
              "Free-of-Holes" Charts - MQL4 Articles (2006)
              No candle if open = close ? - MQL4 programming forum (2010)

Reason: