收藏 分享(赏)

文华期货自动化交易模型编写教程.doc

上传人:春华秋实 文档编号:3775807 上传时间:2018-11-18 格式:DOC 页数:51 大小:771KB
下载 相关 举报
文华期货自动化交易模型编写教程.doc_第1页
第1页 / 共51页
文华期货自动化交易模型编写教程.doc_第2页
第2页 / 共51页
文华期货自动化交易模型编写教程.doc_第3页
第3页 / 共51页
文华期货自动化交易模型编写教程.doc_第4页
第4页 / 共51页
文华期货自动化交易模型编写教程.doc_第5页
第5页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、一、 程序化交易的编写、交易模型编写规范和一般原则1、编辑平台支持的操作符操作符 意义 例 加法CLOSEOPEN 表示求收盘价及开盘价的和。 减法CLOSEOPEN 表示求收盘价及开盘价的差。* 乘法CLOSE*OPEN 表示求收盘价及开盘价的积。/ 除法CLOSE/OPEN 表示求收盘价及开盘价的商。AND 与(并且) ,也可简写为 2(这个变量在画图时是不画的): 声明了一个变量,在画图时画出它并且按这个名字显示。:MA(TMP1,10); 上面的公式的第一个语句定义了一个局部变量 TMP1,在下面一行中引用了这个局部变量,但是要注意的是这个公式在画图的时候只画了第二条语句 MA10 所

2、求出的结果。相反下面这个公式则需要画出两条线,第一条是自己定义的均价线,同时显示了均价的名称为 AVP,第二条线是均价的简单移动平均线。AVP:(OPEN+CLOSE)/2;MA(AVP,10); 2、编辑平台支持的函数引用数据AVPRICE 引用均价(在盘后对于国内三个期货交易所指结算价)SETTLE 引用结算价(只有在日线周期盘后才能引用当日的结算价)CLOSE 引用收盘价(在盘中指最新价 ),也可简写为 C HIGH 引用最高价,也可简写为 H 。LOW 引用最低价,也可简写为 L 。OPEN 引用开盘价,也可简写为 O 。OPI 引用持仓量REF(X,N) 引用 X 在 N 个周期前的

3、值例:REF(CLOSE,5);表示引用当前周期前第 5 个周期的收盘价REFX(X,N) 引用 N 个周期后的数据。 (N 为大于等于 1 的整数) 未来函数例:REFX(CLOSE,5);表示引用自当前周期后第 5 个周期的收盘价VOL 引用成交量,也可简写为 V 。GETPRICE(N) 根据文华码取出某一品种的最新价。3例:GETPRICE(1209);返回文华码为1209 的合约品种的最新价。PARAM参数名称,最小值,最大值,缺省值在源码中定义参数。例:PARAMN,1,100,12MAN:MA(CLOSE,N);表示参数为 N,最小值为 1,最大值为 100,缺省值为 12.#I

4、MPORT CODE,PERIOD,FORMULA AS VAR(Mytrader2009 和Myadvisor(赢智)支持)#IMPORTCODE,PERIOD,FORMULAAS VAR;CODE 文华码 PERIOD 周期FORMULA 引用模型名VAR 定义变量名例子:#IMPORT 1205,MIN5,TEST AS M1005意思是引用豆粕 1005 五分钟图上指标TEST.FML 的数据使用的方法:如当前存在一个指标 TEST.FML/TEST.FMLCL:=CLOSE;OP:=OPEN;我想在新建的指标 TEST1 中引用豆粕 1005 五分钟周期上指标TEST.FML 的数据

5、可以如下编写 TEST1 指标/TEST1.FML#IMPORT 1205,MIN5,TEST AS VARTESTDD:VARTEST.CL;DF:VARTEST.OP;引用的约束1.只能引用 .FML 文件2.只能引用如下周期 MIN1 MIN3 MIN5 MIN10 MIN15 MIN30 HOUR1 HOUR3 HOUR8 DAY WEEK MONTH3.只能短周期引用长周期比如不能日线周期上加载引用了分钟数据的指标。4.被引用的指标中不能存在引用 4金融统计BACKSET(X,N) 若 X 条件成立,则将当前位置到 N 周期前的数值设为 1。 未来函数例:BACKSET(CLOSEO

6、PEN,3);表示当 K 线收阳时,自当前位置到 3 周期前的数值设为 1BARSLAST(X) 求上一次条件成立到当前的周期数。COUNT(X,N) 表示统计在 N 周期内满足 X 条件的周期数。如果 N 为 0 则表示从已申请到的数据的第一天开始算起。例:WR:=-100*(HHV(HIGH,N)-CLOSE)/(HHV(HIGH,N)-LLV(LOW,N); COUNT(WR80,5);表示统计在 5 个周期内满足WR80 的次数 DMA(X,A) 返回 X 的动态移动平均,其中 A 为常数,并且必须介于 0 及 1 之间。计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*

7、A 其中 DMA(N-1)为第(N-1) 天的 DMA 值。EMA(X,N) 表示求 X 在 N 周期内的平滑移动平均。 (指数加权)计算方法:EMA(X,N)=2*X+(N-1)*EMA(X,(N-1)/(N+1) 其中EMA(X,(N-1)为第(N-1)天的 EMA 值EMA2(X,N) 表示求 X 在 N 周期内的加权平均。 (线性加权)计算方法:EMA2(X,N)=(N*X0+(N-1)*X1+(N-2)*X2+.+1*XN)/(N+(N-1)+(N-2)+.+1),X0 表示本周期值,X1 表示上一周期值.HHV(X,N) 得到 X 在 N 周期内的最高值,如果 N0,则从本地数据的

8、第一个有效周期开始算起。例:HHV(HIGH,13);求 13 个周期内的最高价的最大值。 HHVBARS(X,N) 得到 X 在 N 周期内的最高值位置到当前的周期数。如果 N=0,则从本地数据的第一个有效周期开始算起。例:HHVBARS(VOL,0); 求历史成交量最大的周期到当前的周期数LLV(X,N) 得到 X 在 N 周期内的最小值,如果 N=0,则从本地数据的第一个有效周期开始算起。例:LLV(LOW,25);表示求 25 个周期内最低价的最小值LLVBARS(X,N) 得到 X 在 N 周期内的最小值的位置到当前的周期数。如果 N=0 则从本地数据的第一个有效周期开始算起。例:L

9、LVBARS(VOL,0); 求历史成交量最小的周期到当前的周期数MA(X,N) 求 X 在 N 周期内的简单移动平均。计算方法:MA=(A1+A2+A3+A4+A5)/5 求 A 在 5 个周期内的简单移动平均ZIGZAG(X,P,N) 之字转向,当 X 变化量超过 P 时转向,当 N 取 1,P 为百分比数;当 N 取50,P 为价位差值绝对值。 未来函数例:ZIGZAG(HIGH,10,1);表示最高价的 10%的之字转向ZIGZAG(MA(HIGH,34),100,0);表示 34 个周期内最高价均线的 100个价位的之字转向 PEAK(X,P,M,N) 取得 ZIGZAG 前 M 个

10、波峰的值。其中 X 为数据,P 为转折值(如果 N 为 1,这个值为百分比数,否则为价位差值绝对值) ,M 为大于等于 1 的整数。 未来函数例:PEAK(HIGH,10,1,1);表示最高价的 10%的之字转向的上一个波峰的数值; PEAK(MA(HIGH,34),100,1,0);表示 34 个周期内最高价均线的 100 个价位的之字转向的上一个波峰的数值 PEAKBARS(X,P,M,N) 取得 ZIGZAG 前 M 个波峰到当前周期的周期数。其中 X 为数据,P 为转折值(如果 N 为 1,这个值为百分比数,否则为价位差值绝对值) ,M 为大于等于 1 的整数。 未来函数例:PEAKB

11、ARS(HIGH,10,1,1); 表示最高价的 10%的之字转向的上一个波峰到当前的周期数 PEAKBARS(MA(HIGH,34),100,1,0);表示 34 个周期内最高价均线的100 个价位的之字转向的上一个波峰到当前的周期数 TROUGH(X,P,M,N) 取得 ZIGZAG 前 M 个波谷的值。其中 X 为数据,P 为转折值(如果 N 为 1,这个值为百分比数,否则为价位差值绝对值) ,M 为大于等于 1 的整数。 未来函数例:TROUGH(LOW,10,1,1);表示最低价的 10%的之字转向的上一个波谷的数值 TROUGH (MA(LOW,34),100,1,0);表示 34

12、 个周期内最低价均线的100 个价位的之字转向的上一个波谷的数值 TROUGHBARS(X,P,M,N)取得 ZIGZAG 前 M 个波谷到当前周期的周期数。其中 X 为数据,P 为转折值(如果 N 为 1,这个值为百分比数,否则为价位差值绝对值) ,M 为大于等于 1 的整数。 未来函数TROUGH(LOW,10,1,1);表示最低价的 10%的之字转向的上一个波谷到当前的周期数 TROUGH (MA(LOW,34),100,1,0);表示 34 个周期内最低价均线的100 个价位的之字转向的上一个波谷到当前的周期数 SAR(N,Step,Max) 得到抛物转向值。N 为计算周期 ,Step

13、 为步长,Max 为极值。 (系统函数,计算步骤后台自动完成)例:SAR(17,0.03,0.3);表示计算 17 个周期抛物转向,步长为 3%,极限值为 30% SMA(X,N,M) 得到 X 在 N 个周期内的移动平均,M 为权重(M 为常数) 。计算方法:SMA(N)=SMA(N-1)*(N-M)/N+X(N)*M/N SUM(X,N) 得到 X 在 N 周期内的总和,如果 N=0,则从第一个有效周期开始算起。例: SUM(VOL,10);表示统计 10 周期内的成交量总和 6SUMBARS(X,A) 得到 X 向前累加直到大于 A 时的周期数。 TRMA(X,N) 求 X 在 N 周期

14、内的三角移动平均。 TSMA(X,N) 求 X 在 N 周期内的时间序列移动平均。计算方法:TSMA(X,N)= FOCAST(X,N)+SLOPE(X,N) 数理统计AVEDEV(X,N) 求 X 在 N 周期内的平均绝对偏差。DEVSQ(X,N) 数据偏差平方和。FORCAST(X,N) 得到 X 的 N 周期线性回归预测值。例:FORCAST(CLOSE,5);表示求 5 周期线性回归预测SLOPE(X,N) 得到 X 在 N 周期内的线性回归的斜率例:SLOPE(CLOSE,5);表示求 5 周期线性回归线的斜率STD(X,N) 得到 X 在 N 周期内的标准差STDP(X,N) 得到

15、 X 在 N 周期内的总体标准差VAR(X,N) 得到 X 在 N 周期内的样本方差VARP(X,N) 得到 X 在 N 周期内的总体样本方差数理统计举例说明:设一个数列,数列中数据的总个数为 N,以今天(2005-10-14)五天内的 A0605 收盘价为例,N 就为 5。数列的内容为:2766,2805,2814,2886,2885 。1、算术平均值 MA(CLOSE,5):数据总和除以总个数N。(2766+2805+2814+2886+2885)/5=2831.20 。 可以用公式MA(CLOSE,5),从今天的值上看出。2、偏差:每个数据,减去算术平均值的结果。 2766-2831.2

16、0=-65.2, 2805-2831.20=-26.2, 2814-2831.20=-17.2, 2886-2831.20=54.8, 2885-2831.20=53.8, 各偏差相加,应该是等于 0 的。3、平均绝对偏差 AVEDEV(X,N):将偏差的绝对值相加,除以总个数N。 (65.2+26.2+17.2+54.8+53.8)/5=43.44。4、数据偏差平方和 DEVSQ(X,N):将偏差的平方相加。 (-65.2)+ (-726.2)+ (-17.2)+ (54.8)+ (53.8)=11130.80。5、总体样本方差 VARP(X,N):将偏差的平方相加,总和除以总个数N。用公式

17、可以这样算: (-65.2)+ (-26.2)+ (-17.2)+ (54.8)+ (53.8)/5=2226.16。6、样本方差 VAR(X,N):是总体方差的 N/(N-1)倍。 2226.16*5/(5-1)=2782.70 估算样本方差,总比总体样本方差大一点,当 N 够大时,两者趋于相等。7、总体标准差 STDP(X,N):方差的开方。 (-65.2)+ (-26.2)+ (-17.2)+ (54.8)+ (53.8)/5=47.18。8、标准差 STD(X,N):估算样本方差的开方。 2226.16*5/(5-1)=52.75 同样,估算标准差也比总体标准差大一点,当 N 够大时,

18、两者趋于相等。更多期货股票学习资料点击:http:/ 逻辑判断BETWEEN(A,B,C) 判断条件“A 位于 B 及 C 之间”是否成立,如果条件成立则返回 1(yes),否则返回 0(no)。例:BETWEEN(CLOSE,MA5,MA40);表示收盘价介于 5 日均线与 40 日均线之间。CROSS(X,Y) 表示 X 上穿 Y。例:CROSS(CLOSE,MA(CLOSE,5);表示收盘线从下方向上穿过 5 日均线EXIST(COND,N) 判断 N 个周期内是否有满足条件 COND 的情况发生。例:EXIST(CLOSEREF(HIGH,1),10);表示 10 个周期中是否存在收盘

19、价大于前一个周期的最高价EVERY(COND,N) 判断过去 N 个周期内是否一直满足条件 COND。例:EVERY(CLOSEOPEN,5);表示 5 个周期内一直是阳线LAST(COND,N1,N2) 判断过去 N1 到 N2 周期内是否一直满足条件 COND。8例:LAST(CLOSEOPEN,10,5);表示从过去第 10 个周期到第 5 个周期内一直是阳线LONGCROSS(A,B,N) 如果 A 在前 N 个周期内都小于 B,本周期上穿 B,则返回1。否则返回 0。例:LONGCROSS(CLOSE,MA(CLOSE,10),20);表示收盘线在 10 日均线之下持续 20 周期后

20、从下向上穿过 10日均线。NOFILTER 交易模型买卖指令信号过滤函数。 (仅适用于交易模型的过滤)交易模型公式后加“NOFILTER;”是指不需要过滤,出现任何交易指令都会执行。公式后不加“NOFILTER;”是指当连续出现同方向的交易指令时,系统只显示出第一个交易指令,其他交易指令自动被过滤。ISDOWN 判断该周期是否收阴。ISEQUAL 判断该周期是否平盘。ISUP 判断该周期是否收阳。ISLASTBAR 判断当前周期是否为最后一根 K 线。VALUEWHEN(COND,DATA) 当条件 COND 满足时,取当时的 DATA 的值,否则取得前面一个满足条件 COND 的值。例:VA

21、LUEWHEN(HIGHREF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。数学运算ABS(X) 求 X 的绝对值例:ABS(SAR(17,0.03,0.3);返回抛物转向 SAR(17,0.03,0.3)的绝对值。ACOS(X) 求 X 的反余弦值9ASIN(X) 求 X 的反正弦值ATAN(X) 求 X 的反正切值COS(X) 返回 X 的余弦值EXP(X) 返回 e 的 X 次幂CEILING(X) 向上舍入,返回沿 X 数值增大方向最接近的整数。FLOOR(X) 向下舍入,返回沿 X 数值减小方向最接近的整数。INTPART(X) 取 X 的

22、整数部分,返回沿 X 绝对值减小方向最接近的整数。LN(X) 得到 X 的自然对数,以 e 为底的对数。例:LN(OPEN); 求开盘价的自然对数。LOG(X) 得到 X 的常用对数,取得 X 的以 10 为底的对数。例:LOG(OPEN);求开盘价的以 10 为底的对数。MAX(A,B) 求 A,B 中的较大者。例:MAX(CLOSE-OPEN,0);表示若收盘价大于开盘价返回它们的差值,否则返回 0。MIN(A,B) 求 A,B 中的较小者。例:MIN(OPEN,CLOSE);返回开盘价和收盘价中的较小值。MOD(A,B) 返回 A 对 B 得到模。例:MOD(CLOSE,OPEN);收盘

23、价除以开盘价所得余数NOT(X) 当 X 为 0 时返回 1,否则返回 0。例:NOT(TIME=090530);表示该周期对应的时间不是9:05:30AM。POW(A,B) 得到 A 的 B 次幂。例:POW(CLOSE,2);求得收盘价的 2 次方。REVERSE(X) 取反,返回符号相反的数值。例:REVERSE(LOW);返回-LOW。SGN(X) 得到 X 的符号,如果 X0 则返回 1,如果 XCLOSE,CLOSE,COLORCYAN); 表示当收盘价大于 18 日均线并且小于 5 日均线时,从开盘价画青色直线到收盘价。 DRAWTEXT(C,P,TEXT) 表示当条件 C 满足

24、时在 P 上写 TEXT 文字。例:DRAWTEXT(CLOSE1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED); 表示当日涨幅大于 8%时在最高价位置显示涨幅 (相对开盘价的百分比)。 FILLRGN(COND,DATA1,DATA2,COLOR)填充区域,当条件 COND 满足时,填充 DATA1及 DATA2 包围的区域。例:FILLRGN(MA5MA10,MA5,MA10,COLORRED); 表示 MA5MA10 时以红色填充 MA5 和 MA10之间的区域。 POLYLINE(COND,DATA,COLOR)画折线,当条件 COND 满足时,连

25、接各个 DATA点。例:POLYLINE(CLOSE=HHV(CLOSE,100),CLOSE,COLORRED); 表示在收盘价创 100 天新高点之间画折线。 PARTLINE(COND,DATA,COLOR)同 POLYLINE。例:PARTLINE(HIGHREF(HIGH,1),HIGH,COLORRED); 表示当期最高价大于前期最高价用红色绘制最高价连线线段。 128、level-2 函数(只有嬴智版本支持) L2_BPTIMES 周期内多头平仓次数。用法:L2_BPTIMES 返回多头平仓次数。L2_BKTIMES 周期内多头开仓次数。用法:L2_BKTIMES 返回多头开仓次

26、数。L2_SPTIMES 周期内空头平仓次数。用法:L2_BPTIMES 返回空头平仓次数。L2_SKTIMES 周期内空头开仓次数。用法:L2_SKTIMES 返回空头开仓次数。L2_ASKACCOUNT 周期内卖主动次数。用法:L2_ASKACCOUNT 返回卖主动次数。L2_BIDACCOUNT 周期内买主动次数。用法:L2_BIDACCOUNT 返回买主动次数。L2_BIDAVVOL 周期内平均总买量。用法:L2_BIDAVVOL 返回周期内平均总买量。L2_ASKAVVOL 周期内平均总卖量。用法:L2_ASKAVVOL 返回周期内平均总卖量。L2_ASKAVPRICE 周期内卖盘加

27、全平均价。STICKLINE(C,P1,P2,Color,Empty)如果条件 C 满足时,从 P1 到 P2 画柱线,颜色为Color,如果 Empty 取 1,则为空心柱;如果 Empty取 0,则为实心柱。例:STICKLINE(OPEN-CLOSE0,OPEN,CLOSE,COLORCYAN,0); 表示当开盘价大于收盘价时,从开盘价到收盘价画青色的实心柱,即 K 线阴线的实体部分。 VERTLINE(COND,COLOR)画垂直线,当条件 COND 满足时,画垂直线。例:VERTLINE(HIGH=HHV(HIGH,30),COLORRED); 表示在价格创 30 天新高时画垂直线。

28、 RGB(R,G,B) 自定义颜色函数。R,G,B 的数值范围都在 0255 之间,例:RGB(225,225,225)表示白色COLORSTICK 画彩色柱线 VOLUMESTICK 画成交量线 BAMBOOLINE 画竹线 CIRCLEDOT 画圆 OPISTICK 画持仓量柱线 13用法:L2_ASKAVPRICE 返回卖盘加全平均价。L2_BIDAVPRICE 周期内买盘加全平均价。用法:L2_BIDAVPRICE 返回买盘加全平均价。L2_ASKBIGTURNOVER周期内空头大单成交额。用法:L2_ASKBIGTURNOVER 返回空头大单成交额。L2_BIDBIGTURNOVER

29、周期内多头大单成交额。用法:L2_BIDBIGTURNOVER 返回多头大单成交额。L2_ASKBIGCOUNT周期内空头大单成交次数。用法:L2_ASKBIGCOUNT 返回周期内空头大单成交次数。L2_BIDBIGCOUNT周期内多头大单成交次数。用法:L2_BIDBIGCOUNT 返回周期内多头大单成交次数。L2_TOTALTURNOVER 周期内总成交额。用法:L2_TOTALTURNOVER 返回总成交额。L2_ASKBIGENTRASTCOUNT周期内卖 1 委托明细大量次数。用法:L2_ASKBIGENTRASTCOUNT 返回卖 1委托明细大量次数。L2_BIDBIGENTRA

30、STCOUNT周期内买 1 委托明细大量次数。用法:L2_BIDBIGENTRASTCOUNT 返回买 1 委托明细大量次数。L2_PERIOD_DATA(TEXT)该周期最后时刻的买卖价格。用法:L2_PERIOD_DATA(TEXT)求内容为TEXT 的该周期最后盘面数据。例子:L2_PERIOD_DATA(bid1);/ 取得该周期最后盘面的买 1 数据TEXT 的内容可为:买 1-买 5 买 1 量-买 5 量卖 1-卖 5 卖 1 量-卖 5 量bid1 bid2 bid3 bid4 bid5 ask1 ask2 ask3 ask4 ask5 bidvol1 bidvol2 bidv

31、ol3 bidvol4 bidvol5 askvol1 askvol2 askvol3 askvol4 askvol5L2_TICK_DATA(TEXT)取每笔买卖盘数据(只能用于 Tick 图,每笔 Tick 时间间隔请设置为 0)。用法:L2_TICK_DATA(TEXT)求内容为 TEXT的盘面实时数据。例子:L2_TICK_DATA(bid1);/取得盘面最后的买 1 数据14TEXT 的内容可为:买 1-买 5 卖 1-卖 5 买 1 量- 买 5 量卖 1 量- 卖 5 量bid1,bid2,bid3,bid4,bid5 ,ask1,ask2,ask3,ask4,ask5,bidv

32、ol1,bidvol2,bidvol3,bidvol4,bidvol5,askvol1,askvol2,askvol3,askvol4,askvol5总买总卖总买量总卖量tbid,task,tbidvol,taskvol委买 1-委买 10 委卖 1-委卖 10buy_entrust1,buy_entrust2 ,buy_entrust3 ,buy_entrust4,buy_entrust5 ,buy_entrust6,buy_entrust7 ,buy_entrust8 ,buy_entrust9,buy_entrust10 ,sell_entrust1,sell_entrust2 ,sel

33、l_entrust3 ,sell_entrust4,sell_entrust5 ,sell_entrust6,sell_entrust7 ,sell_entrust8 ,sell_entrust9,sell_entrust10最新价持仓量主动买卖(返回意义 -1 没取到,0 主动买,1 主动卖,2 换手)成交量newprice,opi, activity,deltavol更多期货股票学习资料点击:http:/ 9、头寸函数(连接文华服务器才能使用) TRD_ASSETS 取出交易系统中的权益。用法:TRD_ASSETS 返回交易系统的权益。注意:该函数只有登陆一键通下单系统才能使用。效果测试不

34、执行此函数。TRD_CAPITAL 取出交易系统中的可用资金。用法:TRD_CAPITAL 返回交易系统的可用资金。注意:该函数只有登陆一键通下单系统才能使用。效果测试不执行此函数。TRD_LONGSPRICE 取出交易系统中的多头开仓均价。用法:TRD_LONGSPRICE 返回交易系统的多头开仓均价。注意:该函数只有登陆一键通下单系统才能使用。效果测试不执行此函数。15TRD_SHORTSPRICE 取出交易系统中的空头开仓均价。用法:TRD_SHORTSPRICE 返回交易系统的空头开仓均价。注意:该函数只有登陆一键通下单系统才能使用。效果测试不执行此函数。TRD_LONGSOPI 取出

35、交易系统中的多头持仓。用法:TRD_LONGSOPI 返回交易系统的多头持仓。注意:该函数只有登陆一键通下单系统才能使用。效果测试不执行此函数。TRD_SHORTSOPI 取出交易系统中的空头持仓。用法:TRD_SHORTSOPI 返回交易系统的空头持仓。注意:该函数只有登陆一键通下单系统才能使用。效果测试不执行此函数。TRD_LONGSOPIREMAIN 取出交易系统中的多头可平仓手数。用法:TRD_LONGSOPIREMAIN 返回交易系统的多头可平仓手数。注意:该函数只有登陆一键通下单系统才能使用。效果测试不执行此函数。TRD_SHORTSOPIREMAIN 取出交易系统中的空头可平仓手

36、数。用法:TRD_SHORTSOPIREMAIN 返回交易系统的空头可平仓手数。注意:该函数只有登陆一键通下单系统才能使用。效果测试不执行此函数。TRD_LONGSEARN 取出交易系统中的多头浮动盈亏。用法:TRD_LONGSEARN 返回交易系统的多头浮动盈亏。注意:该函数只有登陆一键通下单系统才能使用。效果测试不执行此函数。TRD_SHORTSEARN 取出交易系统中的空头浮动盈亏。用法:TRD_SHORTSEARN 返回交易系统的空头浮动盈亏。注意:该函数只有登陆一键通下单系统才能使用。16效果测试不执行此函数。TRD_LIMITUP 取出交易系统中的涨停价格。用法:TRD_LIMIT

37、UP 返回交易系统的涨停价格。注意:该函数只有登陆一键通下单系统才能使用。效果测试不执行此函数。TRD_LIMITDOWN 取出交易系统中的跌停价格。用法:TRD_LIMITDOWN 返回交易系统的跌停价格。注意:该函数只有登陆一键通下单系统才能使用。效果测试不执行此函数。SETDEALPERCENT(fPercent)设置模型每次下单按资金的比例下单。用法:SETDEALPERCENT(fPercent)表示每次按资金的 fPercent 下单。例子:SETDEALPERCENT(0.2);/ 每次按资金比例的%20 下单注:不可与 SETDEALVOL 函数同时使用交易系统必须启动效果测试

38、不执行此函数SETDEALVOL(nVol)设置模型每次下单按设置的手数下单。用法:SETDEALVOL(nVol)表示每次模型下 nVol手单。例子:SETDEALVOL(2);/模型每次下单 2 手注:不可与 SETDEALPERCENT 函数同时使用交易系统必须启动效果测试不执行此函数10、信号记录函数(连接文华服务器才能使用) BKPRICE 模型买开信号价位。用法:BKPRICE 返回上一次模型买开仓价。BARSBK 上一次买开信号位置用法:BARSBK 返回上一次买开仓距离当前 k 线的 k 线数。SKPRICE 模型卖开信号价位。用法:SKPRICE 返回上一次模型卖开仓价。BA

39、RSSK 上一次卖开信号位置用法:BARSSK 返回上一次卖开仓距离当前 k 线的 k 线数。173、编辑平台可以使用的常数常数 意义COLORRED 红色COLORGREEN 绿色 COLORBLUE 蓝色 COLORMAGENTA 红紫色 COLORYELLOW 黄色 COLORLIGHTGREY 浅灰色COLORLIGHTRED 浅红色COLORLIGHTGREEN 浅绿色 COLORLIGHTBLUE 浅蓝色 COLORBLACK 黑色COLORWHITE 白色 COLORCYAN 青色COLORRED 红色COLORGREEN 绿色 COLORBLUE 蓝色 COLORMAGENTA

40、 红紫色 COLORYELLOW 黄色 COLORLIGHTGREY 浅灰色注:在公式内即使你定义了某种颜色,在显示的时候也未必是此种颜色,取决于背景颜色当前页面里是否保了该指标的颜色及您是否在显示的时候改变了该指标的颜色设置。更多期货股票学习资料点击:http:/ 4、编辑平台的语法(1)关于公式名称:公式的名称不可以和已经存在的公式重复。18(2)关于参数:每个自编公式最多可以在参数设置栏中定义四个参数,参数的定义如下,首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值。在定义参数时要注意的是参数名称不可以重复。(3)关于变量名称:变量名称不可以互相重复,不可以和参数名重复,不

41、可以和函数名称重复。(4)关于公式内容:公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的时候请您注意一定要使用半角输入。 在编写公式的过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数。(5)如果您在编写公式之后,想给这个公式加上注释,说明之类的东西,可以使用公式说明来输入。 (6)IF ELSE:该语句只有 Mytrader2009 和 Myadvisor(赢智)支持MA5:=MA(CLOSE,5);MA10:=MA(CLOSE,10);MA30:=MA(CLOSE,30);IF(MA5MA10)MA5,COLORRED;ELSEIF(MA10MA30)MA10,

42、COLORMAGENTA;ELSEMA30,COLORGREEN;以上内容表达 MA5、MA10、MA30 三者中最大的数值。(7)IFELSE(C,A,B)19如果条件 C 成立则返回 A 值,否则返回 B 值例:IFELSE(CLOSEREF(CLOSE,1),1,0);表示若今日收盘价高于前一日收盘价,则返回 1,否则返回 05、编辑平台使用的交易指令交易模型中的交易指令如下:期货交易指令买开 公式中用 BK 表示 买平 公式中用 BP 表示 卖开 公式中用 SK 表示 卖平 公式中用 SP 表示 买平后买开新仓 公式中用 BPK 表示 卖平后卖开新仓 公式中用 SPK 表示 股票、权证

43、、外汇交易指令 买入 公式中用 BUY 表示卖出 公式中用 SELL 表示套利模型中的交易指令如下:第一腿买开,第二腿卖开 公式中用 BKSK 表示第一腿卖开,第二腿买开 公式中用 SKBK 表示第一腿买平,第二腿卖平 公式中用 BPSP 表示 第一腿卖平,第二腿买平 公式中用 SPBP 表示注:在效果测试使用如下机制:连续的开仓指令只使用第一个指令进行开仓,开仓时使用当时的全部资金,连续的平20仓指令,只有第一个有效,平掉当时的全部持仓,其他的平仓指令算做错误指令!6、快速入门以下模型源码内容仅供编写参考使用,如用于交易使用,风险自负。如何把熟悉的技术指标转换成交易模型?第一步:把 KDJ

44、指标公式 COPY 过来。RSV:=(CLOSE-LLV(LOW,N)/(HHV(HIGH,N)-LLV(LOW,N)*100;/算出(收盘价-N 周期内的最低价)/(N 周期的最高价N 周期内的最低价)*100 的值,用 RSV 来表示。BACKGROUNDSTYLE(1);/确定背景的样式, (钝化)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 倍的

45、 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:=S

46、MA(RSV,M1,1);21D:=SMA(K,M2,1);J:=3*K-2*D;CROSS(K,D),BK;/K 向上穿越 D,发出买开交易指令CROSS(J,100),SP;/J 向上穿越 100,发出卖平交易指令CROSS(D,K),SK;/K 向下穿越 D,发出卖开交易指令CROSS(0,J),BP;/J 向下穿越 0,发出买平交易指令 /”/”后为文字说明,编写模型时不用写出如何把自编变色 K 线转换成交易模型?模型说明:第一根 K 线变红时买,第一根 K 线变蓝时卖指标源码:HH1:=IF(HREF(L,2)HH2:=VALUEWHEN(HH10,HH1); LL2:=VALUEW

47、HEN(LL10,LL1); K1:=IF(CLOSEHH2,-3,IF(CLOSE0,K1); G:=IF(K2=1,HH2,LL2);G1:=VALUEWHEN(ISLASTBAR,G); /以上是在定义变量,转换成模型时直接引用DRAWNUMBER(L0,G1,G1,0,COLORCYAN); /以上是在编著数值,转换成模型时直接删除W1:=K2; W2:=OPEN-CLOSE; HT:=IF(OPENCLOSE,OPEN,CLOSE); LT:=IF(OPEN0,OPEN,CLOSE,COLORCYAN,1); STICKLINE(W10 DRAWLINE(W1=1 DRAWLINE(

48、W1=-3DRAWSL(K2=1,G,0,1,0,COLORGREEN); DRAWSL(K2=-3,G,0,1,0,COLORYELLOW);/以上是在绘图,转换成模型时直接删除,只保留判断k线颜色的逻辑语句。例如:STICKLINE(W10,OPEN,CLOSE,COLORCYAN,1);则保留W10,再加上交易指令即可改写为交易模型修改为交易模型如下:HH1:=IF(HREF(L,2)HH2:=VALUEWHEN(HH10,HH1); LL2:=VALUEWHEN(LL10,LL1); K1:=IF(CLOSEHH2,-3,IF(CLOSE0,K1); G:=IF(K2=1,HH2,LL

49、2);G1:=VALUEWHEN(ISLASTBAR,G); W1:=K2; W2:=OPEN-CLOSE; CROSS(W1,0)|(CROSS(W2,0)CROSS(0,W1)|(CROSS(W2,0)23/从上面看,编写交易模型要比编写指标简单得多。如何合并两个不同的交易模型?在两个模型方向相同时才开仓,两个模型指令不同时就平仓参数 N: 最小值 0 最大值 100 缺省值 8源码:模型AX:=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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报