TickValue with EURUSD includes exchange rate? - page 2

 

About symbol's settings set by the broker. Source:

Forum on trading, automated trading systems and testing trading strategies

Do currency parameters change dynamically?

Renat Fatkhullin , 2006.07.05 21:35

In theory, brokers change these parameters.

In practice, none of the brokers will dare to change the following parameters on weekdays, since this will primarily hit the server itself.
  • MODE_POINT
  • MODE_DIGITS
  • MODE_LOTSIZE
  • MODE_TICKVALUE
  • MODE_TICKSIZE
  • MODE_MINLOT
  • MODE_LOTSTEP
These parameters are dynamic in their pure form, they can and do change (for example, in a fast market) right during operation:
  • MODE_SPREAD
  • MODE_STOPLEVEL
It's old information about MT4, possible I supposed wrongly it was the same for MT5. I asked for confirmation/invalidation to Metaquotes.
 
Doerk Hilger:

The translation for imho is - in my HUMBLE OPINION. Bad day?

The broker told me, they cant change this. As you see in the screenshot, the tickvalue for forex is not even shown. 

Futhermore you mentioned, that the TickValue should always be in the account currency, so did I get you right, that this means, that it´s correct, that 1.0 is not correct, even when the profit currency is USD and it´s correct with 0.85 instead? This would mean, that the tickvalue would change permanently. 

That´s what I also assume how it should be, but it isn´t. Weird. 

There seems to be some miscommunication here, so let me just request that you clarify something for me:

For your broker account, is your Deposit/Balance in USD or EUR?

Case 1: Deposit/Balance is in USD

In this case, the Tick Value should always be 1.0 for all xxxUSD Symbols.

Case 2: Deposit/Balance is in EUR

In this case, the Tick Value will fluctuate depending on the EUR/USD exchange rate (somewhere around 0.83 at the moment) , for all xxxUSD Symbols

So, my question is, what is it that your broker is doing differently to that?

 
The tick value (or a point value) depends on two parameters:
1) Account currency and its rate to SYMBOL profit currency. If your account currency is different to profit currency then the tick value is changing permanently.
2) Trade calc mode. For Forex=0 it's easy (the tick value should be always in the account currency) but for another Trade calc mode, you must use rate SYMBOL Profit currency to Account currency.

I use something like this:

double PointValue(const string symbol)
  {
   int
      tradeCalcMode=(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE);
   double
      tickValue=SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE);
// Just Forex trade calc mode (doesn't need exchange rate)
   if(tradeCalcMode==0) return(tickValue);
// "General" calculation
   double
      point=SymbolInfoDouble(symbol,SYMBOL_POINT),
      tickSize=SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE),
      contractSize=SymbolInfoDouble(symbol,SYMBOL_TRADE_CONTRACT_SIZE),
      rateProfitAccount=GetExchangeRate(SymbolInfoString(symbol,SYMBOL_CURRENCY_PROFIT),AccountInfoString(ACCOUNT_CURRENCY));
   if(tradeCalcMode==2) contractSize=1.0;
   else tickValue=tickSize=1.0;
//---
   return(point*contractSize*tickValue*rateProfitAccount/tickSize);
  }


 
Petr Nosek:
The tick value (or a point value) depends on two parameters:
1) Account currency and ist rate to profit currency. If your account currency is different to profit currency then the tick value is changing permanently.
2) Trade calc mode. For Forex=0 it's easy (the tick value should be always in the account currency) but for another Trade calc mode, you must use rate Profit currency to Account currency.

I use something like this:


That's mql4 code right ? (so MT4 brokers).
 
Alain Verleyen:
That's mql4 code right ? (so MT4 brokers).

Yes, I use it for MT4 brokers. For MT5 brokers it should be similar (there are some other Trade calc modes in MT5).

 

I slowly get it, sorry guys ... but thank you for enlightening me ;) 

Its the very first time I saw this, and also just because a client reported, that the risk calculation with EURUSD seems to be not right (anymore), while it works with any other symbol. For example, to have clear basis to talk about, the following picture shows the specifications of the

YM future:

Tick value is 5, profit currency is USD, account currency is EUR. By that, its easy to figure out that one tick costs 5 USD, which have to translate to my account´s currency. No problem so far - this is my general proceeding. 


DAX future:

 

Clearly 25 EUR per tick - recalculation to account currency is 1:1 in this case. 

I could make screenshots of 1000 symbols, also CFDs from 10 brokers more, and it would always be like that. But not so with EURUSD. Does this mean, that this is different with Forex only or do I actually deal (coincidentially correct) with thousands of symbols with wrong data? 


EURUSD:

No data shown, just the profit currency. But tick-size and tick-value are provided by the corresponding MQL functions. 


Pre-conclusion:

This is what TRADE_CALC_MODE==SYMBOL_CALC_MODE_FOREX is for? ;) 

 

Haha, seems my pre-conclusion ist the final conclusion ... shame on me, I am a stupid! :D 

Thx guys ... made my day ;) 


---------


One lot, one pip, 84,80 EUR risk. Finally. Unbelievable ... but weird that nobody recognized that before. 

 
Doerk Hilger:

Haha, seems my pre-conclusion ist the final conclusion ... shame on me, I am a stupid! :D 

Thx guys ... made my day ;) 


---------


One lot, one pip, 84,80 EUR risk. Finally. Unbelievable ... but weird that nobody recognized that before. 

Huh ? Recognize what ?

I hope you understand yourself, because I don't.

 
Alain Verleyen:

Huh ? Recognize what ?

I hope you understand yourself, because I don't.

I think @Doerk Hilger meant his customers.

 
Doerk Hilger:

Haha, seems my pre-conclusion ist the final conclusion ... shame on me, I am a stupid! :D 

Thx guys ... made my day ;) 


One lot, one pip, 84,80 EUR risk. Finally. Unbelievable ... but weird that nobody recognized that before. 
Please note, that in MQL5 you can use the "SYMBOL_TRADE_TICK_VALUE_LOSS" to calculate the risk, and "SYMBOL_TRADE_TICK_VALUE_PROFIT" to calculate the reward, instead of just relying on "SYMBOL_TRADE_TICK_VALUE". They will take into account the spread of the exchange rate being calculated.
Reason: