Risk - Not factoring in Denominated Account? - page 2

 

I'm testing Gold USD and Gold Euro as this broker offers both.

 I added the line as suggested by angevoyageur to my script

 

  Print("TS="+DoubleToStr(MarketInfo(Symbol(),MODE_TICKSIZE),Digits)+
        "  TV="+DoubleToStr(MarketInfo(Symbol(),MODE_TICKVALUE),2));
  Print("SymbolInfo TS="+DoubleToStr(SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_SIZE),Digits)+
        "  TV="+DoubleToStr(SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE),2));

 and this is the result for 2. Note that TS and TV is exactly the same for both of them.

0       09:22:30.203    Script a GOLD,H1: loaded successfully
0       09:22:30.218    a GOLD,H1: initialized
0       09:22:30.218    a GOLD,H1: TS=0.01  TV=1.00
0       09:22:30.218    a GOLD,H1: SymbolInfo TS=0.01  TV=1.00
0       09:22:30.218    a GOLD,H1: uninit reason 0
0       09:22:30.218    Script a GOLD,H1: removed
0       09:22:43.421    Script a GOLDEURO,H1: loaded successfully
0       09:22:43.421    a GOLDEURO,H1: initialized
0       09:22:43.421    a GOLDEURO,H1: TS=0.01  TV=1.00
0       09:22:43.421    a GOLDEURO,H1: SymbolInfo TS=0.01  TV=1.00
0       09:22:43.421    a GOLDEURO,H1: uninit reason 0
0       09:22:43.421    Script a GOLDEURO,H1: removed

 This means that a 1 lot Order placed on each with a TP of 10 Points should both return a profit of $10 as my account currency is $

I have placed these orders on my demo account (obviously) and will see what the outcome is if they manage to hit 10 points in profit 

 
GumRai:

It seems, that with this broker the FTSE tick value is also wrong and that would mean that calculated lot sizes would result in losses of 60% more if the stop loss is hit.

... 60% obviously makes it overwhelmingly likely that the FTSE tick-value is, in effect, being incorrectly reported in USD while the actual movement is in GBP (i.e. the true tick-value is larger by the GBP/USD rate of about 1.6, therefore 60%).

In your gold example, assuming that GOLD and GOLDEURO must be XAU/USD and XAU/EUR, there's no way that both of them should have a tick-value of 1.00. One - or both - must be wrong. This should already be apparent from the floating P/L on the open trades, before they hit their s/l or t/p.

This is exactly what I was referring to as commonplace in the past with non-fx symbols in MT4, but which I haven't personally seen recently.

 
jjc:

One - or both - must be wrong.

(They're probably both wrong. I'd guess in this instance that the tick-value on these symbols is always reported as 1.00 regardless of the deposit currency. If your deposit is in e.g. JPY, then both will be wrong. If your deposit is in USD, then GOLD will be "correct" - in effect, by chance - and GOLDEURO will be wrong. If your deposit is in EUR then GOLDEURO will be "correct" and GOLD will be wrong.)
 

Well, the 2 gold trades failed to hit the 10 points profit, in fact they wiped out my account :)

I would never do anything so stupid on a real account.

gold 

As you can see, the gold trade, which is in USD opened at 1198.91 and closed at 1172.53, so a loss of 2638 points.

So the Tick value of 1.00 is spot on.

The gold euro however, opened at 951.86 and closed at 931.29, a loss of 2057 points

If the Tick value of 1.00 had been correct, this would have lost $2057

but it shows a loss of $2638

This means without any doubt that the Tick value is in Euros, not the deposit currency 

2057 points at Tick value of 1 = 2057 EUROs 

EURUSD is approx 1.2570

Convert the Euros to $ 

2057*1.2570=2585.65

 

I consider this to be a serious error and it means with some brokers, lot size calculations are going to be wrong for many non forex instruments even though the code is correct. 

 

GumRai,

My calculation about your EuroGold looks different:

1) you lost 2057 points or 2057 Euro with eurogold.

2) in you account - USD I guess - you see 2583,84 and that would give a exchange rate of exactly: 1.2561205639280505590666018473505

2) The quotes of the daily bar is (my broker)

EURUSD,Daily
Date    2014.10.31
Open    1.26052
High    1.26139
Low    1.25408
Close    1.25670
Volume    72860

So the 1.2561205639280505590666018473505 lies right within the expected rates.

Beside that you have to be aware of  the fact that - I guess - the moment you have bought the eurogold the euro are converted to USD and again when you closed (sell) the eurogold. It means there might be a spread you have to pay too.

If you show the the TickValue for eurogold on the screen by Comment(..) you'll see that it is changing all the time. And I guess you have got one exchange-rate when you bought and another when you sold the eurgold - beside the spread!!

Can youn post the 1min-bar of EURUSD of the time you bought and sold eurgold?

 

You are missing the point gooly.

Tickvalue is supposed to return a value in the deposit currency, in this case USD. But it is returning the value in the quote currency (Euros)

Yes, I would expect the TV to fluctuate, but it doesn't in this case.

It worked for the basic gold trade because the quote currency is the same as the deposit currency 

 
GumRai:

I consider this to be a serious error [...] 

Good luck persuading the broker that it's a serious error. I once had a four-way conference call from the departure lounge of an airport, with a broker, their bridge provider, and their LP, trying to explain why incorrect tick-values were a bad idea. It's very hard to persuade them that there's a problem when the trade profits shown by MT4 itself are correct.
 
GumRai:

You are missing the point gooly.

Tickvalue is supposed to return a value in the deposit currency, in this case USD. But it is returning the value in the quote currency (Euros)

Yes, I would expect the TV to fluctuate, but it doesn't in this case.

It worked for the basic gold trade because the quote currency is the same as the deposit currency 

I think this just not the fact - at least with my broker:

1) I have an EUR account and so an EUR-denominated symbol like DAX30 must have a constant Ttickvalue - it has

2) an USD-demoniated symbol must have a floating value acc. to the exchange rate and it does at least with my broker

just attach my dummy-indicator - it has just this Comment(..):

        Comment(
                "AccountCurrency: ",AccountCurrency(), "   I have to use Dax I don't have eurogold",
                "\nXAUUSD Bid: ",DoubleToStr(MarketInfo("XAUUSD",MODE_BID),5),"  TickValue: ",1.0/MarketInfo("XAUUSD",MODE_TICKVALUE),
                "    constant for an USD account: ",(1.0/MarketInfo("XAUUSD",MODE_TICKVALUE))/MarketInfo("EURUSD",MODE_BID),
                "\nDax Bid: ",DoubleToStr(MarketInfo(".DE30Cash",MODE_BID),5),"  TickValue: ",1.0/MarketInfo(".DE30Cash",MODE_TICKVALUE),
                "\nEURUSD Bid: ",DoubleToStr(MarketInfo("EURUSD",MODE_BID),5),"  TickValue: ",1.0/MarketInfo("EURUSD",MODE_TICKVALUE),
                "\nXAUUSD in EUR Bid: ",DoubleToStr(MarketInfo("XAUUSD",MODE_BID)/MarketInfo("EURUSD",MODE_BID),5)
        );      

may be have to switch the symbols!


Files:
dummy.mq4  3 kb
 
gooly:

[...] at least with my broker:

Yes, exactly. It applies to some brokers but not others. That's the whole point. It is not a fundamental MT4 problem; it is a broker implementation problem, not assisted by the design of MT4.
 
jjc:
Yes, exactly. It applies to some brokers but not others. That's the whole point. It is not a fundamental MT4 problem; it is a broker implementation problem, not assisted by the design of MT4.

I doubt that the brokers will be incorrect with things like that as you might be able to sue them.

This could be interpreted as a try to settle the positions systematically to the detriment of their clients as they are trading on a false base.



Reason: