策略逻辑
策略原理
策略原理来自于《151 trading strategies》 中5.11 Stategy : Carry Factor
carry 被定义为是债券随着收益率曲线的下移导致的债券的升值带来的收益。一个零成本的债券策略可以通过做多高carry的债券,做空低carry的债券。
策略逻辑
在每个交易日判断,10年期国债和5年期国债的收益率的差别,如果十年期国债的收益率大于五年期国债的收益率,那么,就做多10年期国债,做空5年期国债;
如果十年期国债的收益率小于五年期国债的收益率,那么,就做空10年期国债,做多5年期国债。
忽略每次交易的手续费用。
数据准备
10年期国债收益率与五年期国债收益率的数据均来自英为财经。
10年期国债价格(全价)使用10年期国债期货价格指数代替;
5年期国债价格(全价)使用5年期国债期货价格指数代替;
在backtrader上实现的逻辑
有两种不同的方式,一种是把四个数据都加载到backtrader中,通过两个收益率来判断两个国债价格的多空;另外一个就是只加载两个债券的价格数据,另外的数据保存到内存中,每次在next中进行调用。
在策略的next当中,每个bar先获取当前的十年期国债与五年期国债的收益率,然后计算两个数据的多空方向,以及交易量。
代码运行输出
Starting Portfolio Value: 2000000.00
2016-01-05, BUY EXECUTED, Price: 99.76, Cost: 999196.16, Comm 0.00
2016-01-05, SELL EXECUTED, Price: 100.49, Cost: -1006507.84, Comm 0.00
2017-05-16, SELL EXECUTED, Price: 94.52, Cost: 10002.17, Comm 0.00
2017-05-16, BUY EXECUTED, Price: 97.29, Cost: 11729.30, Comm 0.00
2017-05-16, OPERATION PROFIT, GROSS -52533.92, NET -52533.92
2017-05-16, OPERATION PROFIT, GROSS 32051.20, NET 32051.20
2017-05-26, Order Canceled/Margin/Rejected
2017-05-26, SELL EXECUTED, Price: 97.23, Cost: -1802.79, Comm 0.00
2017-05-26, OPERATION PROFIT, GROSS -627.96, NET -627.96
Final Portfolio Value: 1912938.35
backtrader原生的输出图形,比较丑,我自己一般不会用这个,用plotly写的图形化界面输出结果,看起来更加简洁。
原文来自:3、【债券策略】基于利差的债券多空策略_云金杞-CSDN博客,代码在原文中,付费可见。