Download MetaTrader 5

Meanings of MODE_TICKVALUE and MODE_PROFITCALCMODE

To add comments, please log in or register
You can test an application before buying it. Find out how to do that!
burrocampeador
75
burrocampeador 2014.06.26 15:42 

Hello:

In marketinfo(), MODE_TICKVALUE is defined as "Tick value in the deposit currency". This is correct for Forex. But I can see this is not correct for CFDs (indexes, for example). In indexes, it should say: "Tick value in the index currency". I suspect this is related with MODE_PROFITCALCMODE. For example:

- Broker: FXCM

- Market: US30 (Dow Jones index)

- Deposit currency: EUR

- MarketInfo(Symbol(),MODE_TICKVALUE)) is 0.1. Therefore, each pip should vary my equity in 0.1 euros.

- MarketInfo(Symbol(),MODE_PROFITCALCMODE) is 2

- Real tick value in de deposit currency for each tick: 0.074 euros (I can see that when I put a "buy" order in a demo account). Therefore, the price vary 0.074 euros insted of 0.1 euros. Note that 0.074 euros is 0.1 dollar with current exchange.

Could anybody explain this, and what is the exact meaning of the possible values of MODE_PROFITCALCMODE?

In general, I miss much more documentation about the meaning of all marketinfo() values. Does anybody know any web where it is explained deeper?

Thank you very much for your time.

burrocampeador
75
burrocampeador 2014.06.27 12:28  
Any idea?
qjol
3243
qjol 2014.06.27 12:37  

burrocampeador:

Does anybody know any web where it is explained deeper?


Symbol Properties
burrocampeador
75
burrocampeador 2014.07.04 12:39  

Sorry, but... did you read carefully my initial message? Of course that place was the first i checked. The problem is that, in that place, the exact meaning of MODE_TICKVALUE and MODE_PROFITCALCMODE is not properly explained.

Anyway, thank you very much for your time.


ballenoz
80
ballenoz 2014.07.05 02:03  

I have often been frustrated by the meaninglessness of values returned with MODE_TICKVALUE, and some other MarketInfo variables.  To illustrate the point, I attach the results from a test-program we have.  Items in square-brackets are from MODE_TICKVALUE, and those in round-brackets show an internally calculated pip-value.  In most cases, the calculated pip-values correspond with those derived from on-line calculators e.g. http://www.babypips.com/tools/forex-calculators/pipvalue.php  In addition, the actual values returned for MODE_TICKVALUE vary widely for different Brokers.

Bottom-line -- DON'T RELY ON MODE_TICKVALUE.

Files:
Alain Verleyen
Moderator
30737
Alain Verleyen 2014.07.05 11:59  
ballenoz:

I have often been frustrated by the meaninglessness of values returned with MODE_TICKVALUE, and some other MarketInfo variables.  To illustrate the point, I attach the results from a test-program we have.  Items in square-brackets are from MODE_TICKVALUE, and those in round-brackets show an internally calculated pip-value.  In most cases, the calculated pip-values correspond with those derived from on-line calculators e.g. http://www.babypips.com/tools/forex-calculators/pipvalue.php  In addition, the actual values returned for MODE_TICKVALUE vary widely for different Brokers.

Bottom-line -- DON'T RELY ON MODE_TICKVALUE.

I would say rather : don't rely on YOUR results.

Your account is in Australian Dollar. So TICK_VALUE is the value of 1 tick in Australian Dollar.

What is the meaning of this line (just an example) ?

AUD Normalization factor for USDJPY = 0.95798 ( PricePerPip: 1.04386 )  [ 1.04659 ]  Depends on AUDJPY at 95.798

and

USD Normalization factor for AUDUSD = 1.00000 ( PricePerPip: 1.00000 )  [ 1.06806 ]

Your account is AUD, so tickvalue is AUD.

I made my own check and I don't get any discrepancy, calculation is made by :

      tickvalue_calculated = 1/price * LOTSIZE * TICKSIZE; (or 1*price depending of profit currency and conversion symbol, if any).

On a USD account :

2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: EURUSD: convert symbol=NO CONVERSION dir=-1 MarketInfo=1.000000 SymbolInfoDouble=1.000000 calc=1.000000
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: USDCAD: convert symbol=USDCAD dir=-1 MarketInfo=0.938377 SymbolInfoDouble=0.938377 calc=0.938377
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: AUDCAD: convert symbol=USDCAD dir=-1 MarketInfo=0.938377 SymbolInfoDouble=0.938377 calc=0.938377
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: AUDUSD: convert symbol=NO CONVERSION dir=-1 MarketInfo=1.000000 SymbolInfoDouble=1.000000 calc=1.000000
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: USDCHF: convert symbol=USDCHF dir=-1 MarketInfo=1.118018 SymbolInfoDouble=1.118018 calc=1.118018
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: GBPUSD: convert symbol=NO CONVERSION dir=-1 MarketInfo=1.000000 SymbolInfoDouble=1.000000 calc=1.000000
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: USDJPY: convert symbol=USDJPY dir=-1 MarketInfo=0.979816 SymbolInfoDouble=0.979816 calc=0.979816
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: NZDUSD: convert symbol=NO CONVERSION dir=-1 MarketInfo=1.000000 SymbolInfoDouble=1.000000 calc=1.000000
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: AUDNZD: convert symbol=NZDUSD dir=1 MarketInfo=0.874150 SymbolInfoDouble=0.874150 calc=0.874150
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: AUDCHF: convert symbol=USDCHF dir=-1 MarketInfo=1.118018 SymbolInfoDouble=1.118018 calc=1.118018
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: AUDJPY: convert symbol=USDJPY dir=-1 MarketInfo=0.979816 SymbolInfoDouble=0.979816 calc=0.979816
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: CADCHF: convert symbol=USDCHF dir=-1 MarketInfo=1.118018 SymbolInfoDouble=1.118018 calc=1.118018
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: CADJPY: convert symbol=USDJPY dir=-1 MarketInfo=0.979816 SymbolInfoDouble=0.979816 calc=0.979816
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: CHFJPY: convert symbol=USDJPY dir=-1 MarketInfo=0.979816 SymbolInfoDouble=0.979816 calc=0.979816
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: EURGBP: convert symbol=GBPUSD dir=1 MarketInfo=1.715570 SymbolInfoDouble=1.715570 calc=1.715570
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: EURAUD: convert symbol=AUDUSD dir=1 MarketInfo=0.936280 SymbolInfoDouble=0.936280 calc=0.936280
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: EURCHF: convert symbol=USDCHF dir=-1 MarketInfo=1.118018 SymbolInfoDouble=1.118018 calc=1.118018
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: EURJPY: convert symbol=USDJPY dir=-1 MarketInfo=0.979816 SymbolInfoDouble=0.979816 calc=0.979816
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: EURNZD: convert symbol=NZDUSD dir=1 MarketInfo=0.874150 SymbolInfoDouble=0.874150 calc=0.874150
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: EURCAD: convert symbol=USDCAD dir=-1 MarketInfo=0.938377 SymbolInfoDouble=0.938377 calc=0.938377
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: GBPJPY: convert symbol=USDJPY dir=-1 MarketInfo=0.979816 SymbolInfoDouble=0.979816 calc=0.979816
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: GBPCHF: convert symbol=USDCHF dir=-1 MarketInfo=1.118018 SymbolInfoDouble=1.118018 calc=1.118018
2014.07.05 13:51:06.141    CheckTickValue EURUSD,H1: NZDJPY: convert symbol=USDJPY dir=-1 MarketInfo=0.979816 SymbolInfoDouble=0.979816 calc=0.979816

On a AUD account :

2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: AUDCAD: convert symbol=AUDCAD dir=-1 MarketInfo=1.002727 SymbolInfoDouble=1.002727 calc=1.002727
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: AUDCHF: convert symbol=AUDCHF dir=-1 MarketInfo=1.194786 SymbolInfoDouble=1.194786 calc=1.194786
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: AUDJPY: convert symbol=AUDJPY dir=-1 MarketInfo=1.046594 SymbolInfoDouble=1.046594 calc=1.046594
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: AUDNZD: convert symbol=AUDNZD dir=-1 MarketInfo=0.934597 SymbolInfoDouble=0.934597 calc=0.934597
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: AUDUSD: convert symbol=AUDUSD dir=-1 MarketInfo=1.068057 SymbolInfoDouble=1.068057 calc=1.068057
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: CADJPY: convert symbol=AUDJPY dir=-1 MarketInfo=1.046594 SymbolInfoDouble=1.046594 calc=1.046594
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: CHFJPY: convert symbol=AUDJPY dir=-1 MarketInfo=1.046594 SymbolInfoDouble=1.046594 calc=1.046594
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: EURUSD: convert symbol=AUDUSD dir=-1 MarketInfo=1.068057 SymbolInfoDouble=1.068057 calc=1.068057
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: EURAUD: convert symbol=NO CONVERSION dir=-1 MarketInfo=1.000000 SymbolInfoDouble=1.000000 calc=1.000000
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: EURCAD: convert symbol=AUDCAD dir=-1 MarketInfo=1.002727 SymbolInfoDouble=1.002727 calc=1.002727
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: EURCHF: convert symbol=AUDCHF dir=-1 MarketInfo=1.194786 SymbolInfoDouble=1.194786 calc=1.194786
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: EURJPY: convert symbol=AUDJPY dir=-1 MarketInfo=1.046594 SymbolInfoDouble=1.046594 calc=1.046594
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: EURNZD: convert symbol=AUDNZD dir=-1 MarketInfo=0.934597 SymbolInfoDouble=0.934597 calc=0.934597
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: GBPAUD: convert symbol=NO CONVERSION dir=-1 MarketInfo=1.000000 SymbolInfoDouble=1.000000 calc=1.000000
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: GBPUSD: convert symbol=AUDUSD dir=-1 MarketInfo=1.068057 SymbolInfoDouble=1.068057 calc=1.068057
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: GBPCAD: convert symbol=AUDCAD dir=-1 MarketInfo=1.002727 SymbolInfoDouble=1.002727 calc=1.002727
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: GBPCHF: convert symbol=AUDCHF dir=-1 MarketInfo=1.194786 SymbolInfoDouble=1.194786 calc=1.194786
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: GBPJPY: convert symbol=AUDJPY dir=-1 MarketInfo=1.046594 SymbolInfoDouble=1.046594 calc=1.046594
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: GBPNZD: convert symbol=AUDNZD dir=-1 MarketInfo=0.934597 SymbolInfoDouble=0.934597 calc=0.934597
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: NZDJPY: convert symbol=AUDJPY dir=-1 MarketInfo=1.046594 SymbolInfoDouble=1.046594 calc=1.046594
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: NZDUSD: convert symbol=AUDUSD dir=-1 MarketInfo=1.068057 SymbolInfoDouble=1.068057 calc=1.068057
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: USDCAD: convert symbol=AUDCAD dir=-1 MarketInfo=1.002727 SymbolInfoDouble=1.002727 calc=1.002727
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: USDJPY: convert symbol=AUDJPY dir=-1 MarketInfo=1.046594 SymbolInfoDouble=1.046594 calc=1.046594
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: USDCHF: convert symbol=AUDCHF dir=-1 MarketInfo=1.194786 SymbolInfoDouble=1.194786 calc=1.194786
2014.07.05 13:51:54.846    CheckTickValue USDCHF,H4: EURGBP: convert symbol=GBPAUD dir=1 MarketInfo=1.832090 SymbolInfoDouble=1.832090 calc=1.832090

ballenoz
80
ballenoz 2014.07.05 13:07  

I would say, and I DID say -- "DON'T RELY ON TICKVALUE"

The test program is generalized for differing environments.  Results for the particular run attached do reflect AUD values.  However, using it over quite a few different Brokers and Account-Currencies, the conclusion is as I have suggested.

Alain Verleyen
Moderator
30737
Alain Verleyen 2014.07.05 13:54  
ballenoz:

I would say, and I DID say -- "DON'T RELY ON TICKVALUE"

The test program is generalized for differing environments.  Results for the particular run attached do reflect AUD values.  However, using it over quite a few different Brokers and Account-Currencies, the conclusion is as I have suggested.

My test program shows otherwise. By the way, anyone can have his own opinion.
ballenoz
80
ballenoz 2014.07.05 23:49  
angevoyageur -- Thank you for taking the time to investigate and reply.  Let's take this beyond 'opinions' and entrenched positions and try to figure out what's going on here with MODE_TICKVALUE.  Clearly we should not be able to come to opposing conclusions if we start with the same information.  Admittedly the evidence I provided to support my case was somewhat cryptic.  Let me try again.  Attached are the trimmed down results from two Brokers, Alpari and ICMarkets, both with USD accounts.  Most results are within statistical range of each other, and agree with calculated values.  However, note the pairs NZDCAD and NZDCHF -- exotic pairs, but none-the-less valid.  If the pair required for calculation is not found in MarketWatch, an error is reported in the test-rig log [ ...SymbolName(ix, true) ].  And for the first broker where TICKVALUE is zero, these pairs are NOT in MarketWatch.  But the thing is, the pip-values only depend on USDCAD and USDCHF which ARE in MarketWatch.  So can you see why I might have expected the TICKVALUE to be the same as my calculated value?  There are other issues I have had in the past related [ possibly ] to loading delays with auxiliary/conversion pairs in tester, but I won't go down that road at this time.
Files:
Alain Verleyen
Moderator
30737
Alain Verleyen 2014.07.06 11:28  
ballenoz:
angevoyageur -- Thank you for taking the time to investigate and reply.  Let's take this beyond 'opinions' and entrenched positions and try to figure out what's going on here with MODE_TICKVALUE.  Clearly we should not be able to come to opposing conclusions if we start with the same information.  Admittedly the evidence I provided to support my case was somewhat cryptic.  Let me try again.  Attached are the trimmed down results from two Brokers, Alpari and ICMarkets, both with USD accounts.  Most results are within statistical range of each other, and agree with calculated values.  However, note the pairs NZDCAD and NZDCHF -- exotic pairs, but none-the-less valid.  If the pair required for calculation is not found in MarketWatch, an error is reported in the test-rig log [ ...SymbolName(ix, true) ].  And for the first broker where TICKVALUE is zero, these pairs are NOT in MarketWatch.  But the thing is, the pip-values only depend on USDCAD and USDCHF which ARE in MarketWatch.  So can you see why I might have expected the TICKVALUE to be the same as my calculated value?  There are other issues I have had in the past related [ possibly ] to loading delays with auxiliary/conversion pairs in tester, but I won't go down that road at this time.

I suppose your broker A is Alpari. I will use Alpari-ECN-Demo (let me know the server you are using). My tests are done with MT4 build 670.

Returns various data about securities listed in the "Market Watch" window.

Here is the result I got for NZDCAD :

2014.07.06 13:06:05.060    CheckTickValue EURUSD,H1: NZDCAD: convert symbol=USDCAD dir=-1 MarketInfo=0.938703 SymbolInfoDouble=0.938703 calc=0.938703

Calculated value is 1/(USDCAD quote)=1/1.06530. (Your quote for USDCAD is 1.00402, so I suppose you data are rather old).

  • Now, see this line from your result, where you have a discrepancy  :
USD Normalization factor for CADCHF = 0.92728 ( PricePerPip: 1.07842 )  [ 1.11894 ]  Depends on USDCHF at 0.92728

Your calculation (1.07842=1/0.92728) seems correct. But I didn't get similar result :
2014.07.06 13:15:40.910 CheckTickValue EURUSD,H1: CADCHF: convert symbol=USDCHF dir=-1 MarketInfo=1.118881 SymbolInfoDouble=1.118881 calc=1.118881

with USDCHF quote=0.89375. However the tickvalue I got is very close to yours, so I wonder if your USDCHF quote is right.

Though, Market was closed when I run these tests so I will check when Market will be open, as quotes will then change rapidly. I will let you informed.

whroeder1
14514
whroeder1 2014.07.06 12:14  
ballenoz: I would say, and I DID say -- "DON'T RELY ON TICKVALUE"
Because you must use it as a ratio?  See my DeltaValuePerLot()
12
To add comments, please log in or register