: | : | :期货程序化 | :期货程序化研究 | :期货量化学习 | :期货量化 |
返回列表 发帖

文华财经编程规则

文华财经编程规则

目录
一、操作符: .................................................................................................................................. 1 二、语法: ...................................................................................................................................... 2
三、函数和常量 .............................................................................................................................. 3
1.引用数据................................................................................................................................ 3
2.金融统计................................................................................................................................ 4
3.数理统计................................................................................................................................ 6
4.逻辑判断................................................................................................................................ 7
5.数学运算................................................................................................................................ 8
6.时间函数................................................................................................................................ 9
7.绘图...................................................................................................................................... 10
8、颜色常数........................................................................................................................... 11
9、level-2 函数(只有嬴智版本支持) ............................................................................... 11
10、头寸函数(连接文华服务器才能使用) ..................................................................... 14
11、信号记录函数(连接文华服务器才能使用) ............................................................. 15
四、交易指令......................................................................................................................... 15
五、编程举例: ............................................................................................................................ 16

一、操作符: 操作符:
操作符 + - * / && || > < >= <= <> = := 加法 减法 CLOSE*OPEN 表示求收盘价及开盘价的积。 乘法 CLOSE/OPEN 表示求收盘价及开盘价的商。 除法 与(并且),也可简写为 AND 或(或者), 也可简写为 OR 大于 小于 大于等于 小于等于 不等于 等于操作符 只定义一个局部变量 (这个变量在画图时是不画 的) TMP1:=(OPEN+CLOSE)/2; MA(TMP1,10); 上面的公式的第一个语句定义了一个局部变量 TMP1, 在下面一行 CLOSE>OPEN 表示判断当前周期是否收阳。 CLOSE=OPEN 表示判断当前周期是否平盘。 意义 例 CLOSE+OPEN 表示求收盘价及开盘价的和。 CLOSE-OPEN 表示求收盘价及开盘价的差。



声明了一个变量,

中引用了这个局部变量,但是要注意的是这个公式在画图的时候

在画图时画出它并且按这个 只画了第二条语句所求出的结果。 名字显示。 相反下面这个公式则需要画出两条线,第一条是自己定义的均价 线, 同时显示了均价的名称为 AVP,第二条线是均价的简单移动平 均线。 AVP:(OPEN+CLOSE)/2; MA(AVP,10);

二、语法: 语法:
1.关于公式名称: 1.关于公式名称: 关于公式名称 公式的名称不可以和已经存在的公式重复。 2.关于参数: 2.关于参数: 关于参数 每个自编公式最多可以定义四个参数, 参数的定义如下, 首先是参数名称, 然后是参数的最小值, 最大值, 最后是参数的默认值。在定义参数时要注意的是参数名称不可以重复。 3.关于变量名称: 3.关于变量名称: 关于变量名称 变量名称不可以互相重复,不可以和参数名重复,不可以和函数名称重复。 4.关于公式内容: 4.关于公式内容: 关于公式内容 公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的时候请您注意一定要使用半角输入。 在编写公式的过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数。 5.如果您在编写公式之后,想给这个公式加上注释,说明之类的东西,可以使用公式说明来输入。 5.如果您在编写公式之后,想给这个公式加上注释,说明之类的东西,可以使用公式说明来输入。 如果您在编写公式之后 6.IF ELSE: 该语句只有 Mytrader2009 和 Myadvisor(赢智)支持

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; } 以上内容表达 MA5、MA10、MA30 三者中最大的数值。

7.IFELSE(C,A,B) 如果条件 C 成立则返回 A 值,否则返回 B 值 例:IFELSE(CLOSE>REF(CLOSE,1),1,0);表示若今日收盘价高于前一日收盘价,则返回 1,否则返回 0

三、函数和常量
1.引用数据 引用数据
AVPRICE 引用均价(在盘后对于国内三个期货交易所指结算 价) SETTLE 引用结算价(只有在日线周期盘后才能引用当日的 结算价) CLOSE HIGH LOW OPEN OPI REF(X,N) 引用收盘价(在盘中指最新价),也可简写为 C 引用最高价,也可简写为 H 。 引用最低价,也可简写为 L 。 引用开盘价,也可简写为 O 。 引用持仓量 引用 X 在 N 个周期前的值 例:REF(CLOSE,5);表示引用当前周期前第 5 个周期 的收盘价 REFX(X,N) 引用 N 个周期后的数据。(N 为大于等于 1 的整数) 『未来函数』 例:REFX(CLOSE,5);表示引用自当前周期后第 5 个 周期的收盘价 VOL GETPRICE(N) 引用成交量,也可简写为 V 。 根据文华码取出某一品种的最新价。 例:GETPRICE(1209);返回文华码为 1209 的合约品 种的最新价。 PARAM [参数名称,最小值,最大值,缺省值] 在源码中定义参数。 例:PARAM[N,1,100,12] MAN:MA(CLOSE,N); 表示参数为 N,最小值为 1,最大值为 100,缺省值 为 12. #IMPORT[CODE,PERIOD,FORMULA]AS VAR; CODE 文华码 PERIOD 周期 FORMULA 引用模型名 #IMPORT [CODE,PERIOD,FORMULA] AS VAR VAR (Mytrader2009 和 Myadvisor(赢智)支 持) 例子: #IMPORT [1205,MIN5,TEST] AS M1005 定义变量名

意思是引用[豆粕 1005] 五分钟图上指标 [TEST.FML] 的数据 使用的方法: 如当前存在一个指标 TEST.FML //TEST.FML CL:=CLOSE; OP:=OPEN;

我想在新建的指标 TEST1 中引用[豆粕 1005] 五分 钟周期上指标[TEST.FML] 的数据 可以如下编写 TEST1 指标 //TEST1.FML #IMPORT [1205,MIN5,TEST] AS VARTEST DD:VARTEST.CL; DF:VARTEST.OP;

引用的约束 1.只能引用 .FML 文件 2.只能引用如下周期 MIN1 MIN3 MIN5 MIN10 MIN15 MIN30 HOUR1 HOUR3 HOUR8 DAY WEEK MONTH 3.只能短周期引用长周期比如不能日线周期上加载 引用了分钟数据的指标。 4.被引用的指标中不能存在引用 5.如果不写文华码,默认引用当前合约

2.金融统计 金融统计
BACKSET(X,N) 若 X 条件成立,则将当前位置到 N 周期前的数值设为 1。『未来函数』 例:BACKSET(CLOSE>OPEN,3);表示当 K 线收阳时,自当前位置到 3 周期前的数 值设为 1 BARSLAST(X) 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,A) 返回 X 的动态移动平均,其中 A 为常数,并且必须介于 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 的整 数。『未来函数』 TROUGHBARS(LOW,10,1,1);表示最低价的 10%的之字转向的上一个波谷到当前 的周期数 TROUGHBARS(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) TRMA(X,N) TSMA(X,N) 得到 X 向前累加直到大于 A 时的周期数。 求 X 在 N 周期内的三角移动平均。 求 X 在 N 周期内的时间序列移动平均。 计算方法:TSMA(X,N)= FORCAST(X,N)+SLOPE(X,N)

3.数理统计 数理统计
AVEDEV(X,N) DEVSQ(X,N) FORCAST(X,N) 求 X 在 N 周期内的平均绝对偏差 数据偏差平方和。 得到 X 的 N 周期线性回归预测值。 例:FORCAST(CLOSE,5);表示求 5 周期线性回归预测 SLOPE(X,N) 得到 X 在 N 周期内的线性回归的斜率 例:SLOPE(CLOSE,5);表示求 5 周期线性回归线的斜率 STD(X,N) STDP(X,N) 得到 X 在 N 周期内的标准差 得到 X 在 N 周期内的总体标准差

VAR(X,N) VARP(X,N)

得到 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

交易模型买卖指令信号过滤函数。(仅适用于交易模型的过滤) 交易模型公式后加“NOFILTER;”是指不需要过滤,出现任何交易 指令都会执行。公式后不加“NOFILTER;”是指当连续出现同方向 的交易指令时, 系统只显示出第一个交易指令, 其他交易指令自动 被过滤。

ISDOWN ISEQUAL ISUP ISLASTBAR VALUEWHEN(COND,DATA)

判断该周期是否收阴。 判断该周期是否平盘。 判断该周期是否收阳。 判断当前周期是否为最后一根 K 线。 当条件 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) ASIN(X) ATAN(X) COS(X) EXP(X) CEILING(X) FLOOR(X) 求 X 的反余弦值 求 X 的反正弦值 求 X 的反正切值 返回 X 的余弦值 返回 e 的 X 次幂 向上舍入,返回沿 X 数值增大方向最接近的整数。 向下舍入,返回沿 X 数值减小方向最接近的整数。

INTPART(X) LN(X)

取 X 的整数部分,返回沿 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,500);收盘价除以 500 所得余数

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) SIN(X) SQRT(X)

得到 X 的符号,如果 X>0 则返回 1,如果 X<0 则返回-1,否则返回 0。 得到 X 的正弦值。 得到 X 的平方根。 例:SQRT(CLOSE);收盘价的平方根。

SQUARE(X)

得到 X 的平方。 例:SQUARE(CLOSE);收盘价的平方。

TAN(X)

得到 X 的正切值。

6.时间函数 时间函数
BARPOS DATE DAY HOUR MINUTE MONTH 取得当前 K 线的位置。 取得当前周期的日数(700101-341231)。 取得当前周期的日数(1-31)。 取得当前周期的小时数(0-23)。 取得当前周期的分钟数(0-59)。 取得当前周期的月数(1-12)。

TIME WEEKDAY YEAR

取得当前周期的时间数(0-2359),秒级周期返回值范围为:0-235959。 取得当前周期的星期数(0-6)。 取得当前周期的年数(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,EXP AND, 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,CO LOR) 画数字。当条件 COND 满足时,在 DATA 位置写数字 NUMBER(为数组), 精度为 PRECISION(小数点后有几位数字)。 例: DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLO RRED); 表示当日涨幅大于 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) 同 POLYLINE。 例: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 天 新高时画垂直线。 RGB(R,G,B) 自定义颜色函数。 R,G,B 的数值范围都在 0~255 之间,例:RGB(225,225,225)表示白色 COLORSTICK VOLUMESTICK BAMBOOLINE CIRCLEDOT OPISTICK 画彩色柱线 画成交量线 画竹线 画圆 画持仓量柱线

8、颜色常数 、
常数 COLORRED COLORGREEN COLORBLUE COLORMAGENTA COLORYELLOW COLORLIGHTGREY COLORLIGHTRED COLORLIGHTGREEN COLORLIGHTBLUE COLORBLACK COLORWHITE COLORCYAN 红色 绿色 蓝色 红紫色 黄色 浅灰色 浅红色 浅绿色 浅蓝色 黑色 白色 青色 意义

9、level-2 函数(只有嬴智版本支持) 、 函数(只有嬴智版本支持)
L2_BKTIMES 周期内多头开仓次数。

用法:L2_BKTIMES 返回主动买入开仓的次数。 周期内多头平仓次数。 L2_BPTIMES 用法:L2_BPTIMES 返回主动买入平仓的次数。 周期内空头开仓次数。 L2_SKTIMES 用法:L2_SKTIMES 返回主动卖出开仓的次数。 周期内空头次数。 L2_SPTIMES 用法:L2_SPTIMES 返回主动卖出平仓的次数。 周期内主动买入的次数,包含买开和买平。 L2_BIDACCOUNT 用法:L2_BIDACCOUNT 返回买主动次数。 注:L2_BIDACCOUNT= L2_BKTIMES+ L2_BPTIMES 周期内主动卖出的次数,包含卖开和卖平。 L2_ASKACCOUNT 用法:L2_ASKACCOUNT 返回卖主动次数。 注:L2_ASKACCOUNT=L2_SKTIMES+L2_SPTIMES 周期内平均前五档总申买量。 用法:L2_BIDAVVOL 返回周期内平均的前五档总申买量。 L2_BIDAVVOL 具体计算方法如下:求出周期内委买一至委买五价格区间内的总买 量,并按其变动求出周期内平均五档总申买量。 周期内平均的前五档总申卖量。 用法:L2_BIDAVVOL 返回周期内平均的前五档总申卖量。 L2_ASKAVVOL 具体计算方法如下:求出周期内委卖一至委卖五价格区间内的总卖 量,并按其变动求出周期内平均五档总申卖量。 周期内前五档申买盘的加全平均价。 L2_BIDAVPRICE 用法:L2_BIDAVPRICE 返回委买一至委买五价格区间内买盘的加全平 均价。 周期内前五档申卖盘的加全平均价。 L2_ASKAVPRICE 用法:L2_ASKAVPRICE 返回委卖一至委卖五价格区间内卖盘的加全平 均价。 周期内空头大单成交额。 L2_ASKBIGTURNOVER 用法:L2_ASKBIGTURNOVER 返回空头大单成交额。 注:金额大于 2000 万定义为大单 周期内多头大单成交额。 L2_BIDBIGTURNOVER 用法:L2_BIDBIGTURNOVER 返回多头大单成交额。 注:金额大于 2000 万定义为大单 周期内空头大单成交次数。 L2_ASKBIGCOUNT 用法:L2_ASKBIGCOUNT 返回周期内空头大单成交次数。 注:金额大于 2000 万定义为大单 周期内多头大单成交次数。 L2_BIDBIGCOUNT 用法:L2_BIDBIGCOUNT 返回周期内多头大单成交次数。 注:金额大于 2000 万定义为大单

周期内总成交额。 L2_TOTALTURNOVER 用法:L2_TOTALTURNOVER 返回总成交额。 周期内卖 1 委托明细大量次数。 L2_ASKBIGENTRASTCOUNT 用法:L2_ASKBIGENTRASTCOUNT 返回卖 1 委托明细大量次数。 注:金额大于 400 万定义为大量 周期内买 1 委托明细大量次数。 L2_BIDBIGENTRASTCOUNT 用法:L2_BIDBIGENTRASTCOUNT 返回买 1 委托明细大量次数。 注:金额大于 400 万定义为大量 该周期最后时刻的买卖价格。 用法:L2_PERIOD_DATA(TEXT)求内容为 TEXT 的该周期最后盘面数据。 例子:L2_PERIOD_DATA('bid1');//取得该周期最后盘面的买 1 数据 L2_PERIOD_DATA(TEXT) TEXT 的内容可为:买 1-买 5 买 1 量-买 5 量卖 1-卖 5 卖 1 量-卖 5 量 'bid1' 'bid2' 'bid3' 'bid4' 'bid5' 'ask1' 'ask2' 'ask3' 'ask4' 'ask5' 'bidvol1' 'bidvol2' 'bidvol3' 'bidvol4' 'bidvol5' 'askvol1' 'askvol2' 'askvol3' 'askvol4' 'askvol5' 取每笔买卖盘数据(只能用于 Tick 图,每笔 Tick 时间间隔请设置为 0)。 用法:L2_TICK_DATA(TEXT)求内容为 TEXT 的盘面实时数据。 例子:L2_TICK_DATA('bid1');//取得盘面最后的买 1 数据 TEXT 的内容可为: 买 1-买 5 卖 1-卖 5 买 1 量-买 5 量卖 1 量-卖 5 量 bid1,bid2,bid3,bid4,bid5,ask1,ask2,ask3,ask4,ask5, bidvol1, bidvol2,bidvol3,bidvol4,bidvol5,askvol1,askvol2, askvol3,askvol4,askvol5 总买总卖总买量总卖量 tbid,task,tbidvol,taskvol L2_TICK_DATA(TEXT) 委买 1-委买 10 委卖 1-委卖 10 buy_entrust1,buy_entrust2,buy_entrust3,buy_entrust4, buy_entrust5, buy_entrust6,buy_entrust7,buy_entrust8,buy_entrust9, buy_entrust10, sell_entrust1,sell_entrust2,sell_entrust3,sell_entrust4, sell_entrust5, sell_entrust6,sell_entrust7,sell_entrust8,sell_entrust9, sell_entrust10 最新价持仓量主动买卖(返回意义-1 没取到,0 主动买,1 主动卖,2 换手)成交量 newprice,opi,activity,deltavol

10、头寸函数(连接文华服务器才能使用) 、头寸函数(连接文华服务器才能使用)
TRD_ASSETS 取出交易系统中的权益。 用法:TRD_ASSETS 返回交易系统的权益。 注意:该函数只有登陆一键通下单系统才能使用。效果测试不 执行此函数。 TRD_CAPITAL 取出交易系统中的可用资金。 用法:TRD_CAPITAL 返回交易系统的可用资金。 注意:该函数只有登陆一键通下单系统才能使用。 效果测试不执行此函数。 TRD_LONGSPRICE 取出交易系统中的多头开仓均价。 用法:TRD_LONGSPRICE 返回交易系统的多头开仓均价。 注意:该函数只有登陆一键通下单系统才能使用。 效果测试不执行此函数。 TRD_SHORTSPRICE 取出交易系统中的空头开仓均价。 用法:TRD_SHORTSPRICE 返回交易系统的空头开仓均价。 注意:该函数只有登陆一键通下单系统才能使用。 效果测试不执行此函数。 TRD_LONGSOPI 取出交易系统中的多头持仓。 用法:TRD_LONGSOPI 返回交易系统的多头持仓。 注意:该函数只有登陆一键通下单系统才能使用。 效果测试不执行此函数。 TRD_SHORTSOPI 取出交易系统中的空头持仓。 用法:TRD_SHORTSOPI 返回交易系统的空头持仓。 注意:该函数只有登陆一键通下单系统才能使用。 效果测试不执行此函数。 TRD_LONGSOPIREMAIN 取出交易系统中的多头可平仓手数。 用法:TRD_LONGSOPIREMAIN 返回交易系统的多头可平仓手数。 注意:该函数只有登陆一键通下单系统才能使用。 效果测试不执行此函数。 TRD_SHORTSOPIREMAIN 取出交易系统中的空头可平仓手数。 用法: TRD_SHORTSOPIREMAIN 返回交易系统的空头可平仓手数。 注意:该函数只有登陆一键通下单系统才能使用。 效果测试不执行此函数。 TRD_LONGSEARN 取出交易系统中的多头浮动盈亏。 用法:TRD_LONGSEARN 返回交易系统的多头浮动盈亏。 注意:该函数只有登陆一键通下单系统才能使用。 效果测试不执行此函数。 TRD_SHORTSEARN 取出交易系统中的空头浮动盈亏。

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

11、信号记录函数(连接文华服务器才能使用) 、信号记录函数(连接文华服务器才能使用)
BKPRICE 模型买开信号价位。 用法:BKPRICE 返回上一次模型买开仓价。 BARSBK 上一次买开信号位置 用法:BARSBK 返回上一次买开仓距离当前 k 线的 k 线数。 SKPRICE 模型卖开信号价位。 用法:SKPRICE 返回上一次模型卖开仓价。 BARSSK 上一次卖开信号位置 用法:BARSSK 返回上一次卖开仓距离当前 k 线的 k 线数。

四、交易指令
交易模型中的交易指令

期货交易指令

买开 买平 卖开 卖平 买平后买开新仓 卖平后卖开新仓

公式中用 BK 表示 公式中用 BP 表示 公式中用 SK 表示 公式中用 SP 表示 公式中用 BPK 表示 公式中用 SPK 表示

股票、权证、外汇交易指令

买入 卖出

公式中用 BUY 表示 公式中用 SELL 表示

套利模型中的交易指令

第一腿买开,第二腿卖开 第一腿卖开,第二腿买开 第一腿买平,第二腿卖平 第一腿卖平,第二腿买平

公式中用 BKSK 表示 公式中用 SKBK 表示 公式中用 BPSP 表示 公式中用 SPBP 表示

五、编程举例: 编程举例: 举例
1. MACD 公式 MACD 公式有三个参数:SHORT(短期)、LONG(长期)、M 天数,一般为 12、26、10 MACD 公式的用法: ①DIFF、DEA 均为正,DIFF 向上突破 DEA,买入信号。 ②DIFF、DEA 均为负,DIFF 向下跌破 DEA,卖出信号。 ③DEA 线与 K 线发生背离,行情反转信号。 ④分析 MACD 柱状线,由红变绿(正变负),卖出信号;由绿变红,买入信号。 其中: ⑴DIFF 线 ⑵DEA 线 收盘价短期、长期指数平滑移动平均线间的差 DIFF 线的 M 日指数平滑移动平均线

⑶MACD 线 DIFF 线与 DEA 线的差,彩色柱状线 按照上述原理,MACD 公式应该写成如下形式: 参数表: 参数名 最小值 最大值 默认值 SHORT 5 40 12 LONG 20 100 26

M 2 60 10 公式写成如下形式即可: DIFF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG); DEA:=MA(DIFF,M); MACD:2*(DIFF-DEA); 公式的第一行对应于⑴,公式的第二行对应于⑵,公式的第三行对应于⑶。

公式: 2. KD 公式: 算法:对每一交易日求 RSV(未成熟随机值) ⑴RSV=(收盘价-最近 N 日最低价)/(最近 N 日最高价-最近 N 日最低价)×100 ⑵K 线:RSV 的 M1 日移动平均 ⑶D 线:K 值的 M2 日移动平均。 参数:N、M1、M2 天数,一般取 9、3、3 用法: ①D>70,超买;D<30,超卖。 ②线 K 向上突破线 D,买进信号;线 K 向下跌破线 D ,卖出信号。 ③线 K 与线 D 的交叉发生在 70 以上,30 以下,才有效。 ④KD 指标不适于发行量小,交易不活跃的股票; ⑤KD 指标对大盘和热门大盘股有极高准确性。 参照 KD 公式算法,KD 公式可以按照如下方式来编写。 参数表: 参数名称 最小值 最大值 缺省值 N 1 100 9 M1 2 40 3 M2 2 40 3 公式的内容如下: RSV:=(CLOSE-LLV(CLOSE,N))/(HHV(CLOSE,N)-LLV(CLOSE,N))*100; K:SMA(RSV,M1,1); D:SMA(RSV,M2,1);

3. K 线: 算法略。 公式如下: TMP:=OPEN-CLOSE; DRAWLINE(TMP>0.00001,HIGH,TMP>0.00001,OPEN,COLORCYAN); DRAWLINE(TMP>0.00001,LOW,TMP>0.00001,CLOSE,COLORCYAN); DRAWLINE(TMP<-0.00001,HIGH,TMP<-0.00001,CLOSE,COLORRED); DRAWLINE(TMP<-0.00001,LOW,TMP<-0.00001,OPEN,COLORRED); DRAWLINE(ABS(TMP)<0.00001,LOW,ABS(TMP)<0.00001,OPEN,COLORWHITE); DRAWLINE(ABS(TMP)<0.00001,HIGH,ABS(TMP)<0.00001,OPEN,COLORWHITE); STICKLINE(TMP>0.00001,OPEN,CLOSE,COLORCYAN,0); STICKLINE(TMP<-0.00001,OPEN,CLOSE,COLORRED,1); 公式说明: 第一行,当当前周期收阴时,从 HIGH 向 OPEN 画直线,颜色为 COLORCYAN; 第二行,当当前周期收阴时,从 LOW 向 CLOSE 画直线,颜色为 COLORCYAN;

第三行,当当前周期收阳时,从 HIGH 向 CLOSE 画直线,颜色为 COLORRED; 第四行,当当前周期收阳时,从 LOW 向 OPEN 画直线,颜色为 COLORRED; 第五行,当当前周期平盘时,从 LOW 向 OPEN 画直线,颜色为白色; 第六行,当当前周期平盘时,从 HIGH 向 OPEN 画直线,颜色为白色; 第七行,当当前周期收阴时,从 OPEN 向 CLOSE 画实心柱线,颜色为 COLORCYAN; 第八行,当当前周期收阳时,从 OPEN 向 CLOSE 画空心柱线,颜色为 COLORRED。

论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

返回列表