价差交易系统(MC版)_第1页
价差交易系统(MC版)_第2页
价差交易系统(MC版)_第3页
价差交易系统(MC版)_第4页
价差交易系统(MC版)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

价差交易系统(MC版)这里介绍如何使用PT组合进行期货交易策略的开发和回测,特别是针对螺蚊与热卷等期货合约的价差交易策略。详细阐述了策略的构建过程,包括数据准备、策略逻辑设计和策略信号生成等关键步骤,并对策略的交易逻辑和特点进行了深入分析。一、数据准备首先,强调数据准备的重要性。在进行期货交易策略开发之前,需要收集并准备好相关的数据。这些数据通常包括历史行情数据,如开盘价、收盘价、最高价、最低价和成交量等。对于螺蚊与热卷的价差交易策略,需要分别获取这两个期货合约的历史收盘价数据。二、策略构建接下来,介绍如何构建交易策略。策略构建主要包括以下几个步骤:定义策略逻辑:根据市场经验和研究,确定交易策略的基本逻辑和规则。本策略中提到的价差交易策略是基于螺蚊与热卷期货合约的收盘价差进行交易的。设置回测参数:确定回测的时间范围、资金规模、手续费率等参数,以便对策略进行历史数据上的验证。三、策略逻辑与特点分析1.价差计算:策略首先计算螺蚊与热卷期货合约的收盘价差,并对其进行100周期的移动平均处理,以平滑价差波动。2.上下轨设定:基于价差的移动平均值,计算其30周期的最大值和最小值,作为交易的上下轨。当价差突破上轨时,认为价差有进一步扩大的趋势,反之则有缩小的趋势。3.交易信号生成:根据价差与上下轨的关系,生成相应的交易信号。例如,当价差突破上轨时,生成做多螺蚊期货合约和做空热卷期货合约的信号;当价差跌破下轨时,生成做空螺蚊期货合约和做多热卷期货合约的信号。4.策略执行与优化:通过历史数据回测,评估策略的性能表现,并根据需要对策略进行调整和优化。构建策略的有效性和适用性。例如,可以尝试使用更多的期货品种和更复杂的策略逻辑来提高策略的收益和稳定性;同时,也可以结合实盘数据进行验证和调整,以确保策略在实际交易中的可行性。1、(以螺蚊与热卷为例做PT价差)2、建立三个策略组,分别是做价差策略、做热扎品种策略、做螺纹品种策略;这三组里面的商品除了第一组要有一个data1和data2两组数据外,另外两个都是单独的数据;3、分别加上三个策略第一个策略用来计算价差和进场的逻辑框架。第二策略用来进一根腿,第三个策略进另一根腿;分别如下:计算价差的信号策略:spread-01代码注解:Input:price1(closeofdata1),price2(closeofdata2);//输入参数,price1为数据1的收盘价,price2为数据2的收盘价。var:sp(0),top(0),bot(0),esp(0);//定义变量,sp用于存储价格1和价格2的平均价差,top和bot分别用于存储价差的30周期最高价和最低价,esp未明确用途暂设为0。sp=Average(price1-price2,100);//计算价格1和价格2的价差的100周期平均值并赋值给sp。top=Highest(sp,30);//计算sp的30周期最高价并赋值给top。bot=Lowest(sp,30);//计算sp的30周期最低价并赋值给bot。ifsp>top[1]thenbegin//如果当前价差大于上一根K线的30周期最高价。pmm_set_global_named_num("gv1",1);//设置名为"gv1"的全局变量为1。pmm_set_global_named_num("gv2",-1);//设置名为"gv2"的全局变量为-1。end;ifsp<bot[1]thenbegin//如果当前价差小于上一根K线的30周期最低价。pmm_set_global_named_num("gv1",0);//设置名为"gv1"的全局变量为0。pmm_set_global_named_num("gv2",0);//设置名为"gv2"的全局变量为0。end;第一根腿的策略信号:spread-02注解:value2=pmm_get_global_named_num("gv2");//获取名为"gv2"的全局变量的值并赋值给value2。ifvalue2=-1andmarketposition<>-1thensellshortnextbaratmarket;//如果value2等于-1且当前不是空头持仓,则在下一根K线以市场价卖出开仓。ifvalue2=0andmarketposition=-1thenbuytocovernextbaratmarket;//如果value2等于0且当前是空头持仓,则在下一根K线以市场价买入平仓。第二根腿的策略信号:spread-04注解value1=pmm_get_global_named_num("gv1");//获取名为"gv1"的全局变量的值并赋值给value1。ifvalue1=1andmarketposition<>1thenbuynextbaratmarket;//如果value1等于1且当前不是多头持仓,则在下一根K线以市场价买入开仓。ifvalue1=0andmarketposition<>0thensellnextbaratmarket;//如果value1等于0且当前不是空仓,则在下一根K线以市场价卖出平仓。计算价差的信号策略:spread-01代码:Input:price1(closeofdata1),price2(closeofdata2);var:sp(0),top(0),bot(0),esp(0);sp=Average(price1-price2,100);top=Highest(sp,30);bot=Lowest(sp,30);ifsp>top[1]thenbeginpmm_set_global_named_num("gv1",1);pmm_set_global_named_num("gv2",-1);end;ifsp<bot[1]thenbeginpmm_set_global_named_num("gv1",0);pmm_set_global_named_num("gv2",0);end;第一根腿的策略信号:spread-02代码:value2=pmm_get_global_named_num("gv2");ifvalue2=-1andmarketposition<>-1thensellshortnextbaratmarket;ifvalue2=0andmarketposition=-1thenbuytocovernextbaratmarket;第二根腿的策略信号:spread-04代码:value1=pmm_get_global_named_num("gv1");ifvalue1=1andmarketposition<>1thenbuynextbaratmarket;ifvalue1=0andmarketposition<>0thensellnextbaratmarket;价差的逻辑如下:1、价差是用data1的收盘价减data2的收盘价,然后对它做100周期的平均线。【初衷是平滑价差,否则价差可能跳脱的厉害】;2、做这条100周期均线的30周期最大和最小计算,即计算在30个数据周期内均线的最大值和最小值,这样就相当于做了一个上下轨,在这之间的我们可以认为是无效的振荡,也就是说我们思路也是做价差趋势,即顺着价差的趋势做交易。3、如何这个价差的平均值大于上轨了则发出做多前腿的指令,同时发出做空后腿的指令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论