分享
分销 收藏 举报 申诉 / 31
播放页_导航下方通栏广告

类型文华赢智程序化交易顶级编程函数手册及范例.doc

  • 上传人:xrp****65
  • 文档编号:5698243
  • 上传时间:2024-11-15
  • 格式:DOC
  • 页数:31
  • 大小:1.13MB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    文华 程序化 交易 顶级 编程 函数 手册 范例
    资源描述:
    文华财经函数模型 1、引用数据 AVPRICE 引用均价(在盘后对于国内三个期货交易所指结算价) SETTLE 引用结算价(如果用在周期小于'日'的K线上如5分钟K线,一小时k线,每根k线返回的值表示这根k线当日开盘时到这根k线的为止的结算价(均价) 如果用在周期大于等于'日'的K线上,返回当根K线结束时间所在日的结算价.) CLOSE 引用收盘价(在盘中指最新价),也可简写为C。 HIGH 引用最高价,也可简写为H。 LOW 引用最低价,也可简写为L。 OPEN 引用开盘价,也可简写为O。 OPI 引用持仓量 REF(X,N) 引用X在N个周期前的值 例:REF(CLOSE,5); 表示引用当前周期前第5个周期的收盘价 REFX(X,N) 引用N个周期后的数据。(N为大于等于1的整数) 『未来函数』 例:REFX(CLOSE,5); 表示引用自当前周期后第5个周期的收盘价 VOL 引用成交量,也可简写为V。 GETPRICE(N) 根据文华码取出某一品种的最新价。 例子: GETPRICE(1209);返回文华码为1209的合约品种的最新价。 2、金融统计 BACKSET(X,N) 若X条件成立,则将当前位置到N周期前的数值设为1。『未来函数』 例:BACKSET(CLOSE>OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1 该函数参数支持变量计算如BACKSET(CLOSE>OPEN,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(WR>80,5); 表示统计在5个周期内满足WR>80的次数。 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(CLOSE>REF(HIGH,1),10); 表示10个周期中是否存在收盘价大于前一个周期的最高价 EVERY(COND,N) 判断过去N个周期内是否一直满足条件COND。 例:EVERY(CLOSE>OPEN,5);表示5个周期内一直是阳线 LAST(COND,N1,N2) 判断过去N1到N2周期内是否一直满足条件COND。 例:LAST(CLOSE>OPEN,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(CLOSE>REF(CLOSE,1),1,0); 表示若今日收盘价高于前一日收盘价,则返回1,否则返回0 ISDOWN 判断该周期是否收阴。 ISEQUAL 判断该周期是否平盘。 ISUP 判断该周期是否收阳。 ISLASTBAR 判断当前周期是否为最后一根K线。 例:ISLASTBAR; 如果是最后一个K线返回1(Yes),否则返回0(No)。 VALUEWHEN(COND,DATA) 当条件COND满足时,取当时的DATA的值,否则取得前面一个满足条件COND的值。 例:VALUEWHEN(HIGH>REF(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的符号,如果X>0则返回1,如果X<0则返回-1,否则返回0。 SIN(X) 得到X的正弦值。 SQRT(X) 得到X的平方根。 例:SQRT(CLOSE);收盘价的平方根。 SQUARE(X) 得到X的平方。 例:SQUARE(CLOSE);收盘价的平方。 TAN(X) 得到X的正切值。 6、时间函数 BARPOS 取得当前K线的位置。 DATE 取得当前周期的日数(700101-341231)。 DAY 取得当前周期的日数(1-31)。 HOUR 取得当前周期的小时数(0-23)。 MINUTE 取得当前周期的分钟数(0-59)。 MONTH 取得当前周期的月数(1-12)。 TIME 取得当前周期的时间数(0-2359), 秒级周期返回值范围为:0-235959。 WEEKDAY 取得当前周期的星期数(0-6)。 YEAR 取得当前周期的年数(1970-2034)。 7、绘图 DRAWLINE(C1,P1,C2,P2,COLOR) 当条件C1及C2均满足时,从P1画直线到P2,颜色为COLOR。 例: DRAWLINE(MA18<CLOSE,OPEN,MA5>CLOSE,CLOSE,COLORCYAN); 表示当收盘价大于18日均线并且小于5日均线时,从开盘价画青色直线到收盘价。 DRAWTEXT(C,P,TEXT) 表示当条件C满足时在P上写TEXT文字。 例:DRAWTEXT(CLOSE< OPEN&&REF(CLOSE,1)< REF(OPEN,1) &&REF(VOL,1)*1.1< VOL,LOW,'注'); 表示连续两日收阴并且成交量比前一日至少多10%时,在最低价上写“注”字。 DRAWSL (COND,DATA,SLOPE,LEN,EXPAND,COLOR) 画斜线,当条件COND满足时,从DATA开始以每个周期相差SLOPE个点的斜率画斜线,划线长度为LEN个周期,EXPAND为线段的延长方式(0:不延伸;1:向左延伸;2:向右延伸;3:双向延伸)。 例:DRAWSL(LOW=LLV(LOW,50),LOW,5,3,2,COLORRED); 表示当前最低价等于50周期内的最小值时,从当前最小值开始以每隔5个点的斜率画长度为3个周期向右延伸的斜线,颜色为红色。 DRAWNUMBER (COND,DATA,NUMBER,PRECISION,COLOR) 画数字。当条件COND满足时,在DATA位置写数字NUMBER(为数组),精度为PRECISION(小数点后有几位数字)。 例:DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED); 表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。 FILLRGN (COND,DATA1,DATA2,COLOR) 填充区域,当条件COND满足时,填充DATA1及DATA2包围的区域。 例:FILLRGN(MA5>MA10,MA5,MA10,COLORRED); 表示MA5>MA10时以红色填充MA5和MA10之间的区域。 POLYLINE (COND,DATA,COLOR) 画折线,当条件COND满足时,连接各个DATA点。 例:POLYLINE(CLOSE>=HHV(CLOSE,100),CLOSE,COLORRED); 表示在收盘价创100天新高点之间画折线。 PARTLINE (COND,DATA,COLOR) 画线段,条件COND满足时,以COLOR颜色的直线连接DATA各点。 例:PARTLINE(HIGH>REF(HIGH,1),HIGH,COLORRED); 表示当期最高价大于前期最高价用红色绘制最高价线段。 STICKLINE (C,P1,P2,COLOR,EMPTY) 如果条件C满足时,从P1到P2画柱线,颜色为Color,如果Empty取1,则为空心柱;如果Empty取0,则为实心柱。 例:STICKLINE(OPEN-CLOSE>0,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(CLOSE>OPEN,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; ELSE B, COLOR; 条件循环函数。多层次循环时使用“{}”套用。 例:取得MA5、MA10、MA30三者中最大的数值 MA5:=MA(CLOSE,5); MA10:=MA(CLOSE,10); MA30:=MA(CLOSE,30); IF(MA5>MA10) MA5,COLORRED; ELSE { IF(MA10>MA30) MA10,COLORMAGENTA; ELSE MA30,COLORGREEN; } 注意:区别于IFELSE函数,为了使多层次套用看的清楚,以上示例中将“{}”单独空行,实际使用中可以不必这样使用。 #IMPORT [CODE,PERIOD,FORMULA] AS VAR 跨周期、跨合约取数据函数。 语句格式: #IMPORT [CODE,PERIOD,FORMULA] AS VAR CODE 文华码 (文华码见 其他—>期货品种代码表) PERIOD 被引用的周期 FORMULA 被引用指标名称 例:引用[豆粕1005]合约日K线图周期的指标[KDJ.FML] 中K值、D值: #IMPORT [1205,DAY,KDJ] AS VARKDJ K1: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:419549257 Q群: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)&&REF(J,1)<70)||(CROSS(K,D)&&J<30),BK;//{5周期均线上穿10周期均线并且前一个周期的J值(KDJ)少于70或者KD金叉时并且J值小于30时发出买入开仓交易指令}   CROSS(D,K)&&REF(J,1)>70,SP;//{KD出现死叉并且前一个周期J值大于70时发出卖出平仓交易指令} (CROSS(MA10,MA5)&&REF(J,1)>30)||(CROSS(D,K)&&J>70),SK;//{5周期均线下叉10周期均线并且前一个周期的J值(KDJ)大于30或者KD死叉时并且J值大于70时发出卖出开仓交易指令} CROSS(K,D)&&REF(J,1)<30,BP;//{KD出现金叉并且前一个周期J值小于30时发出买入平仓交易指令} {{}内为文字说明,编写模型时不用写出} 4、如何编制REF(X,N)类型的交易模型? A:=OPEN-(((REF(HIGH,1)-REF(LOW,1))+(REF(HIGH,2)-REF(LOW,2))+(REF(HIGH,3)-REF   (LOW,3))+(REF(HIGH,4)-REF(LOW,4)))/4)*1.8;//{A=当前周期的开盘价 -[ (一个周期前的最高价减最低价的差+两个周期前的最高价减最低价的差+三个周期前的最高价减最低价的差+四个周期前的最高价减最低价的差)/4]*1.8 } REF(CLOSE,1)< REF(CLOSE,2)&&REF(CLOSE,2)< REF(CLOSE,3)&&REF(CLOSE,3)< REF(CLOSE,4)&&CLOSE >A,BPK;//{连续四个周期的收盘价小于前一周期的收盘价并且当前周期的收盘价大于A时,发出买平并且买开(反手)交易指令} REF(CLOSE,1)>REF(CLOSE,2)&&REF(CLOSE,2) >REF(CLOSE,3)&&REF(CLOSE,3)>REF(CLOSE,   4)&&CLOSE<=A,SPK;//{连续四个周期的收盘价大于前一周期的收盘价并且当前周期的收盘价小于等于A时,发出卖平并且卖开(反手)交易指令}{{}内为文字说明,编写模型时不用写出} 5、如何编制价差类型的交易模型? MA5:=MA(CLOSE,5);//{5个周期收盘价的简单移动平均} MA10:=MA(CLOSE,10);//{10个周期收盘价的简单移动平均} CROSS(MA10,MA5)||(CLOSE-MA5)>8,SK;//{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公式} CLOSE<300&&CROSS(K,D),BKSK;//{当价差小于300并且K上穿D时,买入开仓前一品种,卖出开仓后一品种} CROSS(CLOSE,500)||CROSS(D,K),SPBP;//{当价差上穿500或者D上穿K时,卖出平仓前一品种,买入平仓后一品种} CLOSE>600&&CROSS(D,K),SKBK;//{当价差大于600并且D上穿K时,卖出开仓前一品种,买入开仓后一品种} CROSS(400,CLOSE)||CROSS(K,D),BPSP;//{当价差下穿400或者K上穿D时,买入平仓前一品种,卖出平仓后一品种}
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:文华赢智程序化交易顶级编程函数手册及范例.doc
    链接地址:https://www.zixin.com.cn/doc/5698243.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork