You are on page 1of 8

【期货策略】钢厂利润模型-螺纹钢铁矿石焦炭套利 - 拉姆达

投资 - JoinQuant
joinquant.com/view/community/detail/9ac273da862cfd0098a4a14d5dbcf829

【期货策略】钢厂利润模型-螺纹钢铁矿石焦炭套利

拉姆达投资
5年前

关注
点赞 96

【期货策略】钢厂利润模型-螺纹钢铁矿石焦炭套利
目前国内商品期货套利模式主要包括产业链套利、跨期套利、内外盘套利和期现套
利。我们针对黑色产业链期货进行研究,利用产业链关系进行钢厂利润套利,涉及螺
纹钢、铁矿、焦炭品种,炼钢工艺中影响总成本的主要因素是原料成本,即铁矿石、
焦炭成本。根据研报内容,我们获知钢材的成本 可以通过如下方式进行计算:
螺纹钢期货价格 = 1.6 铁矿石期货价格 + 0.5 焦炭期货价格 + 其他成本
上述等式是无套利的情形,而市场上的期货价格是波动的,上述等式在实际的市场中
是不等的。如果从价差的变动来看,上述等式左右两边的价差可以理解为钢厂炼钢的
利润,那么价差的波动就是钢厂利润的波动,因此追随钢厂利润波动的模式就是钢厂
利润套利的模式,在实际操作中,我们用指数合约代替实际价格
钢厂利润 = 1 螺纹钢指数合约价格 - 1.6 铁矿石指数合约价格 - 0.5 * 焦炭指数合约价
格 - 其他成本
关于钢厂炼钢利润波动的逻辑,参考研报内容:如果炼钢利润过高,铁矿和 焦炭价
格会跟涨,挤压炼钢利润;炼钢利润过低,钢材价格回升。我们可以看到钢厂利润波
动的逻辑性较强,基于此,当钢厂利润达到高位时,可以做空利润,即做空螺纹钢做
多铁矿石焦炭,当钢厂利润处于底位时,可以做多利润,即做多螺纹钢做空铁矿石焦
炭。
一般的套利做法是设置固定的价差值进行套利,在价格偏离价差平均水平时进行多空
操作,下面是通过期货指数绘制的钢厂利润曲线

从上面的图中我们发现价格并没有一个稳定的回复价格,即价差的分布并不对称,这
样的序列显然不适合用传统的回复套利方法,
在本报告中我们采用类似布林通道的策略思想,比如当价差超越长期或者 短期均值
一个标准差之时,可以认为此时的价差水平偏高,因此我们做空价格相对高的期货,
做多 价格相对低的期货,而当二者的价差回归到一个长期或短期均值的时候同时对
二者进行平仓。这样 策略获得价差回复的收益
我们对钢厂利润波动设计策略进行套利,考虑到不同的期货品种上市时间不一样,加
上初始统计需要一定的初始数据长度,三个品种中,铁矿石期货是最晚,于 2013 年
10 月 18 日上市交易,考虑到计算均值需要一定的数据,我们统一将策略设置为
2014 年 1 月 1 日开始回测。

研报中模型具体设置为
开仓条件:价差在10日均值加1倍标准差和1.2倍标准差之间,有回归趋势开
仓。
平仓条件:回归到10日均值进行平仓。
止损:设置的止损为5%,止损后10天内不开仓。
在该示例中,在回测过程中我们设置不同的开仓标准以及止损 等条件,发现以下设
置更为合适
开仓条件:价差在15日均值加1.8倍标准差之间,有回归趋势开仓。
开仓条件:
1.价差序列下穿上轨,利润冲高回落进行回复,策略空螺纹钢、多焦煤焦

2.价差序列上穿下轨,利润过低回复上升,策略多螺纹钢、空焦煤焦炭
止损:设置的滚动止损位3%,止损后10天内不开仓
手续费:万分之1双边
以下就是策略回测的效果展示
期现套利中价差受到基本面因素影响较大,基差风险不易把握,该研报中产业链利润
套利则将比价都统一在市场内,将钢材、铁矿石、焦炭三者产业链关系均以期货合约
价格建立公式来联系,使得利润变化便于计算,而且在进行适当参数调整后获得了不
错的表现,近四年时间年化收益13%左右,收益回撤比为1.31左右,夏普率在1.44,
回测曲线很漂亮,下面我们说一说存在的风险。
能够这么做假设前提是期货价格会与现货价格表现一致,且受到市场供求影响,但是
在过度投机或者流动性缺失的市场中价格也会脱离实际生产价格产生风险。模型中对
钢厂利润的公式描述是否过于简化也是需要考虑的内容,策略在回测过程中设置了不
同的开仓标准以及止损等条件,这里是从中选出结果最好的一组结果进行了展示,这
些都是策略在未来市场中表现中不如回测模型表现的隐患。
虽然如此,这个策略还是能够为策略开发拓展思路,提供灵感,还是值得一试的,而
且,在开始研究期货策略后发现,由于多空双向交易机制使得期货市场的风险反而比
股票更容易控制,感觉自己差不多要成长为股票期货复合型韭菜了。

拉姆达投资
41 文章

2183 关注

关注
陆文奇
lawrence -
首先感谢楼主的分享
然后开仓系数的确是错了,看一下仓位的话这基本是个焦炭单边做多策略。把代码改成
cash_i = cash x (1.6 x price_df['I8888.XDCE'][-1]) / (1 x price_df['RB8888.XSGE'][-1])
cash_j = cash x (0.5 x price_df['J8888.XDCE'][-1]) / (1 x price_df['RB8888.XSGE'][-1])
cash_rb = cash
就行了
发布于 2年前 回复
翻滚的雪球君
好贴帮顶
发布于 2年前 回复
lixc6
1

发布于 2年前 回复
18817362109
学习
发布于 2年前 回复
夕5
收藏了
发布于 2年前 回复
Jim000

在原策略上修改了一下,波动增加了,收益提高不少。
个人理解,在钢场利润处于极端环境时,容易出大的行情,此时放弃套利改为单边可以提
高收益率上限。
以下是模拟盘,欢迎围观:
【JoinQuant】策略名称:螺纹铁矿焦炭基本面套利策略-0128-模拟交易 链接:
https://www.joinquant.com/algorithm/live/liveUrlShareIndex?
backtestId=1b0b338439bd0f689f7aa8385ba6791d 密码:9h4hxt
发布于 2年前 回复
binsente1987 :

@Jim000 进去啥都没有

发布于 2年前 回复
yi27 :

@Jim000 大佬,这个策略还有吗

发布于 9个月前 回复
tonywong
这个策略思路牛!!!
发布于 2年前 回复
13072168179
感谢分享
发布于 2年前 回复
Mr.Martin
学习了
发布于 2年前 回复
谛听AI
看看
发布于 3年前 回复
果果蛋糕
这个策略思路牛逼
发布于 3年前 回复
秋灵儿
@拉姆达投资,在运行的过程,铁矿石出现双向持仓,找来找去找不到原因,请高手有空
时赐教下。
发布于 3年前 回复
zzs
为什么要用银华日利来做基准?
发布于 4年前 回复
^
计算资金权重什么原理?没看懂
发布于 4年前 回复
hdh4638
我回测其他比例确实没有楼主的这个资金比例结果好,什么原因我也不理解,但是至少现
在看来楼主的方法是对的。
系数的估算有三种吧!回归匹配 波动率匹配 合约价值匹配
发布于 4年前 回复
梨花博士
Dr.
厉害
发布于 4年前 回复
xyz222
为什么克隆下来回测的结果和楼主的不一样?
发布于 4年前 回复
一梦春秋
资金分配应该是有问题
#资金比例
#由三者的系数推出资金权重比例
a,b,c = g.y*g.z,g.x*g.z,g.y*g.z
#初始资金的十分之一
cash = g.init_cash*0.1

#资金分配
cash_i = (b/(a+b+c))*cash
cash_j = (c/(a+b+c))*cash
cash_rb = (a/(a+b+c))*cash

这里不获取期货价格,是不可能计算出资金分配比例的。要么就按手数交易。如果按资金
量交易,必须获取期货价格才能计算出资金分配。
发布于 4年前 回复
一梦春秋
我改成大豆 豆油 豆粕,用布林带均值回复,收益完全走样了,
用100%大豆=18.5%豆油+79.5%豆粕+2%损耗
可能不同标的有不同特点吧
发布于 4年前 回复
solarhe2006 :

@一梦春秋 这个模型奇妙的地方不在多品种,比如豆油压榨套利或者原油沥青套利等,在于开
仓的切入点位,还有就是忽略中轨,不知道故意的还是有实盘经验总结的,确实很神奇。收益可以很好很好。

发布于 4年前 回复
一梦春秋 :
@solarhe2006 为毛我用用100%大豆=18.5%豆油+79.5%豆粕收益不行……别的地方没改。

发布于 4年前 回复
一梦春秋 :
而且很多时候,大豆的价格大于18.5%豆油+79.5%豆粕的价格。百度了半
@solarhe2006
天,原因可能是大部分是用的进口转基因大豆榨油的,要看进口转基因大豆的价格和豆油 豆粕的价格,不能看国
内大豆价格……

发布于 4年前 回复
一梦春秋 :
@solarhe2006 我刚看了研报,没说要忽略中轨。开仓条件:价差在 10 日均值加 1 倍标
准差和 1.2 倍标准差之间,且有回归趋势开仓。
平仓条件:回归到 10 日均值进行平仓。
发布于 4年前 回复
solarhe2006 :

一梦春秋 这才是这个策略的牛鼻之处。
@

发布于 4年前 回复
solarhe2006
中轨
if trade_signal ==0: #
if len(hold_future_s)>0:
触发平空仓
print ' '
for future_s in hold_future_s:
order_target_value(future_s,0,side='short')
中轨
if trade_signal ==0: #
if len(hold_future_l)>0:
触发平多仓
print ' '
for future_l in hold_future_l:
order_target_value(future_l,0,side='long')
添加中轨出场,效果并不好。风险管理出场提供了很大帮助,总资金亏3%,经调整后,亏
7%,亏8%,亏9%等设置效果更好。止损后10天不交易,改为5天20天,效果没啥变化。
参数多了后模型鲁棒性差。
发布于 4年前 回复
共 46 条
1
2
3

添加回测

You might also like