Convert point from currency pair to currency account

 
hi,
I would like to convert  point from currency pair to currency account. For example assuming my account is in USD what will be  the value in USD of 200 points on the currency pair EURJPY. 

I heard about MarketInfo(EURJPY, MODE_TICKVALUE)) which return value in USD for one tick and MarketInfo(EURJPY, MODE_TICKSIZE)).

However when I use the formula:
200xMarketInfo(EURJPY, MODE_TICKSIZE))xMarketInfo(EURJPY, MODE_TICKVALUE))

I do not get the expected result. 
 
Of course you don't. Look at your resulting units 200 something size Dollars: meaning less. You want (200 * _Point) * (tickValue/tickSize) (size Dollars/size = Dollars.)
  1. In code: Risk depends on your initial stop loss, lot size, and the value of the pair.
    1. You place the stop where it needs to be - where the reason for the trade is no longer valid. E.g. trading a support bounce the stop goes below the support.
    2. Account Balance * percent/100 = RISK = OrderLots * (|OrderOpenPrice - OrderStopLoss| * DeltaPerLot + CommissionPerLot) (Note OOP-OSL includes the SPREAD, and DeltaPerLot is usually around $10/pip but it takes account of the exchange rates of the pair vs. your account currency.)
    3. Do NOT use TickValue by itself - DeltaPerLot and verify that MODE_TICKVALUE is returning a value in your deposit currency, as promised by the documentation, or whether it is returning a value in the instrument's base currency.
                MODE_TICKVALUE is not reliable on non-fx instruments with many brokers.
    4. You must normalize lots properly and check against min and max.
    5. You must also check FreeMargin to avoid stop out
    Most pairs are worth about $10 per PIP. A $5 risk with a (very small) 5 PIP SL is $5/$10/5=0.1 Lots maximum.
  2. Use a GUI EA like mine (for MT4): Indicators: 'Money Manager Graphic Tool' indicator by 'takycard' Forum - Page 6
 

This link is broken. You could change it into this link: https://www.mql5.com/en/forum/227407 or into another valid link.

 

Thanks for your replies. However when I use your formula I still not get the right value. Below is my code:

double point=MarketInfo("EURJPY",MODE_POINT);
double ticksize=MarketInfo("EURJPY", MODE_TICKSIZE);
double tickvalue=MarketInfo("EURJPY", MODE_TICKVALUE);
double value200tickUSD=200*point*(tickvalue/ticksize);
Print("Value in deposit currency for 200 points (0.200JPY=?): ",DoubleToString(value200tickUSD,2));

I am using a 5 digit account with an account currency is USD and this code return the value 186.95

however 0.200 JPY=0.0018695 USD

So what is missing ?

 
I have $187.04 USD per lot
 
whroeder1:
I have $187.04 USD per lot

ok it makes more sense now.

Regards,

Dorian

Reason: