文华软件程序化交易编写技术参考
专业程序化交易服务 www.360bull.cn QQ:643164928
文华-程序化交易编写技术参考
一、操作符
操作符 意义 例
, 加法 CLOSE,OPEN 表示求收盘价及开盘价的和。
CLOSE,OPEN 表示求收盘价及开盘价的差。 , 减法
CLOSE*OPEN 表示求收盘价及开盘价的积。 * 乘法
CLOSE/OPEN 表示求收盘价及开盘价的商。
除法 /
&& 与(并且),也可简写为AND
或(或者), 也可简写为OR ||
> 大于 CLOSE>OPEN 表示判断当前周期是否收阳。 < 小于 CLOSE=OPEN 表示判断当前周期是否平盘。
>= 大于等于
<= 小于等于
<> 不等于
= 等于操作符
只定义一个局部变量 TMP1:=(OPEN+CLOSE)/2; :=
(这个变量在画图时是不画的) MA(TMP1,10);
上面的公式的第一个语句定义了一个局部变量TMP1,在下面一行中引用: 声明了一个变量,
了这个局部变量,但是要注意的是这个公式在画图的时候只画了第二条在画图时画出它并且按
语句所求出的结果。 这个名字显示。
相反下面这个公式则需要画出两条线,第一条是自己定义的均价线,同
时显示了均价的名称为AVP,第二条线是均价的简单移动平均线。
AVP:(OPEN+CLOSE)/2;
MA(AVP,10);
二、语法
1.关于公式名称:
公式的名称不可以和已经存在的公式重复。
1 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
2.关于参数:
每个自编公式最多可以定义四个参数,参数的定义如下, 首先是参数名称,然后是参数的最小值,最大值,最后是参
数的默认值。在定义参数时要注意的是参数名称不可以重复。
3.关于变量名称:
变量名称不可以互相重复,不可以和参数名重复,不可以和函数名称重复。
4.关于公式内容:
公式的每个语句应该以分号结束,包括最后一条语句。在数据公式的时候请您注意一定要使用半角输入。在编写公式的
过程中,如果您不记得某个函数的确切写法,可以选择插入函数来插入函数。
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三者中最大的数值。
2 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
7.IFELSE(C,A,B)
如果条件C成立则返回A值,否则返回B值
例:IFELSE(CLOSE>REF(CLOSE,1),1,0);表示若今日收盘价高于前一日收盘价,则返回1,否则返回0 三、函数
1.引用数据
AVPRICE 引用均价(在盘后对于国内三个期货交易所指结算价) SETTLE 引用结算价(只有在日线周期盘后才能引用当日的结算
价)
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的合约品种的最
新价。
PARAM 在源码中定义参数。
[参数名称,最小值,最大值,缺省值] 例:PARAM[N,1,100,12]
3 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
MAN:MA(CLOSE,N);
表示参数为N,最小值为1,最大值为100,缺省值为12. #IMPORT[CODE,PERIOD,FORMULA]AS VAR; CODE 文华码PERIOD 周期FORMULA 引用模型名 VAR 定义变量名
例子:
#IMPORT [1205,MIN5,TEST] AS M1005
意思是引用[豆粕1005] 五分钟图上指标[TEST.FML] 的数据
使用的方法:
如当前存在一个指标TEST.FML
//TEST.FML
CL:=CLOSE;
OP:=OPEN;
#IMPORT [CODE,PERIOD,FORMULA] AS VAR
我想在新建的指标 TEST1中引用[豆粕1005] 五分钟周期(Mytrader2009和Myadvisor(赢智)支持)
上指标[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 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
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,则从本地数据
5 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
的第一个有效周期开始算起。
例: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%的之字转向的上一个波峰到
当前的周期数
6 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
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) 得到X向前累加直到大于A时的周期数。
TRMA(X,N) 求X在N周期内的三角移动平均。
TSMA(X,N) 求X在N周期内的时间序列移动平均。
7 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
计算方法: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+
8 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
(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 交易模型买卖指令信号过滤函数。(仅适用于交易模型的过滤)
9 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
交易模型公式后加“NOFILTER;”是指不需要过滤,出现任何交易指令都会
执行。公式后不加“NOFILTER;”是指当连续出现同方向的交易指令时,系
统只显示出第一个交易指令,其他交易指令自动被过滤。 ISDOWN 判断该周期是否收阴。
ISEQUAL 判断该周期是否平盘。
ISUP 判断该周期是否收阳。
ISLASTBAR 判断当前周期是否为最后一根K线。
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);求开盘价的自然对数。
10 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
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) 得到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)。
11 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928 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, 画斜线,当条件COND满足时,从DATA开始以每个周期相差SLOPE个点的斜COLOR) 率画斜线,划线长度为LEN个周期,EXPAND为线段的延长方式(0:不延伸;
1:向左延伸;2:向右延伸;3:双向延伸)。
例:DRAWSL(LOW=LLV(LOW,50),LOW,5,3,2,COLORRED); 表示当前最低价等于
50周期内的最小值时,从当前最小值开始以每隔5个点的斜率画长度为3个
周期向右延伸的斜线,颜色为红色
DRAWNUMBER 画数字。当条件COND满足时,在DATA位置写数字NUMBER(为数组),精度(COND,DATA,NUMBER,PRECISION,COLOR) 为PRECISION(小数点后有几位数字)。
例:
DRAWNUMBER(CLOSE/OPEN>1.08,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED);
表示当日涨幅大于8%时在最高价位置显示涨幅(相对开盘价的百分比)。
12 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
FILLRGN 填充区域,当条件COND满足时,填充DATA1及DATA2包围的区域。 (COND,DATA1,DATA2,COLOR) 例:FILLRGN(MA5>MA10,MA5,MA10,COLORRED); 表示MA5>MA10时以红色填充
MA5和MA10之间的区域。
POLYLINE 画折线,当条件COND满足时,连接各个DATA点。 (COND,DATA,COLOR) 例:POLYLINE(CLOSE>=HHV(CLOSE,100),CLOSE,COLORRED); 表示在收盘价创
100天新高点之间画折线。
PARTLINE 同POLYLINE。
(COND,DATA,COLOR) 例:PARTLINE(HIGH>REF(HIGH,1),HIGH,COLORRED); 表示当期最高价大于前
期最高价用红色绘制最高价连线线段。
STICKLINE 如果条件C满足时,从P1到P2画柱线,颜色为Color,如果Empty取1,则(C,P1,P2,Color,Empty) 为空心柱;如果Empty取0,则为实心柱。
例:STICKLINE(OPEN-CLOSE>0,OPEN,CLOSE,COLORCYAN,0); 表示当开盘价大
于收盘价时,从开盘价到收盘价画青色的实心柱,即K线阴线的实体部分。 VERTLINE 画垂直线,当条件COND满足时,画垂直线。
(COND,COLOR) 例: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、颜色常数
常数 意义
13 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
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返回买主动次数。
14 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
注: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返回周期内多头大单成交次数。
15 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
注:金额大于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,
L2_TICK_DATA(TEXT)
bidvol1,bidvol2,bidvol3,bidvol4,bidvol5,askvol1,askvol2,askvol3,askvol4,askvol5
总买总卖总买量总卖量
tbid,task,tbidvol,taskvol
委买1-委买10委卖1-委卖10
buy_entrust1,buy_entrust2,buy_entrust3,buy_entrust4,buy_entrust5,
16 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
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 取出交易系统中的多头持仓。
17 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
用法: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返回交易系统的涨停价格。
注意:该函数只有登陆一键通下单系统才能使用。
效果测试不执行此函数。
18 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
TRD_LIMITDOWN 取出交易系统中的跌停价格。
用法:TRD_LIMITDOWN返回交易系统的跌停价格。
注意:该函数只有登陆一键通下单系统才能使用。
效果测试不执行此函数。
设置模型每次下单按资金的比例下单。
用法:SETDEALPERCENT(fPercent)表示每次按资金的fPercent下单。
SETDEALPERCENT(fPercent) 例子:SETDEALPERCENT(0.2);//每次按资金比例的%20下单
注:不可与SETDEALVOL函数同时使用
交易系统必须启动
效果测试不执行此函数
设置模型每次下单按设置的手数下单。
用法:SETDEALVOL(nVol)表示每次模型下nVol手单。 SETDEALVOL(nVol) 例子:SETDEALVOL(2);//模型每次下单2手
注:不可与SETDEALPERCENT函数同时使用
交易系统必须启动
效果测试不执行此函数
11、信号记录函数(连接文华服务器才能使用)
BKPRICE 模型买开信号价位。
用法:BKPRICE返回上一次模型买开仓价。
BARSBK 上一次买开信号位置
用法:BARSBK返回上一次买开仓距离当前k线的k线数。 SKPRICE 模型卖开信号价位。
用法:SKPRICE返回上一次模型卖开仓价。
BARSSK 上一次卖开信号位置
用法:BARSSK返回上一次卖开仓距离当前k线的k线数。
19 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
四、交易指令
期货交易指令
买开 公式中用BK表示
买平 公式中用BP表示
卖开 公式中用SK表示
卖平 公式中用SP表示
买平后买开新仓 公式中用BPK表示
卖平后卖开新仓 公式中用SPK表示
股票、权证、外汇交易指令
买入 公式中用BUY表示
卖出 公式中用SELL表示
套利模型中的交易指令
第一腿买开,第二腿卖开 公式中用BKSK表示
第一腿卖开,第二腿买开 公式中用SKBK表示
第一腿买平,第二腿卖平 公式中用BPSP表示
第一腿卖平,第二腿买平 公式中用SPBP表示
图表 1
编程举例:
1. MACD公式
MACD公式有三个参数:SHORT(短期)、LONG(长期)、M 天数,一般为12、26、10
MACD公式的用法:
?DIFF、DEA均为正,DIFF向上突破DEA,买入信号。 ?DIFF、DEA均为负,DIFF向下跌破DEA,卖出信号。 ?DEA线与K线发生背离,行情反转信号。
?
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
MACD柱状线,由红变绿(正变负),卖出信号;由绿变红,买入信号。
20 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
其中:
?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公式可以按照如下方式来编写。
参数表:
21 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
参数名称 最小值 最大值 缺省值
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。
22 / 23
专业程序化交易服务 www.360bull.cn QQ:643164928
注:本文由期货华尔街(www.360bull.com)
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
,程序化交易模型编写服务QQ643164928
23 / 23