Accounting for Forex Carry

Discussions about trading the Forex markets.
Post Reply
Bollinger
Senior Member
Senior Member
Posts: 40
Joined: Wed Apr 16, 2003 2:42 pm
Location: New York City

Accounting for Forex Carry

Post by Bollinger »

MODERATOR'S NOTE: This message has been moved to a new topic form the topic "How much capital to start?" viewtopic.php?t=136

Forum Mgmnt, how will Veritrader 1.6 account for carry in Forex trading? I've done a lot of thinking on this recently and talking with people at Bloomberg on the problem of accounting for carry with forward contract data such as FX or LME data is especially difficult and complex. My guess is that most funds and other large position traders are simply not accounting for carry at all in either their backtesting or in their decisionmaking analysis.

This problem doesn't exist with futures data of course because futures data already accounts for the convergence of forward pricing to spot, and by backadjusting you can generate many years of data for a single hypothetical contract that has one delivery date.

But that doesn't happen with forward contract data because each day of data is for a contract that has a different delivery date. This is the case whether you use 3 month data for LME metal markets or FX contracts or for spot (2-day) FX contracts. The result is that data does not account at all for convergence of forward price to spot and thus for carry.

To get the right result you'd need to pick a delivery date (eg, June 15) and then have forward contracts with that delivery date generated historically for each day. This is somewhat complicated but could be done, especially for currencies if you have the historical short term interest rates for each country in the currency cross. Thus you could do this for an AUD/JPY cross, for instance, if you had historical spot data and also the historical 3mo LIBOR rates for AUD and JPY. I guess you could use 3mo rates and not a rate for the period between the actual day you are generating data for and the contract delivery date and that should be close enough I'd think (albeit not perfect). The next step would be to generate the forward price by adjusting the spot rate by the interest rate differential increased or decreased by the fraction of 3 months that the time between the relevant data point to the delivery point represents.

Very involved, and Bloomberg isn't currently providing data like this for FX or LME forward price data. I'm interested in hearing how Veritrader does it, especially since it's so data intensive.


Neal Stevens
Forum Mgmnt
Roundtable Knight
Roundtable Knight
Posts: 1842
Joined: Tue Apr 15, 2003 11:02 am
Contact:

Post by Forum Mgmnt »

Neal,

Here's what we've done.

We've simplified things a bit by handling only spot (cash) Forex positions rather than forward contract positions. This also happens to be what most of the history is, spot Forex, rather than a specific forward contract. It also happens to be what you trade with Oanda and other retail FX platforms.

Each broker, like Oanda, has a pretty specific way of handling the carry charges, some are more open about these charges than others. See http://fxtrade.oanda.com/fxtrade/intere ... tion.shtml for Oanda's calculations.

What VeriTrader does is very similar but with daily resolution rather than per second resolution on the interest charges.

It's a lot of calculations but here's what we basically do:

Each day after the close for each FX Position:
  1. Determine the quantity of both Base and Quote currency based on the price at entry.
  2. Determine the applicable interest rate accounting for a user-definable spread off the interest rates for each currency. The calculations assume you pay interest at the quoted interest rate from the history file, and that you receive interest at the rate minus the spread.
  3. Calculate the days interest based on the quantity of each currency, the applicable rate for the currency, and the position direction (long or short)
  4. Convert each of the resulting interest payments back into dollars at the then current exchange rates for the Base and Quote currencies.
  5. Subtract what you need to pay from what you receive to get the net interest
  6. Multiply that net interest carry charge by the number of base trading units (in interbank Forex this is 100,000 but this can be set by the user to reflect smaller trading sizes suitable for retail Forex trading of smaller accounts).
This is done for each day a position is held.

To test a given forex instrument, you need:
  1. The price history for the instrument
  2. If a cross, a USD to Base or USD to Quote price history so the entry and exit prices can be converted to dollars.
  3. If you turn on carry computation you also need an interest rate history file and USD conversion file for both the Base and Quote currencies. These can be sparsely populated to include only days when the interest rates change. For example, a USD history could be done only containing days when the Fed changes their rates.
- Forum Mgmnt

P.S. The Beta with Carry is about to go out, so this hasn't been vetted by our Forex experts yet so there may be issues with the above that we want to know about.
Last edited by Forum Mgmnt on Thu Apr 22, 2004 9:00 am, edited 1 time in total.
Bollinger
Senior Member
Senior Member
Posts: 40
Joined: Wed Apr 16, 2003 2:42 pm
Location: New York City

Post by Bollinger »

Forum Mgmnt,

That actually sounds pretty good as a rough and dirty way to do it.

Spot FX contracts are actually 2 day forward contracts, so you'll want to look at 2 day lending rates in doing this. One practical question is where the average lower budget user can find this interest rate data for each currency -- 3 month LIBOR rates are available for many currencies on CSI I think and might be a "good enough" substitute.

The retail FX shops all screw you on the interest rate a good amount -- you'd have to ask them just how much, but in actuality what they are doing is rolling your 2 day forward contract every two days and giving you a crummy spread on the roll. In the end it works out as the functional equivalent of earning interest, but it's less efficient than farther out forward contracts (eg, 1 or 3 month) for longer term position trading because you're losing money on the roll every day for spot and you don't with the forward contracts.

I don't think you could do this with LME metals forward contracts because you'd need to build in not just the interest rate carry but also storage and insurance costs.

I'm interested in hearing more about this, c.f. -- it sounds like you're doing great stuff.


Regards,
Neal
brendo
Senior Member
Senior Member
Posts: 41
Joined: Wed Dec 03, 2003 11:46 pm
Location: Melbourne AUSTRALIA

Forex Carry

Post by brendo »

c.f.

Your methodology sounds spot-on (no-pun intended), I cannot imagine a more correct method of calculating FX Carry.

Later

Brendo
Bollinger
Senior Member
Senior Member
Posts: 40
Joined: Wed Apr 16, 2003 2:42 pm
Location: New York City

Accounting for FX carry

Post by Bollinger »

Forum Mgmnt,

Do you apply the interest payments as adjustments to account P/L after the trade was entered, or do you use them to backadjust all the price data historically? It needs to be the latter to permit proper backtesting, otherwise you're not taking the carry into account with your technical analysis leading up to the entry of each trade. Make sense?

Neal
brendo
Senior Member
Senior Member
Posts: 41
Joined: Wed Dec 03, 2003 11:46 pm
Location: Melbourne AUSTRALIA

Re: Accounting for FX carry

Post by brendo »

Bollinger wrote: Do you apply the interest payments as adjustments to account P/L after the trade was entered, or do you use them to backadjust all the price data historically? It needs to be the latter to permit proper backtesting, otherwise you're not taking the carry into account with your technical analysis leading up to the entry of each trade. Make sense? Neal
I believe that most Forex providers make the interest calculations once a day (or continuously at Oanda) and apply the positive or negative carry to unrealised profit/loss of the trade(s) concerned. Once the position is exited, the total trade result of (Exit-Entry) + Forex Carry is applied to the account P/L

This to me seems a logical and tidy methodology that I can work with. Also by avoiding any back-adjustments it can make auditing a much easier task.

Regards

Brendo
batuco9
Roundtable Fellow
Roundtable Fellow
Posts: 53
Joined: Thu May 29, 2003 12:28 am
Location: Chile

Accounting for FX carry

Post by batuco9 »

Bollinger,
Why would you backadjust? Don't you consider carry just another cost like slippage or commisions?
Bollinger
Senior Member
Senior Member
Posts: 40
Joined: Wed Apr 16, 2003 2:42 pm
Location: New York City

Post by Bollinger »

You guys don't follow -- derivatives prices depend not only on the price of the underlying (in the case of FX, more or less the spot rate) but also on the cost of carry, storage, etc. As one stays in a forward or futures contract over time, the price of that contract converges to the spot price as the carry, storage, insurance, etc. cost of arbitrage becomes less and less. This is all accounted for in backadjusted futures data, but not at all in historical forward contract data (including FX spot data).

The thing that is so great about backadjusted futures data is that every single day of data, from the price you see for last week to the price you see for 10 years ago, represents the synthetic forward price for a single contract with the exact same delivery date. That is, if you see the price of a backadjusted corn futures contract for January 10, 1985, that is a synthetic forward price, as of that date, for a contract with the next futures delivery data -- say, June 2004. Obviously there were no June 2004 contracts traded in 1985, but here we have created one, with all the carry, storage, insurance, etc. prices built into it.

This is what we want when we do serious historical backtesting, because it gives us the opportunity to pretend we have one single asset - here, a June 2004 corn futures contract - and test what would have happened if we'd traded it the entire time. The real life effects of cost of carry, storage, insurance, etc. are all priced in, because the futures contracts that have been backadjusted reflect them as they each converge to the spot price.

But no inclusion of carry occurs if we don't use futures contracts and instead use constant forward contracts. Take the LME pricing, for instance. Every day you look at with the historical pricing is for a different delivery date, because it's all 3 month pricing. That means there is no convergence represented in the pricing, so that when you backtest you have no accounting whatsoever for the cost of carry, storage, insurance, etc. And yet if you actually held a position you would incur or earn the carry. FX spot prices have the same problem, because they're all 2 day forward contracts.

What c.f. is doing, I think, is adding in the cost or earning of carry for FX positions once the position is open. But what needs to be done is to have this cost or earning reflected in the price of every single day's data, whether or not a position is open. That is what would happen if you looked at a backadjusted IMM or FINEX futures contract, and if you don't account for that then your backtesting is on something different than a single synthetic asset. You're doing your technical analysis based solely on the spot price and then accounting for the carry in your P&L once you've opened the position but not in your technical analysis regarding whether to exit the position or take profits.
brendo
Senior Member
Senior Member
Posts: 41
Joined: Wed Dec 03, 2003 11:46 pm
Location: Melbourne AUSTRALIA

Accounting for Forex

Post by brendo »

Bollinger

I come from a strong Forex background and enjoy a medium familiarty with the backadjustment process for Futures data.

I guess I can state that analysis of the historical "Spot" market provides the single asset price from any previous date until any desired subsequent following date. This is how the major Forex traders back-test their ideas, and the Carry cost/benefit is either:
- ignored because it is not easy to calcualate
- estimated based on interest rate data

The reasons c.f. has decided to go down the path of "Constant spot/Adjust P/L for Carry" can be summarised as:
1. The lack of any standarised contracts or delivery dates. Without a set delivery date, what date are we adjusting for?
2. The overwhelming desire of the Forex traders to see VT capable of replicating the way that major Forex shops (eg FXCM & Oanda) account for the carry adjustments. That is, we want the ability to model the Forex market as closely as possible to reality.
3. A desire to keep it is simple as possible (not always easy).

Best Regards

BRENDO
Post Reply