How To Minimise Currency Risk

One way you can easily wipe-out an account is by not managing your currency risk effectively. Take the following example, where we have the following open positions:

  • Long GBPUSD
  • Short EURGBP
  • Long GBPAUD
  • Long GBPNZD

Would you be comfortable if all these open positions were currently losing money and your robot trading system wanted to open a long GBPJPY position?

The Problem

The problem with our example portfolio is that we are all long the Pound currency. Recall that a currency pair is made up two currencies: the base currency and the quote currency.

When we quote a currency pair the base currency is the first currency mentioned with the second currency being the quote currency. Therefore, if the GBPUSD is currently priced at 1.2407 this means that 1 GBP = 1.2407 USD. If we are then long the GBPUSD it means we have bought GBP using (or selling) USD. Conversely, if we are short the GBPUSD it means we have bought USD using (or selling) GBP.

So going back to our main example, let’s split each currency pair held and determine what we are collectively holding by analysing the base/quote currency:

  • Long GBPUSD = Bought GBP, Sold USD
  • Short EURGBP = Sold EUR; Bought GBP
  • Long GBPAUD = Bought GBP; Sold AUD
  • Long GBPNZD = Bought GBP; Sold NZD

So out of our 4 open positions we are long GBP on four occasions and if our robot wants to open a fifth position to go long GBPJPY we are adding to our risk of being long five positions in the GBP.

Our portfolio is too heavily weighted on the GBP and this is where currency risk for the forex trader can cause problems.

How to Mitigate Currency Risk

The best to reduce our currency risk is to firstly calculate what our currency risk for every currency pair we wish to trade. One such way I have calculated my currency risk is by using the following functions:

Here we have both functions performing a similar task and returning what our collective portfolio lot size is for the currency sought.

Let’s return to our example and add lot sizes so that we can see what these functions would return:

  • Long 0.3 GBPUSD
  • Short 0.2 EURGBP
  • Long 0.5 GBPAUD
  • Long 0.1 GBPNZD

If these were our only positions, running the above risk functions would produce the following results, we will assume we are running this function on the GBPUSD chart:

getBaseCurrencyRisk() => 1.1
getQuoteCurrencyRisk() => -0.3

The first result on the base currency risk is that it adds up all long position sizes in the GBP, being all 4 open positions which we previously mentioned, and therefore is calculated as: 0.3 + 0.2 + 0.5 + 0.1 = 1.1.

The second result on the quote currency, being the USD for the GBPUSD chart we are operating these functions on, we only have one position open which is a long trade on the GBPUSD, but as the USD is the quote currency on a long trade, we are effectively short that currency, therefore, our result is just: –0.3.

What would be our results for both functions if we were to run them on our pending GBPJPY trade?

Have a guess before looking at the answers below:

getBaseCurrencyRisk() => 1.1
getQuoteCurrencyRisk() => 0.0

As we don’t have any open positions in the Yen our risk is considered to be. However, as we already have several positions open in the Pound, we are weighting our portfolio too heavily on this one currency. The reason for it being risky is should an event or announcement be made that favours shorting the Pound our portfolio will continue to show larger open losses.

Is Being Perfectly Hedged the Answer?

Does this therefore mean that for us to minimise risk we would need to open a short position in our fictitious GBPJPY trade to return our risk back to zero?

Yes and no.

Yes in the sense of our portfolio is somewhat hedged with this new short position, but then if we are fully hedged we have no direction. If the GBP were to go up our current open positions would profit, but our new short position would likely lose. Conversely, if our GBP continues to fall then our current open positions would lose, and our new GBPJPY position would win.

Our losses are offset by the wins – it’s a stalemate of sorts.

Now in reality we will never be perfectly hedged as each currency pair has its slight nuances.

But where these functions can best help us is if we have targets for our robot forex trading system and we limit the exposure we have in any one currency.

For example, if I analysed my positions and found I was too heavily weighted to one currency then I would not open a new position that would continue to increase the weight of my portfolio in that same direction. I would wait to see how the market goes with my current open positions, and should the market continue against my positions then I would strongly consider opening a trade that reduces this exposure.

It could be that my initial trading was wrong and may continue to be wrong and if I continue to fight against the market by opening other currency pairs that increase my currency risk then I could be very wrong and end up wiping my account.


It is important as robot forex traders to analyse currency risk to determine whether we are too heavily weighted in one currency’s direction. Where possible it is best to have some entry gate placed that limits our exposure by preventing new trades once a certain threshold is met. I have this condition placed just prior to entering new currency positions (it doesn’t impact existing positions which may be added to).

I have found this type of analysis to help improve systems that trade frequently on the lower time frames, such as the 1 minute charts – where it can be very easy for a portfolio to enter into similar currency pairs all within a matter of seconds.

Recent Posts