【MultiCharts(MC)程序化(量化)网上培训学习系列】第205节:在multicharts平台进行商品期货套利图表设置与商品程序化套利交易实现方式【1】
[attach]28455[/attach]【MultiCharts(MC)程序化(量化)网上培训学习系列】第205节:在multicharts平台进行商品期货套利图表设置与商品程序化套利交易实现方式【1】
之前写过两个在multicharts平面上面套利方式:
第181节:利用插入商品图表方式构建任意两个品种的商品价差或比率,探讨套利机制及盈利原理:[url=http://www.qhlt.cn/thread-108540-1-1.html]http://www.qhlt.cn/thread-108540-1-1.html[/url];
第178节:品种2价格上穿或下穿均线在品种1买入与卖出【可应用于大周期判断小周期进场或套利中品种1做多则品种2做空类策略】:[url=http://www.qhlt.cn/thread-108312-1-1.html]http://www.qhlt.cn/thread-108312-1-1.html[/url]
这两个方式均是在图表中通过插入子图的方式调用data2 ,然后计算价差,进行单腿的交易。然后再通过对调品种实现另一条腿的下单交易。但是细心的朋友就会发现在很小的周期比较说一分钟周期上面会出现两个腿非同时进场与出场的问题,时间越小,这种差距就越明显。原因在于价差这个东西即用data1减data2,无论是想求的是open,high,low,close都会在细微时间跨度上出现两个图表的不一致,即使是两个同样品种的同周期的价格差也是有可能不一样的。这个问题要想在根本上面解决只有一种情况就是统一只有一个数据来源。而在MC平台的图表方面全局变量不能在回测中实用,这导致了套利想在细化上面没法回测。
这是MC软件的硬伤,现在无解;不过在PT也就是无图表交易或者说组合交易中是可以解决的,因为在PT程序化中有一个可以用来回测使用 的全局变量存取我是提取的函数:pmm_set_global_named_num和pmm_get_global_named_num;第一个是设置,第二个是提取。
但是这里也有一个说明即计算价差的图表一定不要用来做交易,只做价差的计算。然后另设置两个策略组进行两个腿的交易,这样即使是在秒级或分钟级别上面也是不会再出错的了。原理上面已经说了价差计算只在一个数据组里面计算。就不会出现不一致的情况了。
1、注册论坛会员免费看公开课视频源码;升级至付费会员免回复查看策略源码、文档;升级至prime会员无阻碍畅游全站期货策略、源码、回测、优化、视频、教程、图书、文档,参考:[url]http://www.qhlt.cn/thread-37840-1-1.html[/url];
2、通过期货论坛推荐新开立期货账号,可免费获得付费会员或prime会员资格并享受账户特惠政策,参考:[url]http://www.qhlt.cn/thread-25049-1-1.html[/url];
3、通过期货论坛开立期货账号并绑定MC享受专属优惠政策:[url]http://www.qhlt.cn/thread-80442-1-1.html[/url];
4、PC购买/服务器托管如何选择及量化软件相关设置指导:[url]http://www.qhlt.cn/thread-105169-1-1.html[/url];
5、全网最大策略源码区:[url]http://www.qhlt.cn/forum-109-1.html[/url] ;策略精选推荐优化区:[url]http://www.qhlt.cn/forum-874-1.html[/url];
6、期货论坛官方MC量化策略群,对视频中策略有想法、建议、优化以结交量化好友,动动手,扫二维码加入微信群,跟一众量化好友切磋吧:[url]http://www.qhlt.cn/thread-262-1-1.html[/url] ; 之前写过的实例:
[table=98%]
[tr][td]1、利用GVSetNamedInt与GVSetNamedInt进行全局变量的传递做套利方案:[url=http://www.qhlt.cn/thread-111540-1-1.html]http://www.qhlt.cn/thread-111540-1-1.html[/url];
2、利用pmm_set_global_named_num与pmm_get_global_named_num进行全局变量的传递做套利方案:[url=http://www.qhlt.cn/thread-111539-1-1.html]http://www.qhlt.cn/thread-111539-1-1.html[/url];
3、传统利用主副图做价差套利方案:第181节:利用插入商品图表方式构建任意两个品种的商品价差或比率,探讨套利机制及盈利原理:[url=http://www.qhlt.cn/thread-108540-1-1.html]http://www.qhlt.cn/thread-108540-1-1.html[/url];
4、第178节:品种2价格上穿或下穿均线在品种1买入与卖出:[url=http://www.qhlt.cn/thread-108312-1-1.html]http://www.qhlt.cn/thread-108312-1-1.html[/url];
5、利用全局变量Gv_plus中PutMCDataD关键词与GetMCDataD关键词进行全局变量传递套利方案:[url=http://www.qhlt.cn/thread-111587-1-1.html]http://www.qhlt.cn/thread-111587-1-1.html[/url];[/td][/tr]
[/table] [b]第三种方案:PT方式进行程序化交易设置与程式码编写[/b]
1、建立PT组(以螺纹与热扎为例);
[attach]28454[/attach]
2、建立三个策略组,分别是做价差策略、做热扎品种策略、做螺纹品种策略;
这三组里面的商品除了第一组要有一个data1 和data2两组数据外,另外两个都是单独的数据;
3、分加加上三个策略,第一个策略用来计算价差和进场的逻辑框架。第二策略用来进一根腿,第三个策略进另一根腿;分别如下:
计算价差的信号策略:spread - 01
**** Hidden Message *****
第一根腿的策略信号:spread - 02
**** Hidden Message *****
第二根腿的策略信号:spread - 04
**** Hidden Message *****
[size=14.4px]关注课程微信订阅号(每天上架新策略、跟着视频学编程)[/size]
[img=170,170]http://www.qhlt.cn/diypic/Public.png[/img] 上面我做价差的逻辑如下:
1、价差是用data1的收盘价减data2的收盘价,然后对它做100周期的平均线。【初衷是平滑价差,否则价差可能跳脱的厉害】;
2、做这条100周期均线的30周期最大和最小计算,即计算在30个数据周期内均线的最大值和最小值,这样就相当于做了一个上下轨,在这之间的我们可以认为是无效的振荡,也就是说我们思路也是做价差趋势,即顺着价差的趋势做交易。
3、如何这个价差的平均值大于上轨了则发出做多前腿的指令,同时发出做空后腿的指令。因为计算只是基于一组数据的计算,所以理论上来说这个做多和做空的指令一定是同一时间发出来的。
4、将这两个指令通过全局变量传递到下面的策略一和策略二;
5、data1品种接受到做多指令后第一时间发出委托,data2品种接受到做空指令后第一时间发出委托。这两笔委托因为接受的判断信号来源是一个,所以一定是同时发出做多或做空的指令,而且他们两个一定是完全相反的。
6、对于做多和做空的逻辑是大家可以放飞思想尽情想象的地方。 随便检查任意两个操作套利对,都是准确的进行了配对的,时间,多空,进出都完美的对应起来了。
[attach]28456[/attach] 套利难的地方并不是能不能实现同进同出,难在如何套出钱来。我就一直没有找到可以套出钱的方式,现在只能用最笨的方式赚钱。
不过仍然在这里祝愿大家套利成功! 下一期我将写一个在工作区图表上面实现套利的方案。{:smile:} 视频资源:
[mp4]http://mp4.qhlt.club/Rec%200205.mp4[/mp4] 学习 好哦哦 谢谢分享 受用了 受用了
页:
[1]