Calculating Pip Value. An Ask/ Bid Question

Hi. I’m calculating the Pip Value for my trades but I have a question if someone can help me or tell me his opinion.

In a nutshell, when I want to trade for example AUDCAD on my USD account, I know that each 1 PIP Movement of trades in this chart will result in 10CAD. In general 1pip in XXXYYY chart results in 10YYY (except JPY pairs which will result in 1000 JPY).
Then, in order to calculate my Pip Value in dollars (my account’s currency), I have to convert these 10CAD to USD. So, I’ll use the USDCAD chart and rate is 1.24900. That would mean that my “Dollar Pip Value” for AUDCAD is 10CAD/1.24900 = 8USD.

My problem though is:
Should I use the Ask OR Bid Price of the USDCAD chart that I want to convert CAD to USD? Ask and Bid Prices being “almost the same” doesn’t help me because I want to make an EA and need to know which of the 2 rates (Bid or Ask) I should use.
Or maybe it doesn’t matter which one I use as long as I stick with it and always use that same one? (for all my calculations on all pairs I want to open BUY and SELL orders)
Or maybe it depends? Maybe it depends if I open BUY or SELL order? I maybe then need the Ask for BUY Order and the Bid for SELL Order or the opposite.

Thanks for any help or any opinion on the matter in advance :slight_smile:

Now you are opening a can of worms. If you are going to stick with FX, then just use the tickvalue that you get from the terminal. ie tickvalue = MarketInfo(Symbol(),MODE_TICKVALUE);

In my opinion, you probably do need to use bid or ask depending on whether you buy or sell but it is such a small difference that it makes no difference. In your example, you have already rounded from 8.006 to 8.000; the difference between bid & ask will have an even smaller error.

Just take the value from the platform…it will work in 99% of cases and you do not need to calculate the pipvalue. I have found a very small percentage of brokers whose contract size does not match their pipvalue and this can cause problems but it is only in Oil where I have seen this.

Hello John,

Here are the short answers to your various questions –

If you want to be mathematically correct in coding your EA, then use these rules:

(1) If you are trading the EUR/GBP pair, use the GBP/USD BID price.

(2) If you are trading either the EUR/AUD pair or GBP/AUD pair, use the AUD/USD BID price.

(3) If you are trading EUR/NZD, GBP/NZD or AUD/NZD, use the NZD/USD BID price.

(4) For every other traded pair XXX/YYY, use the USD/YYY ASK price.

For a detailed explanation of these rules, see the “long answer” below.

Maybe it doesn’t matter, at all, depending on how much precision you demand in the calculated result.

In your post, you stated, “10CAD/1.24900 = 8USD”. That’s an approximation.

Actually, 10 CAD / 1.2490 = 8.006405 USD. And 10 CAD / 1.2500 = 8 USD.

If 10 pips, one way or the other, in the USD/CAD exchange rate doesn’t matter, for your purposes, then don’t bother with (1), (2), and (3) above, and just use the ASK price for every conversion.

No. The pip-value doesn’t depend on whether you are LONG or SHORT, or whether the price increases or decreases.

Okay, here’s the long answer to your first question –

Trading pairs of the form XXX/YYY involves pip-values of 10 YYY per pip, per standard lot traded.
For an account denominated in USD, the 10 YYY pip-value must be converted into USD.

The conversion into USD will depend on whether price information is quoted in terms of USD/YYY or YYY/USD.

There are only four pairs in which the USD is the quote currency: EUR/USD, GBP/USD, AUD/USD, and NZD/USD.

• EUR will never be the YYY currency in any pair you trade, because EUR is always the base currency in every EUR pair.

• As for GBP, there is only one pair in which GBP can be the YYY currency (the quote currency), and that is the EUR/GBP pair.

• As for AUD, there are only two pairs in which AUD can be the YYY currency (the quote currency), and they are EUR/AUD and GBP/AUD.

• And finally, as for NZD, there are three pairs in which NZD can be the YYY currency (the quote currency): EUR/NZD, GBP/NZD, and AUD/NZD.

So, for the following six traded pairs, EUR/GBP, EUR/AUD, GBP/AUD, EUR/NZD, GBP/NZD, and AUD/NZD, the pip-value conversion to USD involves the YYY/USD pair. That is, the conversion involves either GBP/USD, AUD/USD, or NZD/USD.

For all other traded pairs, the pip-value conversion to USD involves the USD/YYY pair. Examples: USD/CAD, USD/CHF, etc., and even USD/JPY (although, as you have noted, the original pip-value calcuation for yen-pairs is different from all the other currency pairs).

So, to summarize (as stated above in the “short answer”) –

(1) For traded pair EUR/GBP, use the GBP/USD BID price, as if you were selling GBP and buying USD.

(2) For traded pairs EUR/AUD and GBP/AUD, use the AUD/USD BID price, as if you were selling AUD and buying USD.

(3) For traded pairs EUR/NZD, GBP/NZD, and AUD/NZD, use the NZD/USD BID price, as if you were selling NZD and buying USD.

(4) For every other traded pair XXX/YYY, use the USD/YYY ASK price, as if you were buying USD and selling YYY.

1 Like

that’s still the same as Ask and Bid Price. I can see there is Ask Tickvalue and Bid Tickvalue on the platform.

I agree on that. I may just stick with just either one. I’ll see. It’s decimals difference that it won’t make much difference on Lot Sizes since MT4 Platform anyway allows up to 2 decimals lot size precision. It won’t differ from Ask to Bid the Lot Size

I’m not sure what that is. I have never seen an Ask Tickvalue or Bid Tickvalue. When you code in MQL4, you can only get MODE_TICKVALUE…it is a defined value and has nothing to do with ask or bid. Maybe I have missed what you are asking about…perhaps you can post a reference or screenshot of the Ask Tickvalue?

Thanks for the long detailed answer and your time :slight_smile:

As I said above as well, I may want full precision just trying to be a perfectionist but MT4 Platform anyway rounds up to 2 decimal Lot Sizes so precision goes out of the window. So choosing Ask vs Bid I think it won’t make difference even for the 2nd decimal Lot Size. Only on lower fractions.

My account balance will actually be in EUR since I live in Europe. I just mentioned USD balance in the beginning because that’s what most use here in forum or demos and thought it would help/ make easier the discussion.
So with EUR being always the base currency indeed it means that in all my conversions from YYY to EUR, I should just use the ASK Price because EUR will always be the base currency?

If you could make a same summary for EUR account balance would be great. Or will I always use Ask price on EUR account balance? Your last sentence if I change USD to EUR since being always first seemed to me to imply that.
(For every other traded pair XXX/YYY, use the EUR/YYY ASK price, as if you were buying EUR and selling YYY.)

Thanks for the help.

I think there is a misunderstanding. I was just referring to the Tick chart and the values shown there. Not for coding the EA. I’m not a coder myself. I will outsource the EA to a freelancer on Upwork. So you may be right about MODE_TICKVALUE and being unique. No idea there :slight_smile:
I was only mentioning this part showing 2 prices just like Ask and Bid Prices.

Yes. For any pair you trade in a EUR-denominated account – call that pair XXX/YYY – the quote currency (YYY) will be something other than EUR – it can never be EUR.

So, in order to convert the pip-value of your XXX/YYY position into your account currency (EUR) —
use the ASK price for the EUR/YYY pair.

There are no exceptions to this rule for EUR-denominated accounts.

Final note:

Presumably, you want to calculate this pip-value in EUR prior to entering your XXX/YYY trade. Be aware that final P/L, calculated and booked automatically by your platform when your trade is closed, will be based on the price of EUR/YYY at the time of closing your XXX/YYY trade – which might differ from the price of EUR/YYY you assumed prior to opening your XXX/YYY trade.

There are limits to the precision you can achieve, when planning a trade in advance.

I understand this. No worries. It can’t be everything always perfect!

Ok. So I was correct about conversions for EUR balances. I’ll have to use the Ask Price.

As a general rule of thumb I guess then:
If I want to open a trade on XXX/YYY pair and my account balance is in ZZZ, then:

We check the Ask Price for converting using a ZZZ/YYY pair and
We check the Bid Price for converting using a YYY/ZZZ pair.



In case you ever decide to use the Babypips Pip Value Calculator to determine (or check) any of these conversions, let me spare you some confusion, in advance.

You will notice two strange things about that Calculator –

Let’s continue to use the XXX, YYY, and ZZZ nomenclature, as before. The Calculator asks for two prices: (1) XXX/YYY, and (2) either YYY/ZZZ or ZZZ/YYY (as the case may be).

(1) The XXX/YYY price is totally unnecessary, and does not enter into the pip-value calculation. You can prove this to yourself by changing the price you enter to anything at all, or even leaving it at zero, and the Calculator will return the same result, regardless of what you enter.

It makes sense that the price you enter in that space does not affect the calculated result, because in every case the pip-value is always 10 units of YYY per standard lot, for all YYY except JPY, and 1,000 units, if YYY is JPY.

What doesn’t make sense is why that metric is asked for, in the first place.

(2) The YYY/ZZZ (or ZZZ/YYY) price is what we have been discussing, and our focus has been on determining whether this price should be the BID price or the ASK price.

Surprisingly, the Calculator does not specify which price (BID or ASK) to enter. In this case, changing the value entered does affect the calculated result, as it logically should.

Play around with the Pip Value Calculator, when you have the time. It won’t help you code your EA, but it’s a handy tool for manual trading, if that’s something you do.

1 Like

I’m sure after having read the replies, you must have got a clear idea about one part of your query. As far as the EA is concerned, you can have a word with your broker. Every broker I know offers the option of an EA. There’s ■■■■■■, Admiral markets, and pepperstone that offer instruments like myfxbook AutoTrade that runs the service on their own dedicated servers. So, whenever an A provider opens a trade account, the terminal sends a signal to the followers account to open the same trade. I’ve used this for quite some time till I wanted to trade on my own. But whenever I’m confused. It’s always helpful to take the help.

You should just focus on the tick value and try to pay close attention to the bid or ask as per your sell. You don’t necessarily have to look at or calculate the pip value for this. Working on the tick value would be enough.