How to calculate tick values for Futures and CFDs in deposit currency?

 

Hi,

Recently I ran into a problem of calculating the value of a tick in deposit currency for Futures & CFDs.
Has anyone done this before? Any help would be much appreciated.

Regards,

Artur

 
ArturZ:

Hi,

Recently I ran into a problem of calculating the value of a tick in deposit currency for Futures & CFDs.
Has anyone done this before? Any help would be much appreciated.

What kind of difficulty ?
 

Well, I usually use MODE_TICKVALUE for the calculations, but I found one broker where this value is set incorrectly, so I can't use this value.

I don't have a problem calculating the tick value for forex symbols, but I have no clue how to cope with Futures & CFDs.

 
Well take the MODE_TICKSIZE and times it by relevant currency cross eg. if your trading US stocks your ticksize will be in US $ and your trading in £ so to cross is GBP/USD so you want to divide the $ ticksize by the current GBP/USD rate and you get the ticksize in GBP. Well that's the theory anyway :)
 
heelflip43:
Well take the MODE_TICKSIZE and times it by relevant currency cross eg. if your trading US stocks your ticksize will be in US $ and your trading in £ so to cross is GBP/USD so you want to divide the $ ticksize by the current GBP/USD rate and you get the ticksize in GBP. Well that's the theory anyway :)

Yes, but how can I figure out the relevant currency cross in code? I want to automate the process.

 
ArturZ:

Well, I usually use MODE_TICKVALUE for the calculations, but I found one broker where this value is set incorrectly, so I can't use this value.

Are you using it properly
//double PipValuePerLot(string pair=""){ return(DeltaValuePerLot(pair)*pips2dbl);}
double DeltaValuePerLot(string pair=""){
    /* Value in account currency of a Point of Symbol.
     * In tester I had a sale: open=1.35883 close=1.35736 (0.0147)
     * gain$=97.32/6.62 lots/147 points=$0.10/point or $1.00/pip.
     * IBFX demo/mini       EURUSD TICKVALUE=0.1 MAXLOT=50 LOTSIZE=10,000
     * IBFX demo/standard   EURUSD TICKVALUE=1.0 MAXLOT=50 LOTSIZE=100,000
     *                                  $1.00/point or $10.0/pip.
     *
     * https://forum.mql4.com/33975 CB: MODE_TICKSIZE will usually return the
     * same value as MODE_POINT (or Point for the current symbol), however, an
     * example of where to use MODE_TICKSIZE would be as part of a ratio with
     * MODE_TICKVALUE when performing money management calculations which need
     * to take account of the pair and the account currency. The reason I use
     * this ratio is that although TV and TS may constantly be returned as
     * something like 7.00 and 0.0001 respectively, I've seen this
     * (intermittently) change to 14.00 and 0.0002 respectively (just example
     * tick values to illustrate).
     * https://forum.mql4.com/43064#515262 zzuegg reports for non-currency DE30:
     * MarketInfo(analyze.pair,MODE_TICKSIZE) returns 0.5
     * MarketInfo(analyze.pair,MODE_DIGITS) return 1
     * Point = 0.1
     * Prices to open must be a multiple of ticksize */
    if (pair == "") pair = Symbol();
    return(  MarketInfo(pair, MODE_TICKVALUE)
           / MarketInfo(pair, MODE_TICKSIZE) ); // Not Point.
}
 

Please take a look at the values on the broker's platform:

When you place a 1 lot trade on EURUSD the value in MT4 is $1/point, but the broker's settings indicate a different value.

 
ArturZ:

Please take a look at the values on the broker's platform:

When you place a 1 lot trade on EURUSD the value in MT4 is $1/point, but the broker's settings indicate a different value.

What's the name of the broker ?. Are you using mini, or micro account or something like that ?
 
phi.nuts:
What's the name of the broker ?. Are you using mini, or micro account or something like that ?

Noble Service Ltd's Forex Broker Inc.

This is a standard demo account ($1/point on a 1lot trade).

My first guess was that they have the TICKVALUE setting set incorrectly on their server...

 
ArturZ:

Please take a look at the values on the broker's platform:

When you place a 1 lot trade on EURUSD the value in MT4 is $1/point, but the broker's settings indicate a different value.

Hi ArturZ,

If your broker 1 lot = 100.000 unit then tick value should be 100.000*Point which is 1, or $1/Point

If your broker 1 lot = 10.000 unit then tick value should be 10.000*Point which is 0.1, or $ 0.1/Point

See if anyone agree ...

 
onewithzachy:

Hi ArturZ,

If your broker 1 lot = 100.000 unit then tick value should be 100.000*Point which is 1, or $1/Point

If your broker 1 lot = 10.000 unit then tick value should be 10.000*Point which is 0.1, or $ 0.1/Point

See if anyone agree ...

As you can see from the screenshots this is 1 lot = 100.000 units (it is indeed $1/Point when you place a trade and look at the values displayed in MT4), but not according to calculation made using the MarketInfo function.

I'm a bit puzzled and I started thinking that maybe I'm missing some piece of vital information.

Reason: