金字塔程式化交易设计指南(高级篇).doc_第1页
金字塔程式化交易设计指南(高级篇).doc_第2页
金字塔程式化交易设计指南(高级篇).doc_第3页
金字塔程式化交易设计指南(高级篇).doc_第4页
金字塔程式化交易设计指南(高级篇).doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

目 录 第一章 程序化交易的原理 . 3 第二章 程序化交易的启用 . 4 开启交易软件 . 4 启动图表程序化交易 . 5 启动后台程序化交易 . . . 6 第三章 交易系统的编写规则 . 9 1、数据引用 . 12 2、特殊数据引用 . 12 3、公式体构成结构 . 13 4、快速入门 . 15 第四章交易测试系统和程式化交易函数 .201、测试平台的基本内容和架构 .202、交易测试系统函数(43) .223、程式化交易函数(41) .284、账户函数介绍(37) .33第五章 交易系统编写范例和常见问题 . 35 1、趋势交易 . 35 2、振荡交易 . 43 3、日内交易 . 46 4、套利交易和多账户交易 . 49 5、常见问题 . 51 第六章 程式化交易进行曲 . 57 1、完整交易系统的组成 . 57 2、如何转换为程式化交易系统 . 58 3、程式化交易的前提、步骤 . 60 4、图表程式化交易 . . 64第一章 程序化交易的原理程序化交易是金字塔在成功运行盈透(IB)外盘自动交易系统的基础上,进一步研发、升级,智能连接到上海期货信息技术有限公司的综合交易平台(CTP )实现的。综合交易平台借鉴代表了目前国际衍生品领域交易系统先进水平的上期所“新一代交易所系统”的核心技术,采用的创新的完全精确重演的分布式体系架构,其保证所有输入经系统分布式并行处理后均有确定结果,并能自适应 UDP 可靠多播通讯技术,构建交易系统的核心信息总线,改进了内存数据库的多重索引技术、直接外键技术和高效事务管理技术,并首创了多业务主机同时工作、互为备份和自由加入的集群容错可靠性保障机制,攻克了性能和可靠性关键技术难关,获得 5 项软件著作权。系统并发处理能力强大,委托性能超过 2000笔/秒,软件本身可达 8000 笔/秒,支持同时在线客户并发数为 1 万个客户/秒,且可以通过增加前置机进一步扩充。系统主要面向期货公司,也可用于基金公司、投资公司等进行期货交易。原理图如下:从以上原理图可以看出,程序化交易是金字塔软件和上期技术公司的综合交易平台协同工作来实现的。客户通过程序化交易系统发出的委托指令仍然是通过上期技术公司的综合交易平台远程交易系统进入期货公司和交易所的撮合中心的。通过程序化交易来进行下单和客户通过上期技术公司的综合交易平台下单具有同等的安全性和可靠性。第二章 程序化交易的启用1、 开启金字塔软件2、点击【连接】- “国内期货”行情3、启动委托交易平台,点击【委托】选定期货公司,输入账号、密码和验证码后,点击“登陆”4、 启动图表交易1) 选择要交易的模型2) 选择【交易】-【图表程式化交易】,将出现3)设置好相关参数,点击【启动交易】,确认之后,将开始程式化交易,交易详情会记录在表格上。交易结束,点击【停止交易】5、 启动后台程式化交易,按Ctrl + A 1)选“新增条件”,将出现2) 参数设置 a) 按“指标公式” ,选择你的模型和使用周期;b) 再加入选定的品种;c) 其它各种设置,注意:打勾“允许程式化交易” ; 其中,可将“下单需手工确认”关闭;设定“预警时间间隔”及“时间范围启用” ;。 ; 然后按“确认” ;最后点击“启动预警”。3)在程式化交易过程中,用户可随时点击【监控】,观察系统运行情况,并可在信心爆棚时,手工加减仓干预。如图所示第二章 交易模型的编写规则在金字塔的主图分析界面,按功能键F3就会出现公式编辑器的界面,在“交易系统”上按鼠标右键,选“新建公式”通过该界面我们可以了解该系统的公式设定的内容和相关规则: A:每一个指标公式必须有一个名称,这个名称由字母和数字组成,公式名称在同类公式中必须是唯一的,例如不能同时存在两个AAA系统公式,公式名称最多16个字符。 B:公式说明是一段文字,用来简单描述该公式的含义,在公式列表时显示这段文字,这段文字不宜过长。 C:计算参数:计算参数用来替代公式中所需要的常数,在使用时可以方便地调节参数,不必修改公式就可以对计算方法进行调节。计算参数包括参数名称、最小值、最大值、缺省值四个部分,参数名称用于标识参数,计算公式时采用缺省值计算,而最小值和最大值是参数的调整范围。 D:公式编辑栏,本栏为公式编辑的文本区。 E:密码保护,选中该栏目为指标公式加密。 F:公式注释是一段文字,相对于公式描述而言它可以很长,主要用来描述一个公式如何使用、注意事项、计算方法等等。 G:周期的设定:数据分析周期就是相邻两组数据的时间间隔,可能是从几秒、1分钟到1000天间的任意间隔;还可以是分笔成交分析周期,这种情况下时间间隔不定。 公式系统的引用周期: 应不同的使用者在分析周期习惯上的差异,金字塔特别设定了周期选择。这主要是针对在引用类函数在引用数据时锁定自己所需要的周期,例如在日线上,或者在周线上等等的要求。 H:费率设置和平仓止损所有的公式系统都是遵守统一的运算法则,统一的格式进行函数之间的计算,所以我们掌握了技术指标公式的基本原理,其他的公式也不会出脱其外。 例如我们在指标公式系统内写下公式: A:=X+Y; B:=A/Z;C:=B*0.618; 分析以上公式,我们可以引出以下相关的格式和法则的结论:1、数据引用 A、数据来源 公式中的基本数据来源于接收的每日行情数据,这些数据有行情函数从数据库中按照一定的方式提取,例如,高开低收,成交量,成交额等等。 B、数据类型 按照公式使用的数据类型,系统可以处理的数据分为两类:变量和常量。 所谓变量就是一个随着时间变化而变化的数据,例如成交量;常量就是一个永远不变的数据。例如3,每个函数需要的参数可能是变量也可能是常量,不能随便乱用,函数计算的结果一般是一个变量。 例如计算收盘价均线MA(CLOSE,5),MA函数要求第一个参数为变量,而CLOSE函数返回的正是一个变量;MA函数要求的第二个参数是常量,5就是一个常量,所以我们就不能这样书写:MA(5,CLOSE)。 2、特殊数据引用 A、指标数据引用经常地编制公式的过程当中,需要使用另外一个指标的值,如果按照通常的做法,重新编写过这个指标显得很麻烦,因此有必要学习使用如何调用别的指标公式。 基本格式为:“指标.指标线”(参数) a、指标和指标线之间用逗号分开,一个指标不一定只有一条指标线,所以有必要在指标后标注指标线的名称,但是如果缺失则表示引用最后一条指标线。 b、参数在表达式的末尾,必须用括号括起来,参数之间用逗号分开,通过参数设置可以选择设定该指标的参数,如果参数缺失则表示使用该指标的默认参数设置。 c、整个表达式用引号引在其中,除参数以外。 例如:“MACD.DEF”(26,12,9)表示计算MACD指标的DEA指标线,计算参数为26、12、9,“MACD”(26,12,9)表示该指标的最后一条指标线,计算参数是26、12、9,“MACD”表示该指标的最后一条指标线并且使用公式的默认参数。 B、跨周期引用指标数据在金字塔当中允许使用不同分析周期上的指标数据,但是只能是向上引用,不能在原周期上使用比现在周期长度小的周期上的指标数据。 a、基本格式为:“指标.指标线#周期(参数)”,格式上只是比上面指标引用多了一个周期设定其他内容和方法一样,在周期调用上存在以下对应关系: MIN1:1分钟MIN5:5分钟.DAY:日线 WEEK:周线 MONTH:月线 YEAR:年线 如上图所示,MIN1表示的分析周期为1分钟,那么只能是在当前周期为分笔成交图时才可以实现对该周期指标线数据的引用。例如:当前周期为日线,那么在公式中使用“MACD.DEA#WEEK”(26,12,9)表示使用了当天所在的本周的MACD指标中的数据。 b、以上格式的扩展格式为:“指标.指标线#周期”(参数),该格式比基本格式采用了不同的对齐方式,简而言之,就是说“#”的格式调用的本周期所在的上一级周期的指标数据,那么“#”的格式则表示调用了前一种格式的前一周期的指标数据,举上例而言,“MACD.DEF#WEEK”(26,12,9)表示的是从当天看来的上一周的数据,而基本格式就是当天看来的本周的数据。 C、其他数据引用使用以下的格式可以在当前的分析界面下引用大盘的数据或者其他个股的数据实现横向上的对比, a、引用大盘数据引用大盘数据时使用下列函数:INDEXC/INDEXV,等等! b、引用个股数据引用个股数据时使用下列格式:“品种代码数据”,在以上格式当中调用CLOSE,VOL,AMOUNT等等!例如“0002VOL”表示0002该股本周期的成交量,“1A0001CLOSE”同样也可以表示为大盘本周期的收盘价,此时的大盘被视为一只个股。 3、公式体构成结构 A、公式语句 所有的公式体由若干语句按照一定的格式组成,每个语句表示一个计算结果,根据各个语句的功能分为两大类语句,一类是赋值语句,一类是中间表达式。 B、赋值语句在技术指标“B;A/Z”和“C;B*0.618”就是分别两条指标线,语言间用分号隔开 。该语句被称为赋值语句,在技术指标当中,赋值语句的计算结果将会被计算机执行并形成相应的图形。每个语句可以有一个名称,改名称写在语句的最前面,并用一个冒号将它与语句分隔开。例如:ST:MA(CLOSE,5);表示该语句求收盘价的五日均线,语句的名称为ST,在该语句后的语句中可以直接用ST来替代MA(CLOSE,5),例如:MA(ST,5)表示对收盘价的五日均线再求五日平均。 C、中间语句一个语句如果不需要显示,可以将它定义为中间语句,例如在上例当中的第一句“A:=X+Y;”,这样该语句就不会被系统辨认为是指标线了,中间语句用“:=”替代冒号,其他与一般语句完全一样,使用中间语句可以有效降低公式的书写难度,还可以将需要重复使用的语句定义成中间语句以减少计算量。 每个公式最多可以分6个语句,中间公式数量没有限制,所有语句之间需要使用分号隔开。 D、公式计算符 公式计算符将函数连接成为公式,计算分为算术计算符和逻辑计算苻。 a、算术计算符:包括+、-、*、/,它们分别对计算符两边的数据进行加减乘除计算,这同一般意义上的算术计算没有差异。 b、逻辑计算苻包括、AND、OR八种,分别表示大于、小于、不等于、大于等于、小于等于、等于、逻辑与、逻辑或运算,如果条件成立计算结果就等于1,否则等于0,例如:3+4等于7,43就等于1,312就等于0,“逻辑与”表示两个条件都成立时结果才成立;“逻辑或”表示两个条件中只要有一个成立结果成立。例如,43AND124的结果等于1,43OR312的结果等于1。 E、线形描述符 对于技术指标公式可以在语句加上线形描述符,用来表示如何画该语句描述的指标线。 线形描述符号包括以下7种。描述符写在语句后分号前,用逗号将它们与语句分隔开,例如在上例当中加入一句线形描述符,C:B*0.618,COLORSTICK;该语句在被执行时,会在图中添加色彩柱线,该功能在编制MACD等指标的时候会显出它的用处。 STICK:柱状线 COLORSTICK:彩色柱状线,当值为正时显示红色,否则显示绿色 COLORRED:为线形 色,RED表示红色 COLORBLUE:为线形 色,BLUE表示蓝色 COLORYELLOW:为线形 色,YELLOW表示黄色 VOLSTICK:成交量柱状线,当股价上涨时显示红色空心柱,否则绿色 LINESTICK:同时画出柱状线和指标线 LINETHICK:对线体的粗细作出描述 CROSSDOT:小叉线 CIRCLEDOT:小圆圈线 POINTDOT:小圆点线 a、COLORRED等三个线形描述符还可以自定义颜色,格式为COLOR+“BBGGRR”;BB、GG、RR表示蓝色,绿色和红色的分量,每种颜色的取值范围是00-FF,采用了16进制,例如:MA5:MA(CLOSE,5)COLOR00FFFF表示纯红色与纯绿色的混合色;COLOR808000表示淡蓝色和淡绿色的混合色。 b、LINETHICK可以允许对线型的粗细进行自定义的描述,格式“LINETHICK+(0/7)”:参数的取值范围在0-7之间,“LINETHICK0”表示最细的线,而“LINETHICK7”表示最粗的线。4、快速入门1)如何把熟悉的技术指标转换成交易模型?第一步:把KDJ指标公式COPY过来,或按“引入公式”按钮,引入RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100;/算出(收盘价-N周期内的最低价)/(N周期的最高价N周期内的最低价)*100的值,用RSV来表示。K:SMA(RSV,M1,1),COLORWHITE;/RSV 的移动加权平均的值用K表示,并且画白色的线。D:SMA(K,M2,1),COLORYELLOW;/K 的移动加权平均的值用D表示,并且画黄色的线。J:3*K-2*D,COLORMAGENTA;/3倍的K减去2倍的D的值用J表示,并且画紫色的线。第二步:原有公式主要是画线,所以稍作修改。如下:RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100;/ 第 一 行 不 需要修改K:=SMA(RSV,M1,1);/在:后加上=变为只定义不用画线,把后面的颜色函数(COLORWHITE)也去掉D:=SMA(K,M2,1);/同上J:=3*K-2*D;/同上第三步:把自己总结的交易条件写上,就可完成交易模型。如下:RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100; K:=SMA(RSV,M1,1); D:=SMA(K,M2,1); J:=3*K-2*D; 开多 ENTERLONG: CROSS(K,D),TFILTER; / K 向上穿越 D,发出开多操作平多 EXITLONG: CROSS(J,100),TFILTER; / J向上穿越100,发出平多操作开空 ENTERSHORT: CROSS(D,K),TFILTER; /K 向下穿越 D,发出开空操作平空 EXITSHORT: CROSS(0,J),TFILTER; /J向下穿越0,发出平空操作图表交易模型就完成了,其仓位控制在第5页图中设置对于后台交易模型,可用下面4句代替SELLSHORT(CROSS(0,J) and HOLDING0,HOLDING,market); / J向上穿越100,发出平多操作BUYSHORT(CROSS(D,K) and HOLDING=0,30%,market); /K 向下穿越 D,发出开空操作其中,HOLDING为持仓函数,30%表示按可用资金的30%交易,market表示交易类型为市价委托。后为文字说明,编写模型时不用写出。2)如何把自编变色K线转换成交易模型?模型说明:第一根K线变红时买,第一根K线变蓝时卖指标源码:HH1:=IF(HREF(H,2) AND REF(H,1)REF(L,2) AND REF(L,1)REF(L,2),REF(L,2),0); HH2:=VALUEWHEN(HH10,HH1); LL2:=VALUEWHEN(LL10,LL1); K1:=IF(CLOSEHH2,-3,IF(CLOSELL2,1,0); K2:=VALUEWHEN(K10,K1);G:=IF(K2=1,HH2,LL2); G1:=VALUEWHEN(ISLASTBAR,G); W1:=K2; W2:=OPEN-CLOSE; HT:=IF(OPENCLOSE,OPEN,CLOSE); LT:=IF(OPEN0,OPEN,CLOSE,8,1),COLORCYAN; STICKLINE(W10 AND W10 AND W10,OPEN,CLOSE,8,0),COLORCYAN;利用STICKLINE 里的条件W1,再加上交易指令即可改写为交易模型修改为交易模型如下:HH1:=IF(HREF(H,2) AND REF(H,1)REF(L,2) AND REF(L,1)REF(L,2),REF(L,2),0); HH2:=VALUEWHEN(HH10,HH1); LL2:=VALUEWHEN(LL10,LL1); K1:=IF(CLOSEHH2,-3,IF(CLOSELL2,1,0); K2:=VALUEWHEN(K10,K1); G:=IF(K2=1,HH2,LL2); G1:=VALUEWHEN(ISLASTBAR,G); W1:=K2; W2:=OPEN-CLOSE; 开多 ENTERLONG: CROSS(W1,0) OR (CROSS(W2,0) AND CROSS(W1,0),TFILTER; 平多 EXITLONG: CROSS(0,W1) OR (CROSS(W2,0) AND CROSS(0,W1),TFILTER; 开空 ENTERSHORT: CROSS(0,W1) OR (CROSS(W2,0) AND CROSS(0,W1),TFILTER; 平空 EXITSHORT: CROSS(W1,0) OR (CROSS(W2,0) AND CROSS(W1,0),TFILTER; 图表交易模型就完成了,其仓位控制在第5页图中设置对于后台交易模型,可用下面4句代替SELLSHORT(CROSS(W1,0) OR (CROSS(W2,0) AND CROSS(W1,0) and HOLDING0,HOLDING,market); /交易系统之平多操作BUYSHORT(CROSS(0,W1) OR (CROSS(W2,0) AND CROSS(0,W1) and HOLDING=0,30%,market); /交易系统之开空操作3)如何合并两个不同的交易模型?在两个模型方向相同时才开仓,两个模型指令不同时就平仓参数 N:最小值 0 最大值 100 缺省值 8 源码:模型A X:=BARSLAST(HIGH=HHV(HIGH,N); LL:=MIN(REF(LOW,X+3),MIN(REF(LOW,X+2),MIN(REF(LOW,X),REF(LOW,X+1);Y:=BARSLAST(LOW=LLV(LOW,N); HH:=MAX(REF(HIGH,Y+3),MAX(REF(HIGH,Y+2),MAX(REF(HIGH,Y),REF(HIGH,Y+1); A:=BARSLAST(CLOSE=HH); B:=BARSLAST(CLOSEB,HH,LL);SELLSHORT(CROSS(CLOSE,AB) and HOLDING0,HOLDING,market); /平多操作BUYSHORT(CROSS(AB,CLOSE) and HOLDING=0,30%,market); /开空操作模型B HH1:=IF(HREF(H,2) AND REF(H,1)REF(L,2) AND REF(L,1)REF(L,2),REF(L,2),0); HH2:=VALUEWHEN(HH10,HH1); LL2:=VALUEWHEN(LL10,LL1); K1:=IF(CLOSEHH2,-3,IF(CLOSELL2,1,0); K2:=VALUEWHEN(K10,K1); SELLSHORT(K2=-3 and HOLDING0,HOLDING,market); /平多操作BUYSHORT(K2=1 and HOLDING=0,30%,market); /开空操作利用并且( AND )和或者( OR )这些逻辑语句,将A、B模型合并为模型C:X:=BARSLAST(HIGH=HHV(HIGH,N); LL:=MIN(REF(LOW,X+3),MIN(REF(LOW,X+2),MIN(REF(LOW,X),REF(LOW,X+1); Y:=BARSLAST(LOW=LLV(LOW,N); HH:=MAX(REF(HIGH,Y+3),MAX(REF(HIGH,Y+2),MAX(REF(HIGH,Y),REF(HIGH,Y+1); A:=BARSLAST(CLOSE=HH); B:=BARSLAST(CLOSEB,HH,LL); HH1:=IF(HREF(H,2) AND REF(H,1)REF(L,2) AND REF(L,1)REF(L,2),REF(L,2),0); HH2:=VALUEWHEN(HH10,HH1); LL2:=VALUEWHEN(LL10,LL1); K1:=IF(CLOSEHH2,-3,IF(CLOSELL2,1,0); K2:=VALUEWHEN(K10,K1);SELLSHORT(CROSS(CLOSE,AB) OR K2=-3 and HOLDING0,HOLDING,market); /平多操作BUYSHORT(CROSS(AB,CLOSE) AND K2=1 and HOLDING=0,30%,market); /开空操作第四章 交易测试系统和程式化交易函数无论是指标、条件选股,或者交易系统的编制,都是一个循序渐进的过程。这一点在交易系统中表现得尤为突出,从一个方案的提出,到量化,编制公式,然后在以后的不断的检验-历史数据下的静态检验,当前数据下的动态检验,实战检验,任何其中的一个环节如果发现有不合理的,不准确的的地方都需要我们对整个公式系统进行修改,使之更加完美,也许可以将之称为“优化”。 在金字塔1.90的版本中,突出了这个功能的实现,可以通过测试平台对所有的公式化分析工具或者交易工具进行全方位的测评,并提交一份翔实可信的测试报告,在以下的几节中,我们将通过融合测试平台的使用对指标、条件选股以及交易系统的公式进行优化。 1、测试平台的基本内容和架构 在金字塔中为技术指标、条件选股以及交易系统建立了统一的测试平台。在【交易】栏中选“程式化交易评测”,或按Ctrl + F7 假设我们选择了技术指标当中的MA进行测试,在设定好一定的买入条件和卖出条件以及测试的市场模型之后即可对任意的指标、公式等进行测试。金字塔中提供了两种不同的测试模型,一种是针对全部信号的单个股票测试,另外一种是为了最佳的模拟真实的买入和卖出条件,以及参与市场的投资策略的测试模型,具体的内容和区别请看后面的说明。 开仓信号,选择模型和分析周期。入场规则,入场条件设定测试时段,也即测试的时间区间,金字塔默认的区间为20000101到当前。如果默认的入场规则无法满足您的要求,可以在模型当中编制您的入场条件。 出场规则,金字塔提供以上7种平仓条件,包括卖出指令和止损指令: 目标周期为终点,到时自动平仓,20周期以后的收盘价平仓; 目标利润为终点,到时自动平仓,10%帐面盈利以后的收盘价平仓; 以及5类止损平仓:分别设定不同类型下的规避风险条件。 交易费用:按证券和期货,根据成交额和成交量计算佣金。市场模型:金字塔提供两类市场模型供测试分析。测试报告系统测评报告系统信号指示和资金曲线同图显示2、 交易测试系统函数金字塔拥有可供引用的函数超过630个,并还在增长中。其中交易系统函数43个,主要用于实现模型的图表信号显示和测试。交易系统之开多操作,用法:BUY(COND,V,Type,P);表示当COND条件成立时,买入V股(手)当前品种,TYPE表示买入类型,P表示买入价格,所有参数均可以省略。V:买入股(手)数或买入资金百分比(N%),省略表示100%;TYPE:可以是本周期收盘(THISCLOSE),次周期开盘(MARKET),次周期限价单(LIMIT),次周期停损单(STOP)等交易方式控制符;P:对于限价单、停损单需要指定的买入价格例如:BUY(CO ,1000,THISCLOSE);表示收阳线则在本周期收盘价上买入1000股(手)。BUY(C0,50%,LIMIT,CLOSE-0.2);表示在次周期CLOSE-0.2元位置下买入限价单,若价格达到或低于该价格则用50%资金买入。交易系统之平多操作,SELL(COND,V,Type,P); 用法同上交易系统之开空操作,BUYSHORT(COND,V,Type,P); 用法同上交易系统之平空操作,SELLSHORT(COND,V,Type,P); 用法同上ASSET当前资产户账户客的净自有资产=可用现金+占用保证金-融资(现金+品种市值-融资)AVGENTERPRICE 持仓均价当前持有品种的平均持仓成本最近空仓以来计BESTPERCENT 最大利润率当前位置之前所有交易中利润率最大一次的利润率,其数值在01之间BESTTRADE 最大盈利额当前位置之前所有交易中盈利最大一次的利润额CASH(N) 现金存量得到当前帐户的可用资金余额用法:CASH(N),N表示投资方向 0多头;1空头例如:CASH(0)表示取当前多头帐户的可用现金余额ENTERBARS 开仓历时返回上次开仓到当前的周期数,若之前没有开仓记录返回-1ENTERPRICE 上次开仓价得到当前位置的上次开仓价ENTERVOL 上次开仓量得到当前位置的上次开仓量EXITBARS 平仓历时返回上次平仓到当前的周期数,若之前没有开仓记录返回-1EXITPRICE 上次平仓价得到当前位置的上次平仓价EXITVOL 上次平仓量得到当前位置的上次平仓量HOLDING 持仓量得到当前帐户持仓量,多仓返回正数空仓返回负数LIMIT 限价交易交易方式控制符:加入限价单,次周期达到限价即操作,否则放弃。LIMITR 限价交易交易方式控制符:加入限价单,本周期达到限价即操作,否则放弃。Market 市价交易交易方式控制符:按照次周期开盘价操作例如:buy(cond ,1000,market);该控制符仅对交易评测时有效MAXSEQLOSS 最大连续亏损次数当前位置之前连续亏损交易的最大次数MAXSEQWIN 最大连续盈利次数当前位置之前连续盈利交易的最大次数NEXTHIGH 次周期最高价交易交易方式控制符:按照次周期最高价操作例如:BUY(COND ,1000,NEXTHIGH);该控制符仅对交易评测时有效NEXTLOW 次周期最低价交易交易方式控制符:按照次周期最低价操作NEXTMID 次周期中价交易交易方式控制符:按照次周期中间价操作NEXTOPEN 次周期开盘价交易交易方式控制符:按照次周期开盘价操作NUMLOSSTRADE 亏损次数当前位置之前总共有多少次亏损的交易,注意每次卖出算一次交易,而买入不算NUMSEQLOSS 连亏次数当前位置之前连续有多少次亏损的交易,注意每次卖出算一次交易,而买入不算NUMSEQWIN 连盈次数当前位置之前连续有多少次盈利的交易,注意每次卖出算一次交易,而买入不算NUMWINTRADE 盈利次数当前位置之前总共有多少次盈利的交易,注意每次卖出算一次交易,而买入不算OPENBAR 开仓历时上一次仓位=0以来的周期数OPENPROFIT 浮动盈亏当前浮动盈亏(当前持仓市值与持仓成本之差)PERCENTWIN 交易胜率当前位置之前盈利交易占总交易次数的比例,其数值在01之间SEQLOSS 连亏金额当前位置之前连续亏损总额,注意每次卖出算一次交易,而买入不算SEQWIN 连盈金额当前位置之前连续盈利总额,注意每次卖出算一次交易,而买入不算STATE 帐户状态得到当前帐户状态,无仓输出0;有多头仓输出1;有空头仓输出-1STOP 停损交易交易方式控制符:加入停损单,或又称突破交易,次周期达到设定价格即操作买入,否则放弃。所谓停损就是交易价比设定的价格要差,具体说来对于买入或卖空就是高于设定价格,对于卖出或买空就是低于设定价格例如:BUY(COND ,1000,STOP,CLOSE-0.01);该控制符仅对交易评测时有效STOPR 停损交易为本周期的,其它同STOPTHISCLOSE 收盘价交易交易方式控制符,按照本周期收盘价操作例如:BUY(COND ,1000,THISCLOSE);该控制符仅对交易评测时有效TOTALDAYTRADE 日内交易次数当前位置之前总共有多少次当日的交易,注意每次卖出算一次交易,而买入不算用法: TOTALDAYTRADETOTALTRADE 交易次数当前位置之前总共有多少次交易,注意每次卖出算一次交易,而买入不算TYPE(N) 上N次信号类型得到当前位置之前上N次信号类型输出:0、无信号;1、开多;2、平多;3、开空;4、平空;TYPEBAR 表示上次信号,得到当前位置之前上N次信号指定类型距当前周期TYPEBAR(N,TYPE)N表示上次信号,TYPE表示信号类型 0、无信号;1、开多;2、平多;3、开空;4、平空; 例如:TYPEBAR(2,1)表示:倒数第2个开多信号历时WORSTPERCENT 最大亏损率当前位置之前所有交易中亏损率最大一次的利润率,其数值在01之间WORSTTRADE 最大亏损额当前位置之前所有交易中亏损最大一次的亏损额3、 程式化交易函数程式化交易函数共有41个,主要适于实际程式化交易,在后台运行,而不会在图表中显示。大部分是在测试交易系统函数后加“T”,如程式化交易系统之开多操作,用法:TBUY(COND,V,Type,P1,P2,AC,STOCK);表示当COND条件成立时,买入V股(手)当前品种,TYPE表示开仓类型,LMT限价 MKT市价 STP止损 STPLMT限价止损P1表示开仓价格,当TYPE为LMT和STP,STPLMT时为指定限价和止损价格,其他情况填0P2为止损限价,当TYPE为STPLMT时,必须指定P2的止损限价,其他情况填0,当P1止损价触发时按照P2价格止损操作.当TYPE参数省略时,为市价开仓。AC为帐户ID,为空时为系统默认帐户,否则将下单到指定帐户中STOCK为品种代码,比如SH600215,为空或者不填时为当前品种例如:TBUY(CO ,1000,LMT,C);表示收阳线则在本周期收盘价上买入1000股(手)。TBUY(C0,1000,STP,CLOSE+0.2);表示收阳线则在本周期收盘价高于0.2元下1000股(手)止损单,当盘中价格到了触发价时按市价开仓止损.TBUY(C0,1000,STPLMT,CLOSE+0.2,CLOSE);表示收阳线则在本周期收盘价高于0.2元下1000股(手)止损单,当盘中价格到了触发价时按CLOSE价格开仓止损程式化交易系统之平多操作,TSELL(COND,V,Type,P1,P2,AC,STOCK); 用法同上程式化交易系统之开空操作,TBUYSHORT(COND,V,Type,P1,P2,AC,STOCK); 用法同上程式化交易系统之平空操作,TSELLSHORT(COND,V,Type,P1,P2,AC,STOCK); 用法同上注意:程式化交易系统的函数中交易类型Type与交易测试系统的差别DEBUGOUT(STR,NUM) 调试输出用户可以在程式化交易中通过输出指定的字符串来实现调试的目的,可以借助这个功能来完成监控程式化交易的各种细节参数,因为在后台执行程式化交易时,用户在前台的图表上是看不到内部数据的。用法:DEBUGOUT(STR,NUM),STR为用户指定输出的一个行文字,NUM为用户指定的一个监控数字.例如:DEBUGOUT(当前资产为%.2f,1234),将在程式化交易的监控部分打印出来 当前资产为1234.00%.2f为一个打印的控制符号,系统会将他替换为指定的一个数字输出,%.2f为显示两位小数,%.0f则表示不显示小数.该函数仅在做程式化交易时有效SLEEP(D) 延时当位于最后一个周期时,延时指定数量时间后再执行下条语句。用法:SLEEP(D),D为延时的设置时间,单位为毫秒(1秒钟等于1000毫秒)。例如:SLEEP(1000)表示等待1秒后再执行下行语句。TODAYHOLDING 今持仓量得到当前帐户的今日持仓量,多仓返回正数空仓返回负用法:TODAYHOLDINGTSUBMIT(N) 委托单历时用法:TSUBMIT(N)仍未成交时,函数返回未成交历时的秒数,有效值范围为(1-1000);成交函数返回0.N为委托方向.0所有方向;1开多;2平多;3开空;4平空;便于控制未成交交易,采取其他补救措施TTOTALDAYTRADE 日内交易次数当前位置之前总共有多少次当日的交易,注意每次卖出算一次交易,而买入不算用法:TTOTALDAYTRADE其它的程式化交易函数,类似,请自己依次查看注意:在公式编辑中,点击 OPEN,D:ONTIFY.MP3),当最后一个周期为阳线时播放D:ONTIFY.MP3位置的声音文件.SENDMAIL 发送邮件发送一封邮件到指定的邮箱.用法:SENDMAIL(COND,MAILTO,SUB,CON),当最后一个周期得COND条件成立时,发送到MAILTO用户,标题为SUB,内容为CON例如:SENDMAIL(CLOSEOPEN,ABCSINA.COM;XYZWEISTOCK.COM,警报,大阳线),表示当最后一个周期为阳线时,往ABCSINA.COM和XYZWEISTOCK.COM这两个邮箱发送邮件,标题是警报,内容是大阳线.用户使用该

温馨提示

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

评论

0/150

提交评论