专业正规安全的配资公司炒股平台门户网
关键词不能为空

股票配资

导航

「期货侯庆华」请问,哪位可以为我提供炒期货

未知
admin

迈科期货结对扶贫安徽太湖县

2019年3月22日,作为和上海期货交易所的扶贫合作项目,迈科期货扶贫工作小组一行千里迢迢,前往安徽省太湖县,向寺前镇安仓村捐助扶贫资金20万元,主要用于安仓村葛根、雷竹的种植提供资金资助。

安仓村位于寺前镇西部,全村2400人,675户,12个村民小组,全村总面积9. 14平方公里,全村建档立卡贫困户204户641 人,其中五保户22户22人,低保户53户67人,一般贫困户129户552人。现有未脱贫户81户162人。

上午,迈科期货扶贫小组与寺前镇党委副书记、太湖县扶贫办领导等一同前往安仓村,参加扶贫捐赠仪式。捐赠仪式上,双方商定了合作的总体目标、合作内容及合作机制,为实现精准扶贫、产业扶贫,结成帮扶对子。

首先,镇党委副书记梅庆华对迈科期货扶贫工作小组一行的到来表示欢迎,称迈科期货是上期所扶贫项目中距离最远的一家爱心企业。接下来梅庆华对寺前镇和安仓村的情况做了简要介绍,同时对安仓村目前的产业分布、经济发展现状进行了阐述。对于安仓村而言,面临的最大困难就是无工业,可持续发展的项目只有葛根和雷竹的种植,但因为种植周期较长,前期需要持续的资金注入,希望扶贫企业能够在这方面提供帮助。此外安仓村有个茶园,但是茶园硬件设施陈旧、外销情况不容乐观,希望可以在扶贫企业的帮助下打开销路。

展开剩余43%

扶贫捐赠仪式

随后,迈科期货扶贫工作小组副组长、首席风险官梁红漫介绍了公司情况以及近年来公司扶贫工作情况,她表示现阶段双方应该加强沟通,迈科期货也将认真履行社会责任,助推精准扶贫,为太湖县脱贫摘帽尽绵薄之力。

扶贫工作小组为在场的太湖县、寺前镇、安仓村各级领导作了题为“普及金融知识,惠及百姓生活”金融知识讲座,主要通过迈科期货2018年苹果“保险+期货”的案例,分析了利用期货市场规避农产品价格波动风险。

最后,迈科期货扶贫工作小组一行对该村今年发展的村集体油茶、葛根种植基地进行考察,对安仓村的发展思路予以肯定。

请问,哪位可以为我提供炒期货失败跳楼的人,比如刘强,侯庆华,林广茂等等。

刘强并不是因为炒期货投资失败而跳楼的。及时15年遇到股灾行情,他所管理的基金净值依然在0.8以上,已经算是相对比较不错的了。 他跳楼的原因,恐怕和他的抑郁症有很大的关系。 至于你说的林广袤等其他人的故事,你可以去豆瓣之类的看看,里面有很多。

中国期货市场十大悲情人物盘点

1、传奇人物:逍遥刘强 中国期货界传奇人物,因在2015股灾中在高位满仓,做多期指和配资买股票,最终导致破产,于2015年7月22日在北京华贸中心酒店顶楼平台跳楼自杀。 刘强生前为瑞林嘉驰对冲基金的基金经理,《期货大作手风云录》作者,北京逍遥投资工作室创始人,有着近20年的期货股票投资经验,曾供职于股票私募、报社记者、期货私募,其自创的多点共振操盘系统曾创下在一年中资金账户增长20倍的辉煌记录,在期货圈有着很高的知名度和良好的口碑。 不过在其自杀事件后,一位刘强的师兄和朋友透露,刘强自杀不是因为亏损破产,而是因为其患有抑郁症,逝者已矣,真相我们不得而知,但是刘强的抑郁症是否又能和他的交易撇清关系呢? 2、折翼的“证券之王”:管金生 作为债券市场交易的主导者,1995年“327国债”事件发生的那一周,万国超卖债券期货的情况非常严重,因为公司预计财政部将下调“保值贴补”——提供“保值贴补”是为了提升国债发行的吸引力——这会导致市场大幅下挫。但万国后来又获悉,财政部将提供另一份保值贴补,提高的比例比下调的幅度更大。这一信息令公司惊恐万分。管金生别无他法,只好在2月23日这天休市前的8分钟里,做出避免公司倒闭的最疯狂举动:大举抛售。这一举动,造成了债券期货市场崩盘,以致中国证监会下令将这8分钟内完成的交易全部取消,这结束了他作为中国证券业伟大试探者的生涯。 3、亿万富翁:袁宝璟 1996年秋天,袁宝璟向汪兴提出,自己在四川成都炒期货时损失九千余万元,怀疑是刘汉与证券交易所修改规则所致。汪兴便提出安排人去打刘汉,得到袁宝璟的认可。后袁宝璟出资16万元让袁宝琦交给汪兴;1997年2月1日晚9时许,受袁宝璟等人指使的李海洋(己判刑)在四川省广汉市发现刘汉,李海洋向刘汉近距离连开两枪,但未击中刘;1997年以来,因汪兴多次向袁宝璟借钱未果,便开始以打电话、写信以要举报袁宝璟的违法犯罪事实相威胁;袁宝璟向袁宝琦提到了汪兴的恐吓威胁,袁宝琦提出:“不行找人给他办了,花两个钱呗。”袁宝璟表示说:“行”,并提供30万元资金。袁宝琦找到袁宝福,让他把汪兴做掉。后袁宝福向袁宝森提出此事,袁宝森主动提出去做;2001年11月15日,袁宝森刺汪兴数刀后逃离。汪兴被扎伤后,不断威胁、恐吓袁宝璟,袁宝璟对袁宝琦说“不行就办了他”。之后,袁宝琦向袁宝福说“把尾巴活干完”,并交给他人民币18万元;2003年10月4日23时许,袁宝福与袁宝森携猎枪来到汪家附近,袁宝森对汪连开二枪,汪当场死亡。 4、财通基金:刘增铖 2014年10月22日,刘增铖错判了聚氯乙烯(PVC)期货品种将要大跌,对其进行了全面做空,不成想10月23日PVC却走出了明显的反弹行情,触及到产品的止损位,最终清盘。 据知情人士对媒体透露,刘增铖本打算做空PVC,但PVC出现了较大的期现价差,主力多头开始逼仓,几番博弈下来,不见多头泄气,无钱可撑,无奈之下只有砍仓,导致当天PVC跌停板打开并最终翻多。在一些期货从业人士看来,出现这种结果也并不让人意外,刘增铖虽负责运营一家公司,但更多的是用公司模式去运作资金,完全是一个人在战斗,操盘自己说了算,风险控制也是自己。 操盘手不计后果的、孤注一掷的押注PVC空头,最终导致爆仓,这一行为明显违背了以程序化套利、组合策略为主,力争实现计划资产的稳健增值的原则。 5、中国版利弗摩尔:侯庆华 初中文化,1969年出生于江苏武进,祖籍浙江金华,刚出生即被遗弃,三天后辗转于山东临沂尚无子女的养父母家中,养父母已经相继去世。16岁初中学业的他,当年以30元起步踏上外出打工路,先后历时12年,在东北建筑行业打拼,血雨腥风中完成原始资本积累,至26岁于人生第一个颠峰时期全身退出建筑管理行业,并转战实业投资;28岁投身期货行业,至31岁经历暴仓,累计亏损本金1000万;31岁开始期货交易步入正常稳定的操作轨道,前期亏损补回,并完成了一定的本金积累,至35岁的期货事业基本进入稳健发展阶段。2005年成为亿万富翁,奠定期货江湖地位。之后经历离婚,而后又爆仓,最终自杀,是中国的利弗摩尔。 6、顶级慈善家:裘德道 浙江省杭州市萧山区人,杭州道远集团董事长。依靠5000元钱起家,自1998年末进入化纤行业以来,短短几年时间,裘德道就积累了数十亿的资产,并在2005年和2007年两次买下私人飞机。2006年,裘德道宣布捐资1亿元成立道远慈善基金,2008年又以个人名义给汶川灾区捐款1000万元,成为打破国内多项纪录的顶级慈善家。后来进入期货行业,在橡胶期货上赚得数亿,后在PTA期货上巨亏20亿,由于患肝癌,又加上期货巨亏给其身心造成巨大打击,在2010年圣诞节前夕因肝移植手术失败去世,终年54岁。 7、白糖分析师:陈树强 1982年出生,生前为中证期货软商品期货研究员,在上海工作。陈树强于2011年加入中证期货,此前在长城伟业期货任白糖期货、股指期货研究员。陈树强参与工作时间不久,却获得了不少奖项:2010年首批郑州商品交易所高级分析师(全国总共不到20人)、2009年证券时报第二届优秀期货公司暨最佳期货分析师评选最佳白糖期货分析师第二名 、2010年带队承担郑州商品交易所白糖功能课题任务,统稿全文,并接受多家媒体采访。却在年满三十岁之际选择了跳楼自杀,结束了自己的生命,家属称其患有忧郁症,自杀前曾对于几次行情的判断屡屡失手。 8、亿万富翁:侯宝顺 侯某本是一个加工厂的小老板,在2000年以后,他开始钻研炒期货,到了2006年,侯某炒期货赚了竟达1亿多。在当时,这个数字对于绝大多数人来说绝对是一个天文数字,可惜暴富的侯某贪心不足,在期货走下坡路的时候越亏越多,一下子回到了原点。一个人不怕一无所有,最怕曾经拥有,最终爆亏的他选择了自杀,却留下了两个未成年的儿子。为了生活,在他人的帮助下,他的两个儿子将欠了父亲钱款的8个债务人告上法庭。之后,在法官的强制执行下,侯某的两个儿子拿到了近30万元执行款。 9、政协委员:谢贵华 广东乐山市夹江县政协委员、佳美植物油有限公司董事长,44岁的时候跳楼自杀,据一些熟悉谢贵华的知情者透露,谢的自杀与当年植物油期货价格暴跌有关,因为当时的他已经把所有家当亏尽,谢贵华跳楼前还在联系银行,希望能再获300万元贷款,以杀入期货市场“抄底”翻身。 10、糖业大佬:庞贵雄 46岁,广东省湛江市坡头区龙头镇人,当地知名的糖业老板,广东中谷糖业集团公司董事长兼总裁,湛江市优秀民营企业家。在2005年-2006年榨季里,中谷集团在湛江以及广西属下6间糖厂共生产白砂糖20万吨,酒精约2万吨。中谷糖业是湛江制糖行业龙头企业之一,是广东民企100强企业。据熟悉庞贵雄的人士介绍,庞曾经操作"期糖",亏损金额巨大,可能是这个原因让他走上了不归路,于2008年跳楼自杀。 据称当时中谷公司债务估算总额高达10亿。 类似于这样带血的故事还有很多很多……对于绝大多数人来说,期货交易是一条艰辛而坎坷的路,希望每位投资者在期货市场都能够自律、自知、自醒。

讲期货培训的侯林老师水平怎么样?

国内期货培训他是no.1,有几百个学员,你说他水平怎么样。

侯婷婷期货女神是怎样炼成的

“我在做股指交易的时候,早上跟着盘面走势开仓,如果和我判断的一样,那我就开仓拿着。如果我是止损出来的,我就会停下来仔细思考,我的判断是不是有什么问题。我每天开仓都不超过五次,如果连续错三次,那就说明我对市场节奏的判断有错误,这个时候我就不会去开仓了。而是选择仔细观察K线,摸透市场的节奏。我止损非常严格,而盈利的仓位我又能拿住,这样一来,即使我一周,四天都是亏的,但是只要有一天是赚钱的,我这周就是赚钱的。甚至我这一个月都是亏的,只要让我抓住一次机会,那我就能够盈利。”

中国期货市场十大悲情人物盘点

来源:期乐会


期货双向交易,而且有成倍的杠杆,可谓是一夜暴富的工具,可是又有多少人做到了?即使短期做到了,如果没有见好就收,越发贪婪,最终结果都让人胆战心惊!让我们一起回忆那些因期货/抑或因人性/抑或因健康而选择轻生的同行前辈们,同时警醒后人。


对于绝大多数人来说,期货交易是一条艰辛而坎坷的路,希望每位投资者在期货市场都能够自律、自知、自醒。


1、传奇人物:逍遥刘强


中国期货界传奇人物,因在2015股灾中在高位满仓,做多期指和配资买股票,最终导致破产,于2015年7月22日在北京华贸中心酒店顶楼平台跳楼自杀。


刘强生前为瑞林嘉驰对冲基金的基金经理,《期货大作手风云录》作者,北京逍遥投资工作室创始人,有着近20年的期货股票投资经验,曾供职于股票私募、报社记者、期货私募,其自创的多点共振操盘系统曾创下在一年中资金账户增长20倍的辉煌记录,在期货圈有着很高的知名度和良好的口碑。


不过在其自杀事件后,一位刘强的师兄和朋友透露,刘强自杀不是因为亏损破产,而是因为其患有抑郁症,逝者已矣,真相我们不得而知,但是刘强的抑郁症是否又能和他的交易撇清关系呢?


2、折翼的“证券之王”:管金生


作为债券市场交易的主导者,1995年“327国债”事件发生的那一周,万国超卖债券期货的情况非常严重,因为公司预计财政部将下调“保值贴补”——提供“保值贴补”是为了提升国债发行的吸引力——这会导致市场大幅下挫。但万国后来又获悉,财政部将提供另一份保值贴补,提高的比例比下调的幅度更大。这一信息令公司惊恐万分。管金生别无他法,只好在2月23日这天休市前的8分钟里,做出避免公司倒闭的最疯狂举动:大举抛售。这一举动,造成了债券期货市场崩盘,以致中国证监会下令将这8分钟内完成的交易全部取消,这结束了他作为中国证券业伟大试探者的生涯。


3、亿万富翁:袁宝璟


1996年秋天,袁宝璟向汪兴提出,自己在四川成都炒期货时损失九千余万元,怀疑是刘汉与证券交易所修改规则所致。汪兴便提出安排人去打刘汉,得到袁宝璟的认可。后袁宝璟出资16万元让袁宝琦交给汪兴;1997年2月1日晚9时许,受袁宝璟等人指使的李海洋(己判刑)在四川省广汉市发现刘汉,李海洋向刘汉近距离连开两枪,但未击中刘;1997年以来,因汪兴多次向袁宝璟借钱未果,便开始以打电话、写信以要举报袁宝璟的违法犯罪事实相威胁;袁宝璟向袁宝琦提到了汪兴的恐吓威胁,袁宝琦提出:“不行找人给他办了,花两个钱呗。”袁宝璟表示说:“行”,并提供30万元资金。袁宝琦找到袁宝福,让他把汪兴做掉。后袁宝福向袁宝森提出此事,袁宝森主动提出去做;2001年11月15日,袁宝森刺汪兴数刀后逃离。汪兴被扎伤后,不断威胁、恐吓袁宝璟,袁宝璟对袁宝琦说“不行就办了他”。之后,袁宝琦向袁宝福说“把尾巴活干完”,并交给他人民币18万元;2003年10月4日23时许,袁宝福与袁宝森携猎枪来到汪家附近,袁宝森对汪连开二枪,汪当场死亡。


4、财通基金:刘增铖


2014年10月22日,刘增铖错判了聚氯乙烯(PVC)期货品种将要大跌,对其进行了全面做空,不成想10月23日PVC却走出了明显的反弹行情,触及到产品的止损位,最终清盘。


据知情人士对媒体透露,刘增铖本打算做空PVC,但PVC出现了较大的期现价差,主力多头开始逼仓,几番博弈下来,不见多头泄气,无钱可撑,无奈之下只有砍仓,导致当天PVC跌停板打开并最终翻多。在一些期货从业人士看来,出现这种结果也并不让人意外,刘增铖虽负责运营一家公司,但更多的是用公司模式去运作资金,完全是一个人在战斗,操盘自己说了算,风险控制也是自己。


操盘手不计后果的、孤注一掷的押注PVC空头,最终导致爆仓,这一行为明显违背了以程序化套利、组合策略为主,力争实现计划资产的稳健增值的原则。


5、中国版利弗摩尔:侯庆华


初中文化,1969年出生于江苏武进,祖籍浙江金华,刚出生即被遗弃,三天后辗转于山东临沂尚无子女的养父母家中,养父母已经相继去世。16岁初中学业的他,当年以30元起步踏上外出打工路,先后历时12年,在东北建筑行业打拼,血雨腥风中完成原始资本积累,至26岁于人生第一个颠峰时期全身退出建筑管理行业,并转战实业投资;28岁投身期货行业,至31岁经历暴仓,累计亏损本金1000万;31岁开始期货交易步入正常稳定的操作轨道,前期亏损补回,并完成了一定的本金积累,至35岁的期货事业基本进入稳健发展阶段。2005年成为亿万富翁,奠定期货江湖地位。之后经历离婚,而后又爆仓,最终自杀,被人称为是中国的利弗摩尔。


6、顶级慈善家:裘德道


浙江省杭州市萧山区人,杭州道远集团董事长。依靠5000元钱起家,自1998年末进入化纤行业以来,短短几年时间,裘德道就积累了数十亿的资产,并在2005年和2007年两次买下私人飞机。2006年,裘德道宣布捐资1亿元成立道远慈善基金,2008年又以个人名义给汶川灾区捐款1000万元,成为打破国内多项纪录的顶级慈善家。后来进入期货行业,在橡胶期货上赚得数亿,后在PTA期货上巨亏20亿,由于患肝癌,又加上期货巨亏给其身心造成巨大打击,在2010年圣诞节前夕因肝移植手术失败去世,终年54岁。


7、白糖分析师:陈树强


1982年出生,生前为中证期货软商品期货研究员,在上海工作。陈树强于2011年加入中证期货,此前在长城伟业期货任白糖期货、股指期货研究员。陈树强参与工作时间不久,却获得了不少奖项:2010年首批郑州商品交易所高级分析师(全国总共不到20人)、2009年证券时报第二届优秀期货公司暨最佳期货分析师评选最佳白糖期货分析师第二名 、2010年带队承担郑州商品交易所白糖功能课题任务,统稿全文,并接受多家媒体采访。却在年满三十岁之际选择了跳楼自杀,结束了自己的生命,家属称其患有忧郁症,自杀前曾对于几次行情的判断屡屡失手。


8、亿万富翁:侯宝顺


侯某本是一个加工厂的小老板,在2000年以后,他开始钻研炒期货,到了2006年,侯某炒期货赚了竟达1亿多。在当时,这个数字对于绝大多数人来说绝对是一个天文数字,可惜暴富的侯某贪心不足,在期货走下坡路的时候越亏越多,一下子回到了原点。一个人不怕一无所有,最怕曾经拥有,最终爆亏的他选择了自杀,却留下了两个未成年的儿子。为了生活,在他人的帮助下,他的两个儿子将欠了父亲钱款的8个债务人告上法庭。之后,在法官的强制执行下,侯某的两个儿子拿到了近30万元执行款。


9、政协委员:谢贵华


广东乐山市夹江县政协委员、佳美植物油有限公司董事长,44岁的时候跳楼自杀,据一些熟悉谢贵华的知情者透露,谢的自杀与当年植物油期货价格暴跌有关,因为当时的他已经把所有家当亏尽,谢贵华跳楼前还在联系银行,希望能再获300万元贷款,以杀入期货市场“抄底”翻身。


10、糖业大佬:庞贵雄


46岁,广东省湛江市坡头区龙头镇人,当地知名的糖业老板,广东中谷糖业集团公司董事长兼总裁,湛江市优秀民营企业家。在2005年-2006年榨季里,中谷集团在湛江以及广西属下6间糖厂共生产白砂糖20万吨,酒精约2万吨。中谷糖业是湛江制糖行业龙头企业之一,是广东民企100强企业。据熟悉庞贵雄的人士介绍,庞曾经操作"期糖",亏损金额巨大,可能是这个原因让他走上了不归路,于2008年跳楼自杀。 据称当时中谷公司债务估算总额高达10亿。


类似于这样带血的故事还有很多很多……对于绝大多数人来说,期货交易是一条艰辛而坎坷的路,希望每位投资者在期货市场都能够自律、自知、自醒。

炒期货的人最后都变成什么样了?

中国版利弗摩尔:侯庆华

  初中文化,1969年出生于江苏武进,祖籍浙江金华,刚出生即被遗弃,三天后辗转于山东临沂尚无子女的养父母家中,养父母已经相继去世。16岁初中学业的他,当年以30元起步踏上外出打工路,先后历时12年,在东北建筑行业打拼,血雨腥风中完成原始资本积累,至26岁于人生第一个颠峰时期全身退出建筑管理行业,并转战实业投资;28岁投身期货行业,至31岁经历暴仓,累计亏损本金1000万;31岁开始期货交易步入正常稳定的操作轨道,前期亏损补回,并完成了一定的本金积累,至35岁的期货事业基本进入稳健发展阶段。2005年成为亿万富翁,奠定期货江湖地位。之后经历离婚,而后又爆仓,最终自杀,是中国的利弗摩尔。

  白糖分析师:陈树强

  1982年出生,生前为中证期货软商品期货研究员,在上海工作。陈树强于2011年加入中证期货,此前在长城伟业期货任白糖期货、股指期货研究员。陈树强参与工作时间不久,却获得了不少奖项:2010年首批郑州商品交易所高级分析师(全国总共不到20人)、2009年证券时报第二届优秀期货公司暨最佳期货分析师评选最佳白糖期货分析师第二名 、2010年带队承担郑州商品交易所白糖功能课题任务,统稿全文,并接受多家媒体采访。却在年满三十岁之际选择了跳楼自杀,结束了自己的生命,家属称其患有忧郁症。

  亿万富翁:侯宝顺

  侯宝顺本是一个加工厂的小老板,在2000年以后,他开始钻研炒期货,到了2006年,侯某炒期货赚了竟达1亿多。在当时,这个数字对于绝大多数人来说绝对是一个天文数字,可惜暴富的侯某贪心不足,在期货走下坡路的时候越亏越多,一下子回到了原点。一个人不怕一无所有,最怕曾经拥有,最终爆亏的他选择了自杀,却留下了两个未成年的儿子。为了生活,在他人的帮助下,他的两个儿子将欠了父亲钱款的8个债务人告上法庭。之后,在法官的强制执行下,侯宝顺的两个儿子拿到了近30万元执行款。

  糖业大佬:庞贵雄

  广东省湛江市坡头区龙头镇人,当地知名的糖业老板,广东中谷糖业集团公司董事长兼总裁,湛江市优秀民营企业家。在2005年-2006年榨季里,中谷集团在湛江以及广西属下6间糖厂共生产白砂糖20万吨,酒精约2万吨。中谷糖业是湛江制糖行业龙头企业之一,是广东民企100强企业。据熟悉庞贵雄的人士介绍,庞曾经操作"期糖",亏损金额巨大,可能是这个原因让他走上了不归路,于2008年跳楼自杀,享年46岁。 据称当时中谷公司债务估算总额高达10亿。

  我们的好朋友卢明

  杭州人,七禾网实战排行榜“我,机器人(19.97 +2.25%,买入)”账户操作人,主要操作黄金、铜、橡胶等品种,从其在七禾网实战排行榜展示的账户“我,机器人”可以看到他最后一次交易停留在2013年1月4日,卢明和上述所提及的人不同,别人是因为期货亏钱而走上末路,而他是赚钱后遭到了不幸死神的“眷顾”,据知情人士透露,2012年,因卢明在期货市场获利丰厚,于是在2013年春节之际携带全家人去海南三亚度假,不料途中因海鲜过敏,抢救不及时去世,去世后其家人也及时通知他曾管理的所有期货账户进行平仓。今天再次提起他,想念他……


  类似于这样带血的故事还有很多很多……对于绝大多数人来说,期货交易是一条艰辛而坎坷的路,希望每位投资者在期货市场都能够自律、自知、自醒,仅以此回答悼念那些已故的期货人,警示那些正奋斗在这条路上的每一位投资者。

【量子研报实战系列】商品期货套利之“三十六计”(附代码)--【量子金服投研平台出品】

作者:QuantumFinancial

链接:https://zhuanlan.zhihu.com/p/28587905

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


引言

商品期货套利是期货套利交易的一种类型,其基本原理在于当市场价格关系处于不正常状态时进行双边交易以获取低风险差价。本文将结合海通证券发布于2016年8月3日的研究报告《绝对收益策略系列研究之二——商品期货套利策略》向大家简单介绍这一策略,并在量子金服投研管理平台上加以实现。

概念简介

商品期货套利主要有四种模式:

1) 期现套利

期现套利是指利用同一种商品,在期货市场与现货市场之间存在不合理的价差进行套利的行为。商品期货价格与现货价格之间的差值被称为“基差”,基差的值在一段时间内都应当是稳定的。当基差出现不合理的偏差时,套利者即可通过构建现货与期货的套利组合,以期望基差在未来回归合理的价值区间从而获取利润。

2) 跨期套利

跨期套利是指利用同一商品、两个不同结算时间的合约,在市场上同时买进、卖出,通过价差的扩大和缩小来获取利润。跨期套利策略包括基本面套利和统计套利。基本面套利需要实际考察商品的供需状态、消费库存比等等信息。而统计套利是利用不同期限合约直接的协整关系,建立一个有均值回复特征的多空组合。

3) 跨品种套利

跨品种套利是指利用两种不同的,但是有很强相关性的商品之间的合约进行套利交易。通过买卖相同时间的不同商品合约,以期在未来二者价差扩大或缩小,再对冲平仓获利。跨品种套利主要包括产业链套利和替代品种套利。产业链套利指的是在同一条产业链中选择两个或多个品种。这些品种往往相关性较高,无论从基本面还是统计结果出发都比较容易找到逻辑支撑,比较常见的产业链如炼钢、大豆压榨。而替代品种套利指的是选取功能上存在较强替代性的两种产品,其价格往往能够反映出一定的相关性,例如豆油和棕榈油。

4) 跨市场交易

跨市场交易是指在不同市场之间对同一期货合约进行套利交易。由于区域地理等差别因素,各商品合约存在一定的稳定价差关系。当这一价差由于不同市场的供求关系、市场环境甚至交易规则等方面的因素产生偏离时,套利者即可通过在不同市场买卖同一商品合约的行为获利。

在以上四种套利模式中,期现套利要求投资者参与现货市场交易,而跨市场交易则要求投资者在不同市场、主要是不同国家的市场进行交易,在操作上存在一定的不便,我们在本文中不再多加讨论。针对跨期套利中的统计套利,与跨品种套利中的替代品套利,下面我们将制定简单的交易策略。

策略思路

商品套利的策略逻辑基本一致,都在于判断时点,买入卖出同时进行,赚取差价。不同套利策略主要的差异在于投资标的选择的不同,以及时点判断方式的不同。具体的步骤为:

1) 选择合约标的,一般数量为两个。记为合约A,B,两者满足较强的相关关系;

2) 制定A相对于B的相对价格指标,记为S;

3) 当S大于开仓阈值时,开多A、开空B;当S小于平仓阈值或大于止损阈值时时,平仓;反之亦然;

策略细节

1) 标的选取

对于跨期套利策略,我们选取流动性良好,且统计检验满足协整关系的橡胶期货合约作为投资标的。橡胶期货主力合约在1,5,9三个月切换,且主力合约在交割前一个月的月初完成。因此我们在每年的12、1、2、3月交易5月和9月的合约,4、5、6、7月交易9月和1月合约,8、9、10、11月交易1月和5月合约,在3、7、11月的最后一个交易日收盘时平仓,下个交易日起更换套利合约。

对于跨品种套利策略,我们选取替代性较强,相关性较好的豆油、棕榈油作为标的。选取每天的主力合约进行交易。

2) 相对价格指标

经过回归得到协整系数近似为1,因此取头寸比例固定为1:1

对价差进行标准化处理:

其中为过去N个价差的平均值,为价差的标准差。基于均值回复的特征,当价差大于开仓阈值时建仓,回复至平仓阈值或是突破止损阈值时平仓,具体参数如下:

3) 交易手数

每次双边各交易相同手数

4) 保证金(MARGIN)

设为50%,即杠杆率为2

5) 回溯期(N)

可自行定义

6) 开仓阈值(ENTRYSCORE)

2倍标准差

7) 平仓阈值(EXITSCORE)

0.5倍标准差

7) 止损阈值(STOPSCORE)

3倍标准差


在实现过程中,参数设置:

WINDOW=100
ENTRY_SCORE=2
EXIT_SCORE=0.5
STOP_LOSS_SCORE=3
MARGIN=0.5

策略实现

1) 跨品种套利

交易标的:豆油(Y)、棕榈油(P)主力合约

回测时间:2012.01.01~2017.01.01

回测时长:5年

收益曲线


收益归因


业绩分析


如图,我们的收益很一般,为了分析原因,我们对相对价格指标和它标准化后的结果作图分析:


如图,红色线为相对价格指标,蓝色线为标准化后的指标。从图中可以发现,在回测期间内(2012.01.01~2017.01.01)价格指标呈现较大幅度的波动,但总体依然表现出了均值复归的特质。且标准化后的指标变动与原价差变动相对吻合,应当有一定程度的预测作用。收益率过低可能是因为我们使用了50%的保证金,杠杆率过低。


如图,我们的策略在最多的时候也只使用了不到35%的保证金,持有过多现金可能是导致我们收益率平庸的原因。

下调保证金率后:




如图所示,收益率显著提升。当然,更高的杠杆率也带来更大的风险,我们的回撤与波动率都上升较大。不过策略的夏普比率也有较大提升,可以说总体是表现更好的。

2) 跨期套利

交易标的:天然橡胶主力合约

回测时间:2015.01.01~2016.05.01

回测时长:16个月

收益曲线


收益归因


业绩分析

可以发现,在最大回撤52.9%的情况下,该天然橡胶期货的跨期套利策略实现年化收益率19.4%,总收益率25.07%。策略中的回溯期N为50,保证金比率统一设置为13%。每次开仓均利用可用余额的80%进行操作。由于杠杆率较高,实现了不错的收益率。

另一方面,发现在15年4月与16年1月之间交易较少,猜想阈值设置偏高,导致交易触发事件减少。实际操作时可根据自身需要进行参数设置。

小结

本文对商品期货的跨品种套利和跨期套利策略进行了简单的介绍。通过量子金服投研平台我们实现了这两种策略并进行分析。需要指出的是,我们采用的是日线操作,而商品期货套利的机会稍纵即逝,在实际操作中采用分钟线为好,这里我们仅做介绍,读者可通过量子金服投研平台自行编写策略进行实现。作为一种比较成熟的期货套利方式,商品期货的跨期和跨品种套利策略在回测过程中实现了较好的收益率,但该策略在实际使用过程中的诸多参数设置,读者需要根据实际情况进行调整,切不可一成不变。

Code

1)跨品种套利

# -*-
coding:utf-8 -*-



from CloudQuant import SDKCoreEngine # 导入量子金服SDK

from CloudQuant import AssetType

from CloudQuant import QuoteCycle

from CloudQuant import OrderType

import numpy as np # 使用numpy

import pandas as pd

import math

import matplotlib.pyplot as plt



np.seterr(invalid='ignore')



COMMODITY=['Y.DCE','P.DCE']

WINDOW=100

ENTRY_SCORE=2

EXIT_SCORE=0.5

STOP_LOSS_SCORE=3

MARGIN=0.1



global score_stored

score_stored=[]

global delta

delta=[]



config = {

'username': 'pengkun',

'password': '111111',

'rootpath': 'c:/cStrategy', # 客户端所在路径 'assetType': AssetType.Future,

'initCapitalFuture': 10000000, # 初始资金 'startDate': 20120101, # 交易开始日期 'endDate': 20170101, # 交易结束日期 'cycle': QuoteCycle.D, # 回放粒度为1分钟线 'feeRate': 0.001,

'feeLimit': 5,

'strategyName': 'commodity_arbitrage', # 策略名 "logfile": "ma.log",

'dealByVolume': True

}



def dateAdd(year_month,add):

year=int(year_month[0:2])

month=int(year_month[2:4])

month=month+add

if month>12:

year+=1

month-=12

return str(year*100+month)



def initial(sdk):

flag = 0.0 # 标记状态 sdk.setGlobal('flag', flag)





def initPerDay(sdk):



#获取当前主力合约 date=sdk.getNowDate()

year_month=str(date)[2:6]

code=sdk.getFactorData("LZ_CN_CF_CODE")

main_contract=sdk.getFactorData("LZ_CN_CF_DOMINANT_CONTRACT")[-1]

main_contract=pd.Series(main_contract,index=code)

contract=[]

for c in COMMODITY:

temp = 0

while(temp!=1):

temp_c=c[0]+year_month+c[1:]

if temp_c in main_contract:

temp=main_contract[temp_c]

year_month=dateAdd(year_month,1)

contract.append(temp_c)

sdk.setGlobal("c_a",contract[0][0:5])

sdk.setGlobal("c_b",contract[1][0:5])



def strategy(sdk):

flag=sdk.getGlobal('flag')

contract_a=COMMODITY[0]

contract_b=COMMODITY[1]

contract=[contract_a,contract_b]

print contract

hist=sdk.getLatest(contract,WINDOW,"D",2)

if len(hist[contract_a])>=WINDOW and len(hist[contract_b])>=WINDOW:

hist_a=[0.0]*WINDOW

hist_b=[0.0]*WINDOW

for i in range(WINDOW):

hist_a[i]=math.log(hist[contract_a][i].close)

hist_b[i]=math.log(hist[contract_b][i].close)

hist_a=np.array(hist_a)

hist_b=np.array(hist_b)

#
spread=hist_b-hist_a

spread=hist_a-hist_b

mean=np.nanmean(spread)

std=np.std(spread)

score=(spread[-1]-mean)/std



contract_a = sdk.getGlobal("c_a")

contract_b = sdk.getGlobal("c_b")

contract = [contract_a, contract_b]

print contract

q=sdk.getQuotes(contract,2)

price_a=q[contract_a].open

price_b=q[contract_b].open





margin_a=MARGIN

margin_b=MARGIN



multiple_a=10

multiple_b=10



volume_a= (sdk.getAccountInfo(tsInd=2).availableCash)
//(price_a*margin_a*multiple_a+price_b*margin_b*multiple_b)

volume_a=int(volume_a)

volume_b=volume_a



pos_a=0

pos_b=0

#清仓 pos=sdk.getPositions(2)

for f in pos:

if f.code==contract_a:

pos_a=f.optPosition

elif f.code==contract_b:

pos_b=f.optPosition

else:

ordertype=f.orderType

quote=sdk.getQuote(f.code,tsInd=2)

if quote:

price=quote.open



sdk.makeOrder(f.code,price,f.optPosition,-ordertype,tsInd=2)





if (score EXIT_SCORE) or (score>STOP_LOSS_SCORE and flag
sdk.makeOrder(contract_b, price_b, pos_b, -2, tsInd=2)

sdk.sdklog("------------------------------------------")

sdk.sdklog(sdk.getNowDate(), "DATE")

sdk.sdklog([contract_a, price_a, pos_a, -1], 'CLOSE_LONG')

sdk.sdklog([contract_b, price_b, pos_b, -2], 'CLOSE_SHORT')



if (score>-EXIT_SCORE and flag<-EXIT_SCORE) or (score<-STOP_LOSS_SCORE and flag>-STOP_LOSS_SCORE): #上穿止盈点,平仓 sdk.makeOrder(contract_a, price_a, pos_a, -2, tsInd=2)

sdk.makeOrder(contract_b, price_b, pos_b, -1, tsInd=2)

sdk.sdklog("------------------------------------------")

sdk.sdklog(sdk.getNowDate(), "DATE")

sdk.sdklog([contract_a, price_a, pos_a, -2], 'CLOSE_SHORT')

sdk.sdklog([contract_b, price_b, pos_b, -1], 'CLOSE_LONG')



if score<-ENTRY_SCORE and flag>-ENTRY_SCORE: #下穿下界,买入 sdk.makeOrder(contract_a, price_a, volume_a, 2, tsInd=2)

sdk.makeOrder(contract_b, price_b, volume_b, 1, tsInd=2)

sdk.sdklog("------------------------------------------")

sdk.sdklog(sdk.getNowDate(), "DATE")

sdk.sdklog([contract_a, price_a, volume_a, 2], 'OPEN_SHORT')

sdk.sdklog([contract_b, price_b, volume_b, 1], 'OPEN_LONG')



if score>ENTRY_SCORE and flag
sdk.makeOrder(contract_b, price_b, volume_b, 2, tsInd=2)

sdk.sdklog("------------------------------------------")

sdk.sdklog(sdk.getNowDate(), "DATE")

sdk.sdklog([contract_a, price_a, volume_a, 1], 'OPEN_LONG')

sdk.sdklog([contract_b, price_b, volume_b, 2], 'OPEN_SHORT')



if score>STOP_LOSS_SCORE:

flag=STOP_LOSS_SCORE+1

elif score>ENTRY_SCORE:

flag=(STOP_LOSS_SCORE+ENTRY_SCORE)/2

elif score>EXIT_SCORE:

flag=(ENTRY_SCORE+EXIT_SCORE)/2

elif score>-EXIT_SCORE:

flag=0

elif score>-ENTRY_SCORE:

flag=(-ENTRY_SCORE-EXIT_SCORE)/2

elif score>-STOP_LOSS_SCORE:

flag=(-STOP_LOSS_SCORE-ENTRY_SCORE)/2

else:

flag=-STOP_LOSS_SCORE-1



print flag

score_stored.append(score)

delta.append(spread[-1])

sdk.setGlobal("flag",flag)





def main():

# 将策略函数加入 config['initial'] = initial

config['strategy'] = strategy

config['preparePerDay'] = initPerDay

# 启动SDK

SDKCoreEngine(**config).run()

fig=plt.figure()

#
plt.plot(score_stored)

# plt.plot(delta)

ax1 = fig.add_subplot(111)

ax1.plot(score_stored,label='score_standard')

ax1.plot([2]*len(score_stored),'--')

ax1.plot([-2] * len(score_stored), '--')

ax1.plot([3] * len(score_stored), '--')

ax1.plot([-3] * len(score_stored), '--')

ax1.plot([0] * len(score_stored), '--')

ax1.plot([0.5] * len(score_stored), '--')

ax1.plot([-0.5] * len(score_stored), '--')





ax2 = ax1.twinx() # this is the important function

ax2.plot(delta,'r',label="score")





plt.show()



if __name__ == "__main__":

main()

2)天然橡胶跨期套利(节选)

# -*- coding=UTF-8
-*-



from CloudQuant import SDKCoreEngine # 导入量子金服SDK

from CloudQuant import AssetType

from CloudQuant import QuoteCycle

import numpy as np

import pandas as pd

import matplotlib as ml



config = {

'username': 'maodaren', # 访问SDK所使用的用户名,即云宽客的登录名 'password': '111111', # 访问SDK所使用的用户名对应的密码 'rootpath': 'd:/cStrategy/', # 基础数据存放的路径,即客户端所在路径 'initCapitalFuture': 10000000, # 期货初始资金 1千万 'startDate': 20150101, # 回测开始时的日期 'endDate': 20160501, # 回测结束时的日期 'cycle': QuoteCycle.D, # 进行回测前的时间粒度,int类型,定义在枚举QuoteCycle中 'assetType':
AssetType.Future,

'feeRate': 0.001, # 手续费率 'feeLimit': 5, # 最低手续费 'strategyName': '跨品种套利RU', # 策略名 'dealByVolume': True # 撮合是否考虑实际交易量 }

flag = []

def initial(sdk):

count = -1

days = 20

sdk.setGlobal('DAYS', days)

sdk.setGlobal('COUNT', count)



def initPerDay(sdk):

COUNT = sdk.getGlobal('COUNT')

COUNT += 1

sdk.setGlobal('COUNT', COUNT)



def strategy(sdk):

# 获取全局变量 deal_cal =
np.array(sdk.getFactorData('LZ_CN_CF_EXCH_CAL')) # 商品期货交易日历 futureClose =
np.array(sdk.getFactorData("LZ_CN_CF_QUOTE_CLOSE")) # 获取商品期货收盘价因子 futureOI =
np.array(sdk.getFactorData("LZ_CN_CF_QUOTE_OI")) # 获取商品期货持仓量因子 futureList =
np.array(sdk.getFactorData("LZ_CN_CF_CODE")) # 商品期货合约代码因子 heyuechengshu =
np.array(sdk.getFactorData('LZ_CN_CF_MULTIPLIER'))



COUNT = sdk.getGlobal('COUNT')

print '第',COUNT+1,'天'

now_date =
sdk.getNowDate()

# 当前月份 print now_date

now_day = now_date%100

now_month =
now_date/100%100

now_year =
now_date/10000%100

now_date_fresh =
now_month+now_year*100



deal_month_1 = [12,1,2,3]

deal_month_2 = [4,5,6,7]

deal_month_3 = [8,9,10,11]



varietyname = ['RU']

futurecodes = {}

futurecodes_1 = {}



for i in range(len(varietyname)):

futureCode = []

futureIflist = []

futureIflistSite = []

futurecodes[varietyname[i]] = []

futurecodes_1 = {}



for j in range(len(futureList)):

futurecode = futureList[j][:-4]

futurecodes_1[futurecode]=[]

if varietyname[i].lower()
== futurecode[:len(varietyname[i])].lower():

futureIflist.append(futurecode)

futureIflistSite.append(j)

futurecodes[varietyname[i]].append(futurecode)

futurecodes_1[futurecode].append(j)

if futureIflist is None:

print '该类期货目前没有合约'

break

#选择出今年的主力合约 1,5,9月份 main_future = {}

main_future['thisyear']={}

main_future['thisyear']['1']=[]

main_future['thisyear']['5']=[]

main_future['thisyear']['9']=[]

main_future['nextyear']={}

main_future['nextyear']['1'] = []

main_future['nextyear']['5'] = []

main_future['nextyear']['9'] = []

for num in range(len(futurecodes['RU'])):

temp = (int(futurecodes['RU'][num][2]) != 0)

if temp:

if int(futurecodes['RU'][num][2:])/100 == now_year:

if int(futurecodes['RU'][num][2:])%100 == 1:

main_future['thisyear']['1'].append(futurecodes['RU'][num])

elif int(futurecodes['RU'][num][2:])%100 == 5:

main_future['thisyear']['5'].append(futurecodes['RU'][num])

elif int(futurecodes['RU'][num][2:])%100 == 9:

main_future['thisyear']['9'].append(futurecodes['RU'][num])

else:

pass

elif int(futurecodes['RU'][num][2:])/100 == now_year+1:

if int(futurecodes['RU'][num][2:])%100 == 1:

main_future['nextyear']['1'].append(futurecodes['RU'][num])

elif int(futurecodes['RU'][num][2:])%100 == 5:

main_future['nextyear']['5'].append(futurecodes['RU'][num])

elif int(futurecodes['RU'][num][2:])%100 == 9:

main_future['nextyear']['9'].append(futurecodes['RU'][num])

else:

pass



if now_month in deal_month_1: #当前月份为[12,1,2,3],交易5月和9月合约。 if now_month is not 12:



position1 =
futurecodes_1[main_future['thisyear']['5'][0]]

position2 =
futurecodes_1[main_future['thisyear']['9'][0]]

heyuecs =
heyuechengshu[position1]

price_serials_1 =
futureClose[-50:, position1]

price_serials_2 =
futureClose[-50:, position2]

cut =
np.array(np.log(price_serials_1) - np.log(price_serials_2))

cut_std = np.std(cut)

avg = np.nanmean(cut)

st = (cut[-1] - avg) /
cut_std

# 判断flag值 if 0 < st < 0.5:

flag.append(0.5)

elif -0.5 < st < 0:

flag.append(-0.5)

elif 3 > st > 2:

flag.append(2)

elif -3 < st < -2:

flag.append(-2)

elif st > 3:

flag.append(3)

elif st < -3:

flag.append(-3)

else:

flag.append(0)

print '今日flag:%f'%flag[-1]





# 交易今年主力合约 即买入5月合约卖出9月合约 if abs(flag[-1]) == 0.5 : #平仓操作开始触发 #获取持仓列表 print '平仓操作开始触发'

pos =
sdk.getPositions(tsInd = AssetType.Future)

if pos is None:

print '取不到持仓行情信息,退出'

return

if pos:

for i in pos:

quote =
sdk.getQuote(i.code,tsInd=AssetType.Future)

if i.orderType == 1:

sdk.makeOrder(i.code,quote.close,i.optPosition,-1,2)

if i.orderType == 2:

sdk.makeOrder(i.code, quote.close, i.optPosition, -2, 2)

if i.orderType == -1:

sdk.makeOrder(i.code,quote.close,i.optPosition,1,2)

if i.orderType == -2:

sdk.makeOrder(i.code,quote.close,i.optPosition,2,2)



if COUNT > 0 and flag[-1] ==2 and flag[-2] != 2: #开仓操作开始触发 print 'flag = 2,开仓操作开始触发'

account =
sdk.getAccountInfo(AssetType.Future) # 获取账户信息 budget =
account.availableCash # 用可用余额进行建仓操作 if account is None:

return

print 'Account's available
Cash', budget

quote =
sdk.getQuote(main_future['thisyear']['5'][0],tsInd=
AssetType.Future)

quote_1 =
sdk.getQuote(main_future['thisyear']['9'][0],tsInd=
AssetType.Future)

if quote is None or quote_1 is None:

print '取不到合约行情,退出'

return

volume =0.8*budget//(0.13*(quote_1.close+quote.close)*int(heyuecs[0][-1][:2]))

sdk.makeOrder(main_future['thisyear']['5'][0],quote.close,volume,1,2)

sdk.makeOrder(main_future['thisyear']['9'][0],quote_1.close,volume,-1,2)



if COUNT > 0 and flag[-1] ==-2 and flag[-2] != -2: #开仓操作开始触发 print 'flag = -2,开仓操作开始触发'

account =
sdk.getAccountInfo(AssetType.Future) # 获取账户信息 budget =
account.availableCash # 用可用余额进行建仓操作 if account is None:

return

print 'Account's available
Cash', budget

quote =
sdk.getQuote(main_future['thisyear']['5'][0],tsInd=
AssetType.Future)

quote_1 =
sdk.getQuote(main_future['thisyear']['9'][0],tsInd=
AssetType.Future)

if quote is None or quote_1 is None:

print '取不到合约行情,退出'

return

volume =0.8*budget//(0.13*(quote_1.close+quote.close)*int(heyuecs[0][-1][:2]))

print volume

print main_future['thisyear']['5'][0],quote.close,volume

sdk.makeOrder(main_future['thisyear']['5'][0],quote.close,volume,-1,2)

print 1

sdk.makeOrder(main_future['thisyear']['9'][0],quote_1.close,volume,1,2)



if COUNT > 0 and flag[-1] ==3 and flag[-2] != 3: #止损操作开始触发 print 'flag = 3,止损操作开始触发'

account =
sdk.getAccountInfo(AssetType.Future) # 获取账户信息 budget =
account.availableCash # 用可用余额进行建仓操作 if account is None:

return

print 'Account's available
Cash', budget

quote =
sdk.getQuote(main_future['thisyear']['5'][0],tsInd=
AssetType.Future)

quote_1 =
sdk.getQuote(main_future['thisyear']['9'][0],tsInd=
AssetType.Future)

if quote is None or quote_1 is None:

print '取不到合约行情,退出'

return

volume =0.8*budget//(0.13*(quote_1.close+quote.close)*int(heyuecs[0][-1][:2]))

sdk.makeOrder(main_future['thisyear']['5'][0],quote.close,volume,1,2)

sdk.makeOrder(main_future['thisyear']['9'][0],quote_1.close,volume,-1,2)



if COUNT > 0 and flag[-1] ==-3 and flag[-2] != -3: #止损操作开始触发 print 'flag = -3,止损操作开始触发'

account =
sdk.getAccountInfo(AssetType.Future) # 获取账户信息 budget =
account.availableCash # 用可用余额进行建仓操作 if account is None:

return

print 'Account's available
Cash', budget

quote =
sdk.getQuote(main_future['thisyear']['5'][0],tsInd=
AssetType.Future)

quote_1 =
sdk.getQuote(main_future['thisyear']['9'][0],tsInd=
AssetType.Future)

if quote is None or quote_1 is None:

print '取不到合约行情,退出'

return

volume =0.8*budget//(0.13*(quote_1.close+quote.close)*int(heyuecs[0][-1][:2]))

sdk.makeOrder(main_future['thisyear']['5'][0],quote.close,volume,-1,2)

sdk.makeOrder(main_future['thisyear']['9'][0],quote_1.close,volume,1,2)

else:

position1 =
futurecodes_1[main_future['thisyear']['5'][0]]

position2 =
futurecodes_1[main_future['thisyear']['9'][0]]



heyuecs =
heyuechengshu[position1]

print heyuecs





price_serials_1 =
futureClose[-50:, position1]

price_serials_2 =
futureClose[-50:, position2]

cut =
np.array(np.log(price_serials_1) - np.log(price_serials_2))

cut_std = np.std(cut)

avg = np.nanmean(cut)

st = (cut[-1] - avg) /
cut_std

# 判断flag值 if 0 < st < 0.5:

flag.append(0.5)

elif -0.5 < st < 0:

flag.append(-0.5)

elif 3 > st > 2:

flag.append(2)

elif -3 < st < -2:

flag.append(-2)

elif st > 3:

flag.append(3)

elif st < -3:

flag.append(-3)

else:

flag.append(0)

print '今日flag:%d'%flag[-1]





# 交易今年主力合约 即买入5月合约卖出9月合约 if abs(flag[-1]) == 0.5 : #平仓操作开始触发 #获取持仓列表 print '平仓操作开始触发'

pos =
sdk.getPositions(tsInd = AssetType.Future)

if pos is None:

print '取不到持仓行情信息,退出'

return

if pos:

for i in pos:

quote = sdk.getQuote(i.code,tsInd=AssetType.Future)

if i.orderType == 1:

sdk.makeOrder(i.code,quote.close,i.optPosition,-1,2)

if i.orderType == 2:

sdk.makeOrder(i.code, quote.close, i.optPosition, -2, 2)

if i.orderType == -1:

sdk.makeOrder(i.code,quote.close,i.optPosition,1,2)

if i.orderType == -2:

sdk.makeOrder(i.code,quote.close,i.optPosition,2,2)



if COUNT > 0 and flag[-1] ==2 and flag[-2] != 2: #开仓操作开始触发 print 'flag = 2,开仓操作开始触发'

account =
sdk.getAccountInfo(AssetType.Future) # 获取账户信息 budget =
account.availableCash # 用可用余额进行建仓操作 if account is None:

return

print 'Account's available
Cash', budget

quote =
sdk.getQuote(main_future['thisyear']['5'][0],tsInd=
AssetType.Future)

quote_1 =
sdk.getQuote(main_future['thisyear']['9'][0],tsInd=
AssetType.Future)

if quote is None or quote_1 is None:

print '取不到合约行情,退出'

return

volume =0.8*budget//(0.13*(quote_1.close+quote.close)*int(heyuecs[0][-1][:2]))

sdk.makeOrder(main_future['thisyear']['5'][0],quote.close,volume,1,2)

sdk.makeOrder(main_future['thisyear']['9'][0],quote_1.close,volume,-1,2)



if COUNT > 0 and flag[-1] ==-2 and flag[-2] != -2: #开仓操作开始触发 print 'flag = -2,开仓操作开始触发'

account =
sdk.getAccountInfo(AssetType.Future) # 获取账户信息 budget =
account.availableCash # 用可用余额进行建仓操作 if account is None:

return

print 'Account's available
Cash', budget

quote =
sdk.getQuote(main_future['thisyear']['5'][0],tsInd=
AssetType.Future)

quote_1 =
sdk.getQuote(main_future['thisyear']['9'][0],tsInd=
AssetType.Future)

if quote is None or quote_1 is None:

print '取不到合约行情,退出'

return

volume =0.8*budget//(0.13*(quote_1.close+quote.close)*int(heyuecs[0][-1][:2]))

print volume

print main_future['thisyear']['5'][0],quote.close,volume

sdk.makeOrder(main_future['thisyear']['5'][0],quote.close,volume,-1,2)

print 1

sdk.makeOrder(main_future['thisyear']['9'][0],quote_1.close,volume,1,2)



if COUNT > 0 and flag[-1] ==3 and flag[-2] != 3: #止损操作开始触发 print 'flag = 3,止损操作开始触发'

account =
sdk.getAccountInfo(AssetType.Future) # 获取账户信息 budget =
account.availableCash # 用可用余额进行建仓操作 if account is None:

return

print 'Account's available
Cash', budget

quote =
sdk.getQuote(main_future['thisyear']['5'][0],tsInd=
AssetType.Future)

quote_1 =
sdk.getQuote(main_future['thisyear']['9'][0],tsInd=
AssetType.Future)

if quote is None or quote_1 is None:

print '取不到合约行情,退出'

return

volume =0.8*budget//(0.13*(quote_1.close+quote.close)*int(heyuecs[0][-1][:2]))

sdk.makeOrder(main_future['thisyear']['5'][0],quote.close,volume,1,2)

sdk.makeOrder(main_future['thisyear']['9'][0],quote_1.close,volume,-1,2)



if COUNT > 0 and flag[-1] ==-3 and flag[-2] != -3: #止损操作开始触发 print 'flag = -3,止损操作开始触发'

account =
sdk.getAccountInfo(AssetType.Future) # 获取账户信息 budget =
account.availableCash # 用可用余额进行建仓操作 if account is None:

return

print 'Account's available
Cash', budget

quote =
sdk.getQuote(main_future['thisyear']['5'][0],tsInd=
AssetType.Future)

quote_1 =
sdk.getQuote(main_future['thisyear']['9'][0],tsInd=
AssetType.Future)

if quote is None or quote_1 is None:

print '取不到合约行情,退出'

return

volume =0.8*budget//(0.13*(quote_1.close+quote.close)*int(heyuecs[0][-1][:2]))

sdk.makeOrder(main_future['thisyear']['5'][0],quote.close,volume,-1,2)

sdk.makeOrder(main_future['thisyear']['9'][0],quote_1.close,volume,1,2)



if now_month == 3 and 25<=now_day<=30: #清仓 print '月末平仓'

pos =
sdk.getPositions(tsInd=AssetType.Future)

if pos is None:

print '取不到持仓行情信息,退出'

return

if pos:

for i in pos:

quote =
sdk.getQuote(i.code, tsInd=AssetType.Future)

if i.orderType == 1:

sdk.makeOrder(i.code, quote.close, i.optPosition, -1, 2)

if i.orderType == 2:

sdk.makeOrder(i.code, quote.close, i.optPosition, -2, 2)

if i.orderType == -1:

sdk.makeOrder(i.code, quote.close, i.optPosition, 1, 2)

if i.orderType == -2:

sdk.makeOrder(i.code, quote.close, i.optPosition, 2, 2)
def main():

# 将策略函数加入 config['initial'] = initial

config['strategy'] = strategy

config['preparePerDay'] = initPerDay

# 启动SDK

SDKCoreEngine(**config).run()



if __name__ == "__main__":

import time

starttime = time.time()

main()

endtime = time.time()

print endtime -
starttime

参考资料:《绝对收益策略系列研究之二——商品期货套利策略》,海通证券金融工程研究团队 

量子投研管理平台下载地址:http://www.yunkuanke.com/download


更多精彩,欢迎关注公众号量化投资与金融科技(微信号:QuantumFintech)

猜您喜欢

更多与期货侯庆华相关文章