XAUUSD wrong lot sizing on GBP denominated account? - page 4

 
FXCM's live chat staff are ABSOLUTE BLOODY MORONS!

I'm asking them why the TICK_VALUE on XAUUSD and XAGUSD is returning as a 0.01, they're answer is:

"Because we round it down to $0.01 - Thats the smallest tick value..." - Ok... well whats the smallest lot size = 1.00 which equates to $0.10 ... so run that past me one more time? What's the smallest tick value? "$0.01" man they're so dumb!!
 
Sorry to write loads here - But would this make sense? Anyone able to throw me a line here how I would work with FXCM for the time being?

//get our sellstop price from below the ma and our takeprofit based on our r:r ratio.
      
      double pips_to_ssl = SellStopPrice - sellPrice;

      double sell_tp_price = sellPrice - (pips_to_ssl*RewardRatio);

      double sell_takeprofit_price = NormalizeDouble(sell_tp_price, Digits);
      
      double loss_for_1_lot1 = pips_to_ssl / ( 0.10 / MarketInfo( Symbol(), MODE_BID ) * ts ); //<<< ?????????
         
      double LotSize_Sell = MathFloor( risk_amount / loss_for_1_lot1/ Lot_Step) * Lot_Step ;
(pips_to_ssl could be 45.32 pips for example - 0.10 is $0.10 per tick 0.01 per 1.00 lot on fxcm)
 
DomGilberto:

If that is correct then how does this make sense :

Current open XAUUSD position: 137.60 points up - open P & L £17.22 ... I'm no wizard with numbers but I have 2 troy ounces open which is supposed to be £0.02 pence per 0.01 tick...

137.60 * £0.02 = £2.750

1376.0 * £0.02 = £27.52

13760 * £0.02 = £275.2

None are correct...

That's according to what this FXCM specialist is telling me lol!?


How can you be 137.60 points up? There is no decimal point when talking about points.

Do you mean that the difference between the order open price and current price is 137.60? If that is the case, it would mean that you must have opened the trade at the end of August. Is that true?

If not, please show the order open price, current price and current profit.

You have been asked numerous times to show the code for the print statement. Unless I have missed it, you still have not shown it.

 
What code are you on about? The XAUUSD position is (and yes you're right, I dont mean points - just mix up of terms - I'm merely looking at the way pull the number through):

XAUUSD open position: Open Price: 1297.22 -- Size: 2.00 -- Current Price: 1283.24 -- Term Currency: $27.96 -- Deposit Currency: £17.49.

The prints are also in below - I have put them in to make it easier to see?

   //Lot calculation - Facilitates Notional and Lots within MT4 - As well as find the tick value relative to the account denomination.   
   double risk_amount = AccountBalance( )*RiskPercent/100;
   double Lot_Step = MarketInfo(Symbol(), MODE_LOTSTEP);
   double ts = MarketInfo(Symbol(), MODE_TICKSIZE);
   double tv = MarketInfo(Symbol(), MODE_TICKVALUE);
   double minlot = MarketInfo(Symbol(), MODE_MINLOT);
         
          
//+-------------------------------------------------------------------------------------+
//| Order Buy Function                                                                  |
//+-------------------------------------------------------------------------------------+   

//Place a pending buystop if no orders exists. Pending or otherwise.
if(direction==0)
{ 
      
      //Get Highest Price in our lookback range and set buy price above it.
      int iTBT = iBarShift(NULL,60, triggerBarTime, true),
      iHH = iHighest(NULL,60, MODE_HIGH, iTBT + CandlesBeforeBiasObtained, 0);
      double Buy_Here = High[iHH] + Buy_Pad;
      double buyPrice= NormalizeDouble(Buy_Here,Digits);
         Print(" buyPrice: ", buyPrice );
            
              2013.11.11 22:36:4 2009.07.27 17:00  V1 - XAUUSD XAUUSD,H1:  buyPrice: 959.79


      double BuyStopPriceMath = MA - ATR;
         Print(" MA - ATR: ", MA, " - ", ATR, " = ", BuyStopPriceMath);
     
              2013.11.11 22:36:4 2009.07.27 17:00  V1 - XAUUSD XAUUSD,H1:  MA - ATR: 952.0315 - 2.7714 = 949.2601
 

      double BuyStopPrice = NormalizeDouble(BuyStopPriceMath,Digits);
         Print(" BuyStopPrice: ", BuyStopPrice);
              
              2013.11.11 22:36:4 2009.07.27 16:00  V1 - XAUUSD XAUUSD,H1:  BuyStopPrice: 949.3

      //get our buystop price from below the ma and our takeprofit based on our r:r ratio.
      
      double pips_to_bsl=buyPrice-BuyStopPrice;
         Print(" pips_to_bsl formula: ", buyPrice, " - ", BuyStopPrice, " = ", pips_to_bsl);  
              
              2013.11.11 22:36:4 2009.07.27 16:00  V1 - XAUUSD XAUUSD,H1:  pips_to_bsl formula: 959.75 - 949.3 = 10.45
      
      double loss_for_1_lot = pips_to_bsl / ts * tv ;
         Print(" loss_for_1_lot formula: ", pips_to_bsl, " / ", ts, " * ", tv ," = ", loss_for_1_lot );

              2013.11.11 22:36:4 2009.07.27 16:00  V1 - XAUUSD XAUUSD,H1:  loss_for_1_lot formula: 10.45 / 0.01 * 0.01 = 10.45

      double LotSize_Buy = MathFloor( risk_amount / loss_for_1_lot/ Lot_Step) * Lot_Step ;
         Print(" LotSize_Buy: ( ", risk_amount, " / ", loss_for_1_lot, " / ", Lot_Step, " ) * ", Lot_Step); 

              2013.11.11 22:47:4 2009.07.27 16:00  V1 - XAUUSD XAUUSD,H1:  LotSize_Buy: ( 78.1668 / 10.45 / 1 ) * 1


...
 

Did you calculate this yourself, or does it come from the broker?

"Term Currency: $27.96 "

 
It comes from the broker within MT4 - when you right click on the open order and select it...
 

I have an open order now on XAGUSD with FXCM - Minimum size is 50.00 lots. Again, tick value is apparently 0.01 (fact).

XAGUSD:

Entry is 21.245 - SL is 21.812 - Size is 100.00 - Account balance in GBP is £3,840.51 - Risk applied to this trade is 1.5% of the AccountBalance(). (+£53 give or take in open P & L).

50.00 Lots on XAGUSD is $0.01 per 1 lot, so $0.50 per tick size - 0.01. (TICK_SIZE is telling me that it is "0.001" even though I have checked that 50 lots is $0.50 per 0.01 with staff at FXCM and tested it?)

$0.50 / GBPUSD is tick value...

-- Therefore, based upon my formula, I am shy 50 lots on the 100 lot size allocated to this trade because FXCM server settings are screwed. (in terms of Tick Value 0.001 || Tick Size: 0.001)...

Workings out like this:

Risk (£): £57.60 (1.5% of £3,840.51)

(SL)21.812 - (Entry)21.245 = 56.7

50.00 lots = $0.50 / 1.59841 = £0.31 ( per 50.00 lots)

150.00 = £0.93 per tick * 56.7 = £52.73 risk on this trade...

 
Can anyone help suggest a work around when tick value and tick size are telling me its 0.001 and 0.001?
 
DomGilberto:
Can anyone help suggest a work around when tick value and tick size are telling me its 0.001 and 0.001?
Not ideal, but can't you calculate the correct ish Tick Value by using the rates of XAUUSD, GBPUSD and the GBPUSD TickValue? So your code checks to see if the Tick Value returned by MarketInfo() is likely to be invalid and if it is then it calculates it instead, then for a Broker that is competent it doesn't need to calculate the TickValue.

I've seen something similar done for calculating TickValues to use in the Strategy Tester . . . ideally you will code a function that looks at the pairs of the symbol and your base currency and then executes the relevant calculation . . .

. . . this is what I was thinking of when I said I had seen something similar: https://www.mql5.com/en/forum/127798/page2#356736
 
Thank you :) - I'll check it out now!

Also, in your opinion, is FXCM in the wrong with how I am seeing the Tick Value? They're adamant that it's perfectly normal? You wouldn't know why it is they're screwing it up would you?
Reason: