Problem demo account and XAUUSD orders

 

Hi everyone, I'm quite new to MetaTrader, and I'm really enjoying it and learning a lot, but there are some things I don't quite understand, and I hope you can help me.

For now, I'm using a demo account with IC Markets. I've created an EA that seems to work quite well with XAUUSD during backtesting. The EA places either a Sell Stop or Buy Stop order depending on certain conditions. The problem is that when the price reaches the value of my order, it gets canceled, and I don't understand what's happening. This only occurs with this pair; I don't have any issues with Forex.

Here are some logs from today:

2024.08.30 09:00:00.301    Trades    '51878816': sell stop 1 XAUUSD at 2512.20 sl: 2514.20 tp: 2506.20

2024.08.30 09:00:01.205    Trades    '51878816': accepted sell stop 1 XAUUSD at 2512.20 sl: 2514.20 tp: 2506.20

2024.08.30 15:00:00.132    Trades    '51878816': sell stop 1 XAUUSD at 2512.20 sl: 2514.20 tp: 2506.20
2024.08.30 15:00:00.242    Trades    '51878816': accepted sell stop 1 XAUUSD at 2512.20 sl: 2514.20 tp: 2506.20

2024.08.30 15:00:00.501    Trades    '51878816': order #748717435 sell stop 1 / 1 XAUUSD at 2512.20 done in 370.172 ms

 

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. Prices (open, SL, and TP) must be a multiple of ticksize. Using Point means code breaks on 4 digit brokers (if any still exists), exotics (e.g. USDZAR where spread is over 500 points), and metals. Compute what a logical PIP is and use that, not points.
              How to manage JPY pairs with parameters? - MQL4 programming forum (2017)
              Slippage defined in index points - Expert Advisors and Automated Trading - MQL5 programming forum (2018)

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

 
William Roeder #:

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. Prices (open, SL, and TP) must be a multiple of ticksize. Using Point means code breaks on 4 digit brokers (if any still exists), exotics (e.g. USDZAR where spread is over 500 points), and metals. Compute what a logical PIP is and use that, not points.
              How to manage JPY pairs with parameters? - MQL4 programming forum (2017)
              Slippage defined in index points - Expert Advisors and Automated Trading - MQL5 programming forum (2018)

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

I tried putting SL and TP bigger and the same thing happened tonight, rejected. The spread at that time was 5 and my SL and TP was 600, I really don't understand what is going on.

As far as I understood you, the problem is not with the SL and TP but with the Ask and Bid price and the price of my order.