• / 31
  • 下载费用:10 金币  

文华程序交易编程指南家函数大全.doc

关 键 词:
文华程序交易编程指南家函数大全.doc
资源描述:
在15分钟图内,突破开盘后15分钟高低点的交易系统HH:=VALUEWHEN(TIME=0900,HIGH);//每天第一根15分钟K线的高点LL:=VALUEWHEN(TIME=0900,LOW); //每天第一根15分钟K线的低点CROSS(CLOSE,HH),BK; //只要价格上穿15分钟的高点,买进开仓;CROSS(LL,CLOSE),SK; //只要价格下穿15分钟的低点,卖出开仓;CROSS(CLOSE,HH)||CROSS(TIME,1444),BP; //只要价格上穿15分钟的高点,买入平仓;或时间在14:44之后平仓CROSS(LL,CLOSE)||CROSS(TIME,1444),SP; //只要价格下穿15分钟的低点,卖出平仓;或时间在14:44之后平仓在3分钟图内,突破开盘后15分钟的高低点的交易系统首先先建立一个指标就是HL.fml,然后用引用的方法#IMPORT[,MIN15,HL] AS VARHLHH1:=VARHL.HH;LL1:=VARHL.LL;CROSS(CLOSE,HH1),BK;CROSS(LL1,CLOSE),SK;CROSS(CLOSE,HH1)||CROSS(TIME,1456),BP;CROSS(LL1,CLOSE)||CROSS(TIME,1456),SP; 一天只交易一次的编写方法NN:=BARSLAST(DATE=1455,SP;周间日模型(固定金额止损)NN:=BARSLAST(DATEREF(LOW,2) 前第二根K线被前第一个K线所包含;LL:VALUEWHEN(NOT(WAIBAO1)既非内孕线,也非外孕线,同时已经出现低点拐点,作为最近低点高点判断的程序编写方法RIBAO2:=(REF(LOW,1)REF(LOW,2) 前第二根K线被前第一个K线所包含;HH:VALUEWHEN(NOT(WAIBAO2)BB:=OREF(H,2)NN:=BARSLAST(CC=1)+2;HH:=HHV(H,NN);JSGX:=IFELSE(HHOPEN,VAR1);//VAR1 是变量BARSLAST(X) 求上一次条件成立到当前的周期数。例:BARSLAST(X):上一次满足 X 条件到现在的 K 线根数。如果本根 K 线满足 X 条件,则BARSLAST(X)返回 0.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,N) 返回 X 的动态移动平均,其中 N 必须介于 0 及 1 之间。计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*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 周期内的最高值,如果 N=0,则从本地数据的第一个有效周期开始算起。例: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 则从本地数据的第一个有效周期开始算起。例:LLVBARS(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 取 0,P为价位差值绝对值。 『未来函数』例:ZIGZAG(HIGH,10,1);表示最高价的 10%的之字转向ZIGZAG(MA(HIGH,34),100,0);表示 34 个周期内最高价均线的 100 个价位的之字转向PEAK(X,P,M,N) 取得 ZIGZAG 前 M 个波峰的值。其中 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的整数。 『未来函数』例:PEAKBARS(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 个周期内最低价均线的 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 为步长,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 周期内的成交量总和。SUMBARS(X,A) 得到 X 向前累加直到大于 A 时的周期数。TRMA(X,N) 求 X 在 N 周期内的三角移动平均。TSMA(X,N) 求 X 在 N 周期内的时间序列移动平均。计算方法:TSMA(X,N)= FOCAST(X,N)+SLOPE(X,N)。3、数理统计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) 得到 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.20=-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)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2=11130.80。5、总体样本方差 VARP(X,N):将偏差的平方相加,总和除以总个数 N。用公式可以这样算: (-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2/5=2226.16。6、样本方差 VAR(X,N):是总体方差的 N/(N-1)倍。 2226.16*5/(5-1)=2782.70 估算样本方差,总比总体样本方差大一点,当 N 够大时,两者趋于相等。7、总体标准差 STDP(X,N):方差的开方。 [(-65.2)2+ (-26.2)2+ (-17.2)2+ (54.8)2+ (53.8)2/5]?=47.18。8、标准差 STD(X,N):估算样本方差的开方。 [2226.16*5/(5-1)]?=52.75 同样,估算标准差也比总体标准差大一点,当 N 够大时,两者趋于相等。4、逻辑判断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 个周期中是否存在收盘价大于前一个周期的最高价EVERY(COND,N) 判断过去 N 个周期内是否一直满足条件 COND。例:EVERY(CLOSEOPEN,5);表示 5 个周期内一直是阳线LAST(COND,N1,N2) 判断过去 N1 到 N2 周期内是否一直满足条件 COND。例:LAST(CLOSEOPEN,10,5);表示从过去第 10 个周期到第 5 个周期内一直是阳线LONGCROSS(A,B,N) 如果 A 在前 N 个周期内都小于 B,本周期上穿 B,则返回 1。否则返回 0。例:LONGCROSS(CLOSE,MA(CLOSE,10),20);表示收盘线在 10 日均线之下持续 20 周期后从下向上穿过 10 日均线。NOFILTER 交易模型买卖指令信号过滤函数。 (仅适用于交易模型的过滤)设置模型对产生的交易指令不过滤,则出现的任何交易指令都会执行,如果没有设置“不过滤” ,则产生的指令将按照如下规则过滤:1.连续的同方向指令只有第一个有效,其他的将被过滤;2.交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖平指令,其他的指令都被滤掉。这也就意味着,第一个指令只能是买开或者卖开指令,其他的都被过滤) ;3.但是在进行模型效果测试及优化时,无论设置过滤与否,都按照前面的规则对指令进行了过滤。IFELSE(C,A,B) (08 版等以前版本里用 IF 函数表示) 。如果条件 C 成立则返回 A 值,否则返回 B 值.例:IFELSE(CLOSEREF(CLOSE,1),1,0);表示若今日收盘价高于前一日收盘价,则返回 1,否则返回 0ISDOWN判断该周期是否收阴。ISEQUAL 判断该周期是否平盘。ISUP 判断该周期是否收阳。ISLASTBAR 判断当前周期是否为最后一根 K 线。例:ISLASTBAR; 如果是最后一个 K 线返回 1(Yes ) ,否则返回 0(No) 。VALUEWHEN(COND,DATA) 当条件 COND 满足时,取当时的 DATA 的值,否则取得前面一个满足条件 COND 的值。例:VALUEWHEN(HIGHREF(HIGH,5),HIGH);表示当前最高价大于前五个周期最高价的最大值时返回当前最高价。5、数学运算ABS(X) 求 X 的绝对值例:ABS(SAR(17,0.03,0.3));返回抛物转向 SAR(17,0.03,0.3)的绝对值。ACOS(X) 求 X 的反余弦值ASIN(X) 求 X 的反正弦值ATAN(X) 求 X 的反正切值COS(X) 返回 X 的余弦值EXP(X) 返回 e 的 X 次幂CEILING(X) 向上舍入,返回沿 X 数值增大方向最接近的整数。FLOOR(X) 向下舍入,返回沿 X 数值减小方向最接近的整数。INTPART(X) 取 X 的整数部分,返回沿 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);收盘价除以开盘价所得余数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 满足时在 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 满足时,连接各个 DATA 点。例:POLYLINE(CLOSE=HHV(CLOSE,100),CLOSE,COLORRED);表示在收盘价创 100 天新高点之间画折线。PARTLINE(COND,DATA,COLOR) 画线段,条件 COND 满足时,以 COLOR 颜色的直线连接DATA 各点。例:PARTLINE(HIGHREF(HIGH,1),HIGH,COLORRED);表示当期最高价大于前期最高价用红色绘制最高价线段。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 天新高时画垂直线。08 版本与 09 版本函数区别:08 版本函数 09 版本函数SETTLE 日线周期只有盘后才能引用当日的结算价。其他周期计算结果等同于 AVPRICE引用结算价(如果用在周期小于 '日'的 K 线上如 5 分钟 K 线,一小时 k 线,每根 k 线返回的值表示这根 k 线当日开盘时到这根 k 线的为止的结算价(均价)如果用在周期大于等于'日'的 K 线上,返回当根 K 线结束时间所在日的结算价.)BACKSET(X,N) 『未来函数』 函数参数不支持变量计算 函数参数支持变量计算如:BACKSET(CLOSEOPEN,VAR1);//VAR1 是变量DMA 函数参数不支持变量计算 DMA(X,N)返回 X 的动态移动平均,其中 N 必须介于0 及 1 之间。N 支持变量。计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A其中 DMA(N-1)为第(N-1) 天的 DMA 值。HHV(X,N) 函数参数 N 不支持变量计算 函数参数 N 支持变量计算LLV(X,N) 函数参数 N 不支持变量计算 函数参数 N 支持变量计算COUNT(X,N) 函数参数 N 不支持变量计算 函数参数 N 支持变量计算09 版本新增函数:GETPRICE(N) 根据文华码取出某一品种的最新价。例:GETPRICE(1209);返回文华码为 1209 的合约品种的最新价。RGB(R,G,B) 自定义颜色函数。R,G,B 的数值范围都在 0~255 之间,例:RGB(225,225,225)表示白色PARAM[参数名称,最小值,最大值,缺省值] 在源码中定义参数。例:PARAM[N,1,100,12]MAN:MA(CLOSE,N);表示参数为 N,最小值为 1,最大值为 100,缺省值为 12.IF(COND)A,COLOR;ELSEB, COLOR; 条件循环函数。多层次循环时使用“{}”套用。例:取得 MA5、MA10、MA30 三者中最大的数值MA5:=MA(CLOSE,5);MA10:=MA(CLOSE,10);MA30:=MA(CLOSE,30);IF(MA5MA10)MA5,COLORRED;ELSE{IF(MA10MA30)MA10,COLORMAGENTA;ELSEMA30,COLORGREEN;}注意:区别于 IFELSE 函数,为了使多层次套用看的清楚,以上示例中将“{} ”单独空行,实际使用中可以不必这样使用。#IMPORT [CODE,PERIOD,FORMULA] AS VAR 跨周期、跨合约取数据函数。语句格式:#IMPORT [CODE,PERIOD,FORMULA] AS VARCODE 文华码(文华码见 http://www.wenhua.com.cn/guide/guide.htm 其他—期货品种代码表)PERIOD 被引用的周期 FORMULA 被引用指标名称例:引用[豆粕 1005]合约日 K 线图周期的指标[KDJ.FML] 中 K 值、D 值:#IMPORT [1205,DAY,KDJ] AS VARKDJK1:KDJ.K;D1:KDJ.D;注意点:1.只能引用一个当前存在的‘.FML 文件’ (指标文件)中的变量,不支持同时引用多个指标和多个周期。2.只能引用如下周期 MIN1 MIN3 MIN5 MIN10 MIN15 MIN30 HOUR1 HOUR3 HOUR8 DAY WEEK MONTH;3.只能短周期引用长周期指标数据,分钟周期上可引用小时、日周期数据,不能日线周期上加载引用分钟数据的指标;4.被引用的指标中不能存在引用。5.如果不写文华码,默认引用当前合约。模型注释符号在 2009 版本中修改为“//” 。2008 版本中模型注释语句使用在 2009 版本中时在{}前面增加//即可。(三)编辑平台可以使用的常数常数 意义COLORRED 红色COLORGREEN 绿色COLORBLUE 蓝色COLORMAGENTA 紫色COLORYELLOW 黄色COLORLIGHTGREY 浅灰色COLORLIGHTRED 浅红色COLORLIGHTGREEN 浅绿色COLORLIGHTBLUE 浅蓝色COLORBLACK 黑色COLORWHITE 白色COLORCYAN 青色COLORSTICK 画彩色柱线VOLUMESTICK 画成交量线BAMBOOLINE 画竹线CIRCLEDOT 画圆OPISTICK 画持仓量柱线RGB(R,G,B) 自定义颜色函数。R,G,B 的数值范围都在 0~255 之间。例:RGB(225,225,225)表示白色PARAM[参数名称,最小值,最大值,缺省值] 在源码中定义参数。例:PARAM[N,1,100,12]MAN:MA(CLOSE,N);表示参数为 N,最小值为 1,最大值为 100,缺省值为 12.注意:在公式内即使你定义了某种颜色,在显示的时候也未必是此种颜色,取决于背景颜色当前页面里是否保了该指标的颜色及您是否在显示的时候改变了该指标的颜色设置。欢迎交流:QQ:419549257Q 群:138709040(四)编辑平台的语法1、关于公式名称:公式的名称不可以和已经存在的公式重复。2、关于参数:每个自编公式最多可以定义四个参数,参数的定义如下,首先是参数名称,然后是参数的最小值,最大值,最后是参数的默认值。在定义参数时要注意的是参数名称不可以重复。3、关于变量名称:变量名称不可以互相重复,不可以和参数名重复,不可以和函数名称重复。4、关于公式内容:公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的时候请您注意一定要使用半角输入。 在编写公式的过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数。5、如果您在编写公式之后,想给这个公式加上注释,说明之类的东西,可以使用公式说明来输入。 (五)编辑平台使用的交易指令交易模型中的交易指令如下:图示 指令 意义BK 买开指令BP 买平指令SK 卖开指令SP 卖平指令BPK买平同时等价等量买开指令SPK 卖平同时等价等量卖开指令套利模型中的交易指令如下:图示 指令 意义BKSK 甲合约买开;乙合约卖开信号BPSP 甲合约买平;乙合约卖平信号SKBK 甲合约卖开;乙合约买开信号SPBP 甲合约卖平;乙合约买平信号请注意,在效果测试使用如下机制:连续的开仓指令只使用第一个指令进行开仓,开仓时使用当时的全部资金,连续的平仓指令,只有第一个有效,平掉当时的全部持仓,其他的平仓指令算做错误指令!(六)快速入门1、如何把熟悉的技术指标转换成交易模型?第一步:把 KDJ 指标公式 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 倍的 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;CROSS(K,D),BK;//{K 向上穿越 D,发出买开交易指令}CROSS(J,100),SP;//{J 向上穿越 100,发出卖平交易指令}CROSS(D,K),SK;//{K 向下穿越 D,发出卖开交易指令}CROSS(0,J),BP;//{J 向下穿越 0,发出买平交易指令}//后为文字说明,编写模型时不用写出2、如何编制交叉(金叉/死叉)类型的交易模型?MA5:=MA(CLOSE,5);//{5 个周期收盘价的简单移动平均}MA10:=MA(CLOSE,10);//{10 个周期收盘价的简单移动平均} MA20:=MA(CLOSE,20);//{20 个周期收盘价的简单移动平均}CROSS(MA10,MA20),BK;//{当 MA10 上穿 MA20 时,发出买入开仓交易指令 } CROSS(MA10,MA5),SP;//{当 MA10 上穿 MA5 时,发出卖出平仓交易指令}CROSS(MA20,MA10),SK;//{当 MA20 上穿 MA10 时,发出卖出开仓交易指令 } CROSS(MA5,MA10),BP;//{当 MA5 上穿 MA10 时,发出买入平仓交易指令 } //后为文字说明,编写模型时不用写出} 3、如何编制多条件类型的交易模型?RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; K:=SMA(RSV,3,1); D:=SMA(K,3,1); J:=3*K-2*D;//{以上为 KDJ 公式}MA5:=MA(CLOSE,5); MA10:=MA(CLOSE,10);//{以上为定义 5 个周期收盘价的简单移动平均和 10 个周期收盘价的简单移动平均} (CROSS(MA5,MA10)//{KD 出现死叉并且前一个周期 J 值大于 70 时发出卖出平仓交易指令} (CROSS(MA10,MA5)//{5 周期均线下叉 10 周期均线并且前一个周期的 J 值(KDJ)大于 30 或者 KD 死叉时并且 J 值大于 70 时发出卖出开仓交易指令}CROSS(K,D)//{连续四个周期的收盘价小于前一周期的收盘价并且当前周期的收盘价大于 A 时,发出买平并且买开(反手)交易指令}REF(CLOSE,1)REF(CLOSE,2)//{10 周期均线上穿 5 周期均线或者收盘价与 5周期均线的差值大于 8 时,发出卖出开仓交易指令}(MA5-CLOSE)6,BP;//{5 周期均线与收盘价的差值大于 6 时,发出买入平仓交易指令} CROSS(MA5,MA10)||(MA5-CLOSE)8,BK;//{5 周期均线上穿 10 周期均线或者收盘价与 5周期均线的差值大于 8 时,发出买入开仓交易指令} (CLOSE-MA5)6,SP;//{收盘价与 5 周期均线的差值大于 6 时,发出卖出平仓交易指令}{{}内为文字说明,编写模型时不用写出}6、如何编制简单价差类型的套利模型?CROSS(300,CLOSE),BKSK; //{CLOSE 为两个品种的价差。当价差小于 300 时,买入开仓前一品种,卖出开仓后一品种} CROSS(CLOSE,500),SPBP;//{当价差大于 500 时,卖出平仓前一品种,买入平仓后一品种 } CROSS(CLOSE,600),SKBK;//{当价差大于 600 时,卖出开仓前一品种,买入开仓后一品种} CROSS(400,CLOSE),BPSP;//{当价差小于 400 时,买入平仓前一品种,卖出平仓后一品种 } 7、如何编制组合类型的套利模型?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;//{以上为 KDJ 公式}CLOSE600//{当价差大于 600 并且 D 上穿 K 时,卖出开仓前一品种,买入开仓后一品种}CROSS(400,CLOSE)||CROSS(K,D),BPSP;//{当价差下穿 400 或者 K 上穿 D 时,买入平仓前一品种,卖出平仓后一品种}技术指标模型大全1 ADTM 模型DTM:=IFELSE(OPEN=REF(OPEN,1),0,MAX((OPEN-LOW),(OPEN-REF(OPEN,1))));STM:=SUM(DTM,N);SBM:=SUM(DBM,N);ADTM:=IFELSE(STMSBM,(STM-SBM)/STM,IFELSE(STM=SBM,0,(STM-SBM)/SBM));ADTMMA:=MA(ADTM,M);ADTMMAQ,SPK;2 ARBR 模型AR := SUM(HIGH-OPEN,N)/SUM(OPEN-LOW,N)*100;BR := SUM(MAX(0,HIGH-REF(CLOSE,1)),N)/SUM(MAX(0,REF(CLOSE,1)-LOW),N)*100;(BRP X:=(CLOSE-LC+(CLOSE-OPEN)/2+LC-REF(OPEN,1));SI:=16*X/R*MAX(AA,BB);ASI:=SUM(SI,0);ASIREF(ASI,1),BPK;//当前周期 ASI 指标数值大于前一周期开多 ;ASIMA(C,10) //在上升通道中,ATR 真实波幅向上时,且白线上穿黄线,此时 K 线收阴者买入开仓;CROSS(MA(C,10),C),SP;//当价格下穿 10 周期均线平多仓。5 B3612 模型B36 := MA(CLOSE,3)-MA(CLOSE,6);B612 := MA(CLOSE,6)-MA(CLOSE,12);B36REF(B36,1) //本周期 B36 与 B612 分别小于前一周期 B36与 B612 时平多开空。6 BBI 模型BBI1:=(MA(CLOSE,N1)+MA(CLOSE,N2)+MA(CLOSE,N3)+MA(CLOSE,N4))/4;MA54:=MA(C,54);//以 MA54 来判断当前价格处于高价区还是低价区。CMA54 7 BIAS 模型BIAS1 := (CLOSE-MA(CLOSE,L1))/MA(CLOSE,L1)*100;BIAS1M1 BIAS1P BIAS1M2 BIAS1P 8 BOLL 模型MID:=MA(CLOSE,N);TMP2:=STD(CLOSE,M);TOP:=MID+P*TMP2;BOTTOM:=MID-P*TMP2;A:=TOP-C;B:=C-BOTTOM;CROSS(C,BOTTOM),BPK;CROSS(TOP,C),SPK;9 CCI 模型TYP:=(CLOSE+HIGH+LOW)/3;CCI:=(TYP-MA(TYP,N))/(0.015*AVEDEV(TYP,N));CROSS(CCI,100),BK;//CCI 从+100~-100 的常态区,由下往上突破+100 天线时,为买入开仓。CROSS(100,CCI),SP;//CCI 从+100 天线之上,由上往下跌破天线时,为卖出平仓。CROSS(100,CCI),SK;//CCI 从+100~-100 的常态区,由上往下跌破-100 地线时,为卖出开仓。CROSS(CCI,100),BP;//CCI 从-100 下方,由下往上突破-100 地线时,为买入平仓。10 CDPV 日内模型PT := REF(HIGH,1)-REF(LOW,1);CDP := (REF(HIGH,1) + REF(LOW,1) + REF(CLOSE,1))/3;AH :=MA(CDP + PT,N);AL :=MA(CDP - PT,N);NH :=MA(2*CDP-LOW,N);NL :=MA(2*CDP-HIGH,N);NQ:=(AH+AL+NH+NL)/4;//计算出 CDP 中四条指标线的均值 NQNQLLV(NQ,M)*(1+M1*0.001) //当 NQ 下跌超过前 M 周期最高值的千分之 M1,卖开;NQ=0900 //当 NQ 上涨超过前 M 周期最低值的千分之 M1,买开。11 CDP 日内模型PT := REF(HIGH,1)-REF(LOW,1);CDP := (REF(HIGH,1) + REF(LOW,1) + REF(CLOSE,1))/3;AH :=MA(CDP + PT,N);AL :=MA(CDP - PT,N);NH :=MA(2*CDP-LOW,N);NL :=MA(2*CDP-HIGH,N);NQ:=(AH+AL+NH+NL)/4;//计算出 CDP 中四条指标线的均值 NQNQLLV(NQ,M)*(1+M1*0.001),BPK;//当 NQ 上涨超过前 M 周期最低值的千分之 P,买平开;NQLLV(NQ,M)*(1+M1*0.001),BPK;//当 NQ 上涨超过前 M 周期最低值的千分之 M1,买平开;NQN2,SPK;//CR 下跌超过 N2 时,卖平开。14 说明 文中“//” 后面的文字是解说,实际编写与测试过程中,不用编写。15 DBCD 模型BIAS:=(CLOSE-MA(CLOSE,N))/MA(CLOSE,N);DIF:=(BIAS-REF(BIAS,M));DBCD:=SMA(DIF,T,1);MM:=100000*MA(DBCD,5);MMREF(MM,1),BPK;MM=(REF(HIGH,1)+REF(LOW,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1))));DIZ:=SUM(DMZ,N)/(SUM(DMZ,N)+SUM(DMF,N));DIF:=SUM(DMF,N)/(SUM(DMF,N)+SUM(DMZ,N));DDI:=DIZ-DIF;DDI0,BPK;//DDI 大于零平空开多;DDI0DMM:= SMA(IFELSE(LD0P
展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:文华程序交易编程指南家函数大全.doc
链接地址:https://www.weizhuannet.com/p-10087888.html
微传网是一个办公文档、学习资料下载的在线文档分享平台!

网站资源均来自网络,如有侵权,请联系客服删除!

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网络工作室版权所有

     经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

收起
展开