Simple long-used calc for $ per pip (pip value) fails on only one symbol at new broker but has always worked on all symbols at several other brokers

 

Hello,

Thank you in advance for ANY help I can get on this -- I'm not a newbie and this has me perplexed.

I have a simple calculation I've always used to calculate dollars per pip (account funded in USD) and it has always worked on all forex and metal symbols at multiple other brokers.

Now at a new broker it is failing on XAUUSD while it still works on all Forex pairs.

The real problem is that the calculated pip value in $ per pip gives the appearance of a new pip value 1/100th smaller than at the prior broker, however, the ACTUAL value per pip when opening one standard lot is the same as it always has been.

Put another way, on XAUUSD my long-used calculation claims a pip value of $0.10/pip but when opening a trade with one lot the actual profit/loss on the open position is still the same $10/pip.

void OnStart()
  {
//---
   double pointValue, pipValue, profitTarget, tickValue, tickSize;
   double tradeLots=1;
   double profitTargetPips=10;
   
   tickValue=SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
   tickSize=SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE);
   double pointSize;  	// not used, just captured and printed for comparison
   pointSize=SymbolInfoDouble(_Symbol,SYMBOL_POINT);
   
   pointValue = (tickValue*_Point)/tickSize;
   pipValue=pointValue*10;
   profitTarget=pipValue*tradeLots*profitTargetPips;

   Print(_Symbol,"======");
   Print("  pointValue: ",pointValue,"; pipValue: ",pipValue);
   Print("  tickValue: ",tickValue,"; tickSize: ",tickSize,"  pointSize: ",pointSize);
   Print("  tradeLots: ",tradeLots,"; profitTargetPips: ",profitTargetPips," = profitTarget: $",profitTarget);
  }
//+------------------------------------------------------------------+

//2023.09.02 13:40:25.272       test_PointValue (NZDUSDx,H1)    NZDUSDx======
//2023.09.02 13:40:25.272       test_PointValue (NZDUSDx,H1)      pointValue: 1.0; pipValue: 10.0
//2023.09.02 13:40:25.272       test_PointValue (NZDUSDx,H1)      tickValue: 1.0; tickSize: 0.00001  pointSize: 0.00001
//2023.09.02 13:40:25.272       test_PointValue (NZDUSDx,H1)      tradeLots: 1.0; profitTargetPips: 10.0 = profitTarget: $100.0
//2023.09.02 13:40:36.497       test_PointValue (XAUUSDx,H1)    XAUUSDx======
//2023.09.02 13:40:36.497       test_PointValue (XAUUSDx,H1)      pointValue: 0.01; pipValue: 0.1
//2023.09.02 13:40:36.497       test_PointValue (XAUUSDx,H1)      tickValue: 0.01; tickSize: 0.01  pointSize: 0.01
//2023.09.02 13:40:36.497       test_PointValue (XAUUSDx,H1)      tradeLots: 1.0; profitTargetPips: 10.0 = profitTarget: $1.0

To confirm, despite this calculation of XAUUSD, the ACTUAL dollars per pip on open trades is STILL $10/pip.  So the calculation says XAUUSD 1 lot at 10 pips is a $1 profit, but in actuality in a real trade, it is $100 just like NZDUSD.

Any suggestions on what I should do to confidently get the actual dollars per pip for a 1 lot open position?  Is there possibly a mistake at the broker with their specification on the symbol?

Thank you!


Reason: