There is point size (number of decimal digits) and there is point value. They are two different things. There is also tick size and tick value.
In many case point size and tick size are the same but not always. It is best to use tick size and tick value in your calculations, instead of point size and its value.
double dbTickSize = SymbolInfoDouble( _Symbol, SYMBOL_TRADE_TICK_SIZE ), // Tick size dbTickValue = SymbolInfoDouble( _Symbol, SYMBOL_TRADE_TICK_VALUE ), // Tick value dbPointSize = SymbolInfoDouble( _Symbol, SYMBOL_POINT ), // Point size dbPointValue = dbTickValue * dbPointSize / dbTickSize; // Point value
Remember, it's best to use tick size and tick value in your calculations, instead of point size and its value.
Remember, it's best to use tick size and tick value in your calculations, instead of point size and its value.
I think I need to change my code as I want one function to calculate position size for ALL instruments whether that be forex, equities, futures, indexes etc. At present I’m calculating the stop loss in terms of points so maybe I will have to do this in terms of ticks. I calculate the point size using the number of digits. I will change the code to use tick size and value. I think I’ve just been lucky up until now (although I’m still in demo) as the point size has been the same as tick size. Is this the way forward so that the calculation will be correct for any instrument
Fernando, Thanks for the heads up. Looking at the documentation the enum SYMBOL_POINT says it is symbol point value whereas you say it is point size?
cheers,
Ed
Yes, using tick size and tick value is the correct way to do it to prevent any problems on all assets such as Shares, Futures, Indices, CFDs, Forex and anything else.
It's description is misleading. SymbolInfoDouble( _symbol, SYMBOL_POINT ) is the same as _Point and Point(). They all give the point size (not value).
Also read the following:
Forum on trading, automated trading systems and testing trading strategies
Point Tick Value and Tick Size
Ralf Kechel, 2011.09.02 16:30
Dear MT4 Users,
I am a bit confused about these three variables.
Taking DAX for example (#FDXU1):
Point: 0.1
Tick Size: 0.5
Tick Value: 12.5
While I understand that tick size is the minimal movement up or down on the prize, and tick value is the real monetary value of a tick,
I fail to understand what significance Point bears.
Also looking at the stock market I get info about tick value and tick size for every product, however Point only appears in MetaTrader.
Can someone please explain the meaning behind Point?
Thank you!
shinobiForum on trading, automated trading systems and testing trading strategies
Tick size vs Point(), can be a little tricky in Multicurrency EA
Fernando Carreiro, 2022.03.09 12:11
Tick Size and Point Size can be very different especially on stocks and other symbols besides forex.
Always use Tick Size to adjust and align your prices, not the point size. In essence, make sure that your price quotes, are properly aligned to the Tick size (see following examples).
... double tickSize = SymbolInfoDouble( _Symbol, SYMBOL_TRADE_TICK_SIZE ); ... double normalised_price = round( price / tick_size ) * tick_size; ... // Or use a function double Round2Ticksize( double price ) { double tick_size = SymbolInfoDouble( _Symbol, SYMBOL_TRADE_TICK_SIZE ); return( round( price / tick_size ) * tick_size ); };Forum on trading, automated trading systems and testing trading strategies
Tick size vs Point(), can be a little tricky in Multicurrency EA
William Roeder, 2022.03.09 12:41
PIP, Point, or Tick are all different in general.
What is a TICK? - MQL4 programming forum (2014)Unless you manually adjust your SL/TP for each separate symbol, using Point means code breaks on 4 digit brokers, exotics (e.g. USDZAR where spread is over 500 points), and metals. Compute what a PIP is and use it, not points.
How to manage JPY pairs with parameters? - MQL4 programming forum (2017)
Slippage defined in index points - Expert Advisors and Automated Trading - MQL5 programming forum (2018)
Well I’ve finally got around to changing my lot size function to use ticks rather than points. I’m now looking to test it but I’m struggling to find a symbol that has a point and tick sizes that are different. Does anyone know if there are any symbols with Darwinex or IC markets that are like this? If not can anyone recommend other symbols with another broker?
many thanks,
Ed
Here are two examples from AMP Global (Europe):
- Micro E-mini S&P 500 (Futures): point size = 0.01, tick size = 0.25, tick value = $1.25
- EURO STOXX Banks (Stock Index): point size = 0.01, tick size = 0.05, tick value = €2.50
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Morning!
Can someone tell me how MT5 calculates the symbol point value using the SYMBOL_POINT enum. For example the result of the following:
What is the calculation that it is doing to get this value from the specification?
Many thanks,
Ed