付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、策略研发平台(单合约日内)使用说明V1.0平台简介本策略研发平台旨在提供高性能量化交易策略研发和部署跨平台(Windows和Linux)方案,以稳定和安全的架构设计;快速高效的策略回测和实盘运行一体化框架;灵活易扩展的接口;以及策略评估工具辅助策略研发者抓住市场机遇,形成正规化量化策略研发过程,取得市场成功。稳定和安全的架构设计:借鉴高盛等量化交易程序化框架,有效处理行情、交易、策略等线程间通讯,避免行情、成交回报信息处理阻塞网络通讯,保障交易程序稳定运行。策略信号从策略研发者部署机器直接发往券商柜台,避免策略信号泄密,被第三方不正当使用;有效保障策略研发者知识产权,避免策略保留造成生存期缩短
2、或者资金规模缩小。快速高效的策略回测和实盘运行一体化框架:良好的面向对象程序设计,促使策略回测和实盘运行一体化,在不改动策略自身代码的前提下,只用外层调用局部修改即可支持策略回测评估、参数优化;以及实盘运行。C+的程序设计有效保证策略的回测和实盘执行效率;策略回测参数择优过程还可配合OPENMP等多核程序设计技术,大量节省优化时间,提高策略测试和验证效率。灵活易扩展的接口:此平台采用面向对象程序设计方法,策略指标均采用面向对象方式进行封装,均派生于IIndexCalculator接口类。客户可以通过继承IIndexCalculator类,自行扩展技术指标。策略评估工具:自动化产生策略绩效分析指
3、标(包括夏普比、最大回撤、盈亏比等),科学化地分析策略风险和收益。与策略研发者互动,提供交易成本估算建议、程序实现优化建议等咨询服务,协助审核量化流程避免策略先窥风险和过度拟合。平台配置Windows平台第一步。安装vs2008(推荐)或更高版本。第二步。安装和配置pthread库与Boost库(1)pthread库的安装下载pthread库的安装程序pthreads-w32-2-8-0-release.exe,双击运行,注意点击Browse选择安装路径并记住安装路径,以便后面配置系统变量时使用。(2)Boost库的安装下载Boost库1_50版本,也可下载boost自行编译为库。记住Boos
4、t库的存档路径,以便后面配置系统变量时使用。BOOST官网: HYPERLINK / /也可通过我的微盘下载:(3)配置环境变量右键点击“我的电脑”选择属性,进入系统属性,点击“高级”选项卡,点击“环境变量”进入编辑界面,点击新建按钮,为系统创造两个环境变量: 变量名分别为PTHREAD和BOOST,变量值分别为(1),(2)中提到的安装路径。第三歩,打开平台VS项目文件,配置项目环境第四步,对平台系统进行编译,成功。Linux平台推荐ubuntu x64(一定要64位的Linux系统)第一步,安装pthread、boost库第二步,安装Intel C+ Compiler第三步,修改帐号目录下
5、的 .bashrc文件以支持ICC环境,在.bashrc文件末尾添加“source /opt/intel/bin/compilervar.sh intel64”第四步,通过make命令编译程序使用说明3.1历史回测直接运行strategy.v9.exe,或者直接在VS框架中调试运行,程序默认进行历史回测。用于历史回测的测试数据放入软件包目录下的Strategy3.SIMPLEstrategytestdata文件夹:文件名格式为:“合约_日期.txt”例如:IF1201_20111222.txt;文件内容格式为:第一行以“#”开头,后面分别为“昨结算价t昨收盘价t昨持仓量”;后面每行数据为”时间
6、t买价t买量t卖价t卖量t成交价t累积成交量t持仓量”;程序中对于回测的一些修改配置int BackTest() (Strategy.cpp )(1)设置tick的时间映射,股指设置为& TMAP_IF,商品设置为& TMAP_GOODS/设置TickMapping,股指设置为& TMAP_IF,商品设置为& TMAP_GOODSconst CTickMapping * tmap = & TMAP_IF;(2)设置指标计算,首先用指标类初始化对象,然后调用对象的run函数。指标类是IIndexCalculator的派生类,我们会不断增加新的指标,当然使用者也可以自己编写,详细说明请参考“指标说
7、明”/在这里添加你的指标,指标初始化参数的含义请见“指标说明”CEMAIndex ema1(MDReader-GetLastPrice(Inst.c_str(),360,tmap-nTotalTick);CEMAIndex ema2(MDReader-GetLastPrice(Inst.c_str(),1200,tmap-nTotalTick);/调用Run,Run方法的参数不必修改 ema1.Run(TickQueue,TickQueueSize, *tmap);ema2.Run(TickQueue,TickQueueSize, *tmap);(3)设置策略对象,策略对象 CStrategy
8、Test st的例子构造函数为: CStrategyTest(const TThostFtdcDateType TradingDay, const TThostFtdcInstrumentIDType InstrumentID, TThostFtdcPriceType pricetick, char closelabel, const CTickMapping &tm, CTickMapping & opentime, IMarketDataReader & md, IIndexCalculator & avg1, IIndexCalculator & avg2, ITrader & oi,C
9、SingleInstrumentStrategyPerformance & perf, ILog & logger = DefaultLogger);参数含义分别为:交易日期,合约名称,最小价格跳动单位,平今平昨标识,tick时间映射,交易时间tick映射,数据实例,指标1,指标2,交易实例,策略表现实例。其中:最小价格跳动单位,平今平昨标识,ema1,ema2,根据你具体的情况而定。除此之外,还可以定义成员或者函数用于支持策略程序的运行需要。详见StrategyTest.h/在这里将设置回测的止损偏移量i从n到m,以便后面得到止损偏移量i从n到m的策略表现。例如这里设置/i的起始值为,就是说
10、止损值为x价格最小跳动单位;如果是股指则为x0.2=4个点。程序将得到止损偏移量从到共个止损价格下面的策略不同表现,for (int i = 20; i 60; i+)/此处不必修改ITrader * oi = CreateBackTestTraderInstance(NULL);/在此处设置策略实例初始化参数,策略初始化的参数含义为:CStrategyTest st(tdate.c_str(),Inst.c_str(),0.2,THOST_FTDC_OF_CloseToday,*tmap,opentime,*MDReader,ema1,ema2,*oi,*(Performancei-20);
11、/设置止损偏移量st.SetStopOffset(i);st.Run(TickQueue,TickQueueSize,*tmap);delete oi;/endfor历史回测完成后,程序自动在软件包目录下的Strategy3.SIMPLEstrategyperformance下生成策略表现文件,文件名可以自行定义:软件包目录下的Strategy3.SIMPLEstrategyperformance下./策略表现文件生成,此例生成上面个止损位下面的策略表现for (int i = 0; iSavePerformance(perf);delete Performancei;文件格式:日期、收益、总
12、交易次数、总开仓次数、回合数、胜利回合数。其中:收益是指策略表现中的收益是指赢得了n个价格跳动最小单位。比如股指,收益文件中显示为10,意思就是赢了2个点;显示为-10,则表示亏了2个点。3.2 模拟盘交易可以在命令行中运行strategy.v9.exe simutrade,即加上参数simutrade;或者在VS平台上设置调试参数:project-properties-Debugging-Command Argument中设置参数simutrade配置strategy.cfg文件:(1)配置行情账号MD;MD = INVESTOR_ID, PASSWORDMD = 账号,密码INSTRUME
13、NT = 合约名(2) 配置交易账号TRADERTRADER = 账号,密码(3) 配置策略参数STRATEGY;STRATEGY = NAME, INSTRUMENT, 价差变动单位, 是否有平今指令STRATEGY = 策略名称,合约名,最小价格变动单位,0代表没有1代表有配置要注意:策略名称随意填写和合约名的大小写程序中对于模拟交易的一些修改:int RealTime(Strategy.cpp )(1)设置tick的时间映射,股指设置为& TMAP_IF,商品设置为& TMAP_GOODS/设置TickMapping,股指设置为& TMAP_IF,商品设置为& TMAP_GOODScon
14、st CTickMapping * tmap = &TMAP_IF;/(2)设置指标计算,首先用指标类初始化对象,然后用CDataSniffer的实例ds去添加。指标类是IIndexCalculator的派生类,我们会不断增加新的指标,当然使用者也可以自己编写,详细说明请参考“指标说明”/在这里添加你的指标,指标初始化参数的含义请见“指标说明”CEMAIndex ema1(md-GetLastPrice(InstrumentID.c_str(),360,tmap-nTotalTick,0,120);CEMAIndex ema2(md-GetLastPrice(InstrumentID.c_st
15、r(),1200,tmap-nTotalTick,0,120);ds-AddIndexCalculator(&ema1);ds-AddIndexCalculator(&ema2);(3)设置策略对象实例初始化参数,/在此处初始化策略实例。一般在这里设置商品最小跳动价格,平今平昨标志,指标等。其它参数的含义见回测中的介绍。 CStrategyTest st(today.c_str(),NULL,0.2,THOST_FTDC_OF_CloseToday,*tmap,opentime, *md,ema1,ema2,*oi,Performance,Logger);(4)设置止损偏移量/在此处设置止损偏
16、移量st.SetStopOffset(25);(5)日内交易完成之后,程序自动生成交易日志文件:软件包目录下的Strategy3.SIMPLEstrategy下的Log.txt。日内交易完成后,程序自动生成策略表现文件Return_策略名_交易日.txt:软件包目录下的Strategy3.SIMPLEstrategyperformance_real下.文件格式:日期、收益、总交易次数、总开仓次数、回合数、胜利回合数。其中:收益是指策略表现中的收益是指赢得了n个价格跳动最小单位。比如股指,收益文件中显示为10,意思就是赢了2个点;显示为-10,则表示亏了2个点。3.3 实盘交易可以在命令行中运行
17、strategy.v9.exe realtrade,即加上参数realtrade;或者在VS平台上设置调试参数:project-properties-Debugging-Command Argument中设置参数realtrade其它配置和模拟盘交易一致,不过要注意的是,程序实盘交易的柜台设置是华西期货的交易柜台,因此,需要在华西期货开户获得交易账户和密码方可进行实盘交易。3.4 指标说明指标的使用:指标的初始化:指标类都继承于IIndexCalculator,其中有几个重要的参数在任何指标使用之前都必须初始化:winsize窗口,step间隔,数据窗口是指一个固定时间,比如5分钟的数据窗口,
18、就是用当前5分钟的数据进行统计值计算;而间隔就是在数据窗口内,取值的步长。关于窗口和步长的理解,可以参考我的博文: HYPERLINK /s/blog_56e7157f01016kdr.html /s/blog_56e7157f01016kdr.html;以例子中的指标CEMAIndex为例:CEMAIndex ema1(md-GetLastPrice(InstrumentID.c_str(),360,tmap-nTotalTick,0,120);参数分别的意思是:最新成交价数据,用md的GetLastPrice获取,这里一般不用修改;窗口,这里的单位是tick,例子中的360含义是360个t
19、ick,也就是180秒也就是3分钟;Tick数据缓冲大小,用tmap-nTotalTick获取,这里一般不用修改;Alpha值,默认为0;间隔,这里单位是tick,例子中的120含义是120个tick,也就是60秒也就是1分钟。那么例子里面的ema指标就是指最近3分钟的成交价按照1分钟间隔取值计算的ema指标。大多数指标需要你设置窗口和间隔。指标的调用指标的调用是通过下标调用相对tick下的指标值,例如,当前的ema值为emacurrentTick,那么取上一个tick值的ema就用emacurrentTick-1,同理,你可以取到任意时刻的指标值用于你的策略分析;常用取值的调用除了指标值以外
20、,还有以下常用的取值用于策略分析,以下值均为数组形式,用下标访问:成交价:LastPricecurrentTick;成交增量:VolumecurrentTick;卖一价:AskPricecurrentTick;卖一量:AskVolumecurrentTick;买一价:BidPricecurrentTick;买一量:BidVolumecurrentTick;持仓增量OpenInterestcurrentTick;以下值直接取值:昨结算价:YdSettlementPrice;昨收盘价:YdClosePrice;涨停价UpperLimitPrice;跌停价LowerLimitPrice;昨持仓量Yd
21、OpenInterest;以上值的初始化方法如下:首先在CStrategyTest类中声明需使用的合约变量成员(StrategyTest.h),例如:const double * LastPrice;const double * AskPrice;const double * BidPrice;然后在CStrategyTest类的构造函数中初始化需使用的合约变量(StrategyTest.cpp) if(InstrumentID) strcpy(this-InstrumentID, InstrumentID);RegisterRelatedInstrument(InstrumentID);/初
22、始化合约数据实例InstrumentData = md.GetInstrumentData(InstrumentID);/在这里用InstrumentData-Get方法初始化你要用的数据。LastPrice = InstrumentData-GetLastPriceToday();AskPrice = InstrumentData-GetAskPriceToday();BidPrice = InstrumentData-GetBidPriceToday();es = CreateSimpleExecutionStrategy(this,oi,InstrumentData,logger);然后就可以按照相应方式调用了。指标的编写:见下一个文档版本。3.5 策略编写本程序完全将订单交易执行抽离出来,交由订单管理线程处理,因此,在策略编写时使用者只需在CStrategyTest:DoAction里按照自己的业务逻辑设置状态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化工厂入职培训课件
- 飞船乐队介绍
- 钢结构机器人焊接技术应用
- 2026年福建莆田市司法局市学园公证处编外人员4人备考考试试题及答案解析
- 2026上海第二工业大学招聘66人备考考试题库及答案解析
- 2026年荆州市企事业单位人才引进833人备考考试题库及答案解析
- 2026广东中山市阜沙镇社区卫生服务中心招聘合同制工作人员8人备考考试题库及答案解析
- 俱乐部元宵活动策划方案(3篇)
- 长治东站-施工方案(3篇)
- 飞机安全员技能培训课件
- 2026西藏自治区教育考试院招聘非编工作人员11人笔试备考试题及答案解析
- 炎症因子风暴与神经递质紊乱的干细胞干预策略
- 栏杆安装施工方案要点
- 2026年及未来5年中国点胶机行业市场深度分析及发展前景预测报告
- 2025四足机器人场景应用发展蓝皮书简版
- 2026年1月浙江省高考(首考)英语试题(含答案)+听力音频+听力材料
- 中国大型SUV市场数据洞察报告-
- 太阳能路灯施工组织设计
- 起重机械的安全围挡与隔离区域
- 水泥直塑施工方案
- 山东省安全员B证考试题库(推荐)
评论
0/150
提交评论