Pairs Trading
So currently the Library can only support a single instrument. I would like to extend it for pairs Trading (Two instruments) Buying one selling other.
Any advice will be helpful.
@kernc any ideas?
Most simply, until #20 is properly addressed, you could prepare the data beforehand.
Assuming you always enter trades on the two instruments in parallel (buy one, sell the other), this is equivalent to buying instrument1 / instrument2. Even when you long-trade spot EUR/USD forex instrument, you're actually buying EUR currency and selling a corresponding amount of USD. :+1:
Thus, you can prepare your data (assuming the two instruments' data frames have the same, appropriately named columns):
data = df_instrument1 / df_instrument2
Yes, I had Initially thought about this approach but this highly restricts the kind of algo that can be developed. If I come across a solution .. I will add a PR
Besides always entering trades on the two instruments simultaneously (buying one–selling the other, or vice versa), how does it restrict it?
its not about just making trades. Its about the analysis that you want to perform it indicators or other things. That would be restricted. with the data already a ratio.
Note, the passed in data can contain additional columns you require (e.g. instrument1_Close, instrument2_Close, ...), and they can be referred to by your strategy in any way you need them ...
yes true that is possible, yea this definitely solves the issue to some extent. but still, how can we accurately calculate the stats?
You're trying to buy low and sell high just like usual. I think the stats will be fine as-is? :thinking:
Maybe account for double the spread/commission as you're simulating entering trades on two separate instruments.
I will try and let you know how it goes and If I face issues I will put it up here.
Any updates on the following?
Hello.
I will also add my voice for the implementation of work with several assets.
Arguments:
- Pair trading is possible between more than 2 cointegrated pairs.
- It would be convenient to get a portfolio in the base currency at once, regardless of pairs (in the spread we get the financial result in invented mathematical frills).
- To get the result separately for each side of the pair and for the full portfolio of pairs.
- Competing libraries have it: https://vectorbt.pro/tutorials/pairs-trading/