MarketInfo MODE_TICKVALUE question

 
Hi all, I’m trying to better understand the mechanics of the tickvalue property and the role it plays with EAs in calculating a trade’s lot size. 

MT4 literature says that a this property gives the "Tick value in the deposit currency". 

But my understanding is that a tick is simply an update to the instrument. The price change per tick could vary, or be none at all. So how could a tick have a specific value?
 
rrsch: Hi all, I’m trying to better understand the mechanics of the tickvalue property and the role it plays with EAs in calculating a trade’s lot size. MT4 literature says that a this property gives the "Tick value in the deposit currency". But my understanding is that a tick is simply an update to the instrument. The price change per tick could vary, or be none at all. So how could a tick have a specific value?

The word "tick" has a dual meaning that is somewhat the same and different at the same time.

  1. Every time the quote price changes it is called a tick, and so "ticks" can refer to the number of changes, and is often called the tick count or tick volume.
  2. The minimum possible change in a price quote is also called a "tick", and this is usually referred to as the tick size.
    The value associated with this tick size is called its tick value, usually expressed in account currency, but not always.
    Here is an example:

Forum on trading, automated trading systems and testing trading strategies

Symbol Point Value

Fernando Carreiro, 2022.06.02 01:14

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
 

Also consider the following (the code is valid for both MQL4 and MQL5) ...

Forum on trading, automated trading systems and testing trading strategies

Symbol Point Value

Fernando Carreiro, 2022.05.18 21:05

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.

Forum 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 );
};
 
Thanks Fernando. I’ll look more into those threads you link to.

Another question: Why do I see EA risk calculators coded using MODE_TICKVALUE instead of MODE_LOTSIZE?

If I were using an online position size calculator or creating my own in Excel (which I’ve done) I’d simply grab the Contract Size specification (which is accessed with MODE_LOTSIZE, correct?) and use that to calculate my risk. Why go through the trouble of more convoluted calculations involving tick size? 
 
rrsch #: Thanks Fernando. I’ll look more into those threads you link to. Another question: Why do I see EA risk calculators coded using MODE_TICKVALUE instead of MODE_LOTSIZE? If I were using an online position size calculator or creating my own in Excel (which I’ve done) I’d simply grab the Contract Size specification (which is accessed with MODE_LOTSIZE, correct?) and use that to calculate my risk. Why go through the trouble of more convoluted calculations involving tick size? 

Because the tick value is the value of 1 tick size for 1 lot, so there is no need to use the contract lot size in the calculation.

  • tick value is for 1 lot × 1 tick (size)

So if you have a stop-loss of 20 ticks (size) and a volume of 2.5 lots, then the Risk = ( 20 x 2.5 x tick value ).

And remember that the tick value is already expressed in account currency in most cases.

Reason: