-
1
、引用数据
AVPRICE
引用均价
(
在盘后对于国内三个期货交易所指结算价
)
SETTLE
引用结算价
(
如果用在周期小于
'
日
'
的
K
线上如
5
分钟
K
线,一小时
< br>k
线,每根
k
线
返回的值表示这根
k
线当日开盘时到这根
k
线的为止的结算价
(
均价
)
如果用在周期大于等于
'
日
'
的
K
线上,返回当根
K
线结束时间所在日的结算价
.)
CLOSE
引用收盘价
(
在盘中指最新价
)
,也可
简写为
C
。
HIGH
引用最高价,也可简写为
H
。
LOW
引
用最低价,也可简写为
L
。
OPEN
引用开盘价,也可简写为
O
。
OPI
引用持仓量
REF(X,N)
p>
引用
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)
若
p>
X
条件成立
,
则将
当前位置到
N
周期前的数值设为
1
p>
。
『未来函数』
例:
BACKSET(CLOSE>OPEN,3);
表示当<
/p>
K
线收阳时,自当前位置到
3
周期前的数值设为
1
该函数参数支持变量计算如
BACKSET(CLOSE>OPEN,VAR1);//VAR1
< br>是变量
BARSLAST(X)
求上一次条件成立到当前的周期数。
例:
BARSLAST(X):
p>
上一次满足
X
条件到现在的
K
线根数。
如果本根
K
线满足
X
条件,
则<
/p>
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
之间。
计算方法:
D
MA(N)=DMA(N-1)*(1-A)+X(N)*A
其中
DMA(N-1)
为第
(N-1)
天的
DMA
值。
EMA(X,N)
表
示求
X
在
N
周期内的平滑移动
平均。
(指数加权)
计算方法:
p>
EMA(X,N)=[2*X+(N-1)*EMA(X,(N-1))]/(N+1) <
/p>
其中
EMA(X,(N-1))
为第
p>
(N-1)
天的
EMA
值。
EMA2(X,N) <
/p>
表示求
X
在
N<
/p>
周期内的加权平均。
(线性加权)
p>
计算方法:
EMA2(X,N)=(N*X0+(N-1)*X1+
(N-2)*X2+...+1*XN)/(N+(N-1)+(N-2)+...+1),X0
表示本周
期值,
X1
表示上一
周期值。
HHV(X,N)
p>
得到
X
在
N
周期内的最高值,如果
N
=
< br>0
,则从本地数据的第一个有效周期开始算
起。
例:
HHV(HIGH,13);
求
13
个周期内的最高价的最大值。
HHVBARS(X,N)
< br>得
到
X
在
N
周期内的最高值位置到当前的周期数。如果
N=0
,则从本地数据
的第一个有效周期开始算起。
例:
HHVBARS(VOL,0);
求历史成交量最大的周期到当前的周期数。
LLV(X,N)
得到
X
在
N
周期内的最小值,
如果
N=0
,则从本地数据的第一个有效周期开始算
起。
例:
LLV(LO
W,25);
表示求
25
个周期内最低
价的最小值。
LLVBARS(X,N)
得到
X<
/p>
在
N
周期内的最小值的位置到当前的周期
数。如果
N=0
则从本地数据
的第一个
有效周期开始算起。
例:
LLVBA
RS(VOL,0);
求历史成交量最小的周期到当前的周期数。
MA(X,N)
求
X
在
N
周期内的简单移动
平均。
计算方法:
MA=(A1+A
2+A3+A4+A5)/5
,求
A
在
5
个周期内的简单移动平均
ZIGZAG(X,P
,N)
p>
之字转向
,
当
X<
/p>
变化量超过
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)
p>
取得
ZIGZAG
前
M
个波峰的值。其中
X
为数据,
p>
P
为转折值(如果
N
为
1
,这
个值为百分比数,否则为价
位差值绝对值)
,
M
为大于等于
1
的整数。
『未来函数』
例:
PEAK(HIGH,10,1,1);
表示最高价的
10%
的之字转向的上一个波峰的数
值
;
PEAK(MA(HIGH,34),100,1,0);
表
示
34
个周期内最高价均线的
100<
/p>
个价位的之字转向的上一个波峰的数值。
PEAKBARS(X,P
,M,N)
取
得
ZIGZAG
前
M
个波峰到当前周期的周期数。其中
X
为数据,
P
为转折
值(如果<
/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
< br>个波谷的值。
其中
X
为数据,<
/p>
P
为转折值
(如果
N
为
1
,
这
个值为百分比数,否则为价位差值绝对值)
,
M
为大于等于
1
的整数。
『未来
函数』
例:
TROUGH(LOW,10,1,1);
表示最低价的
10%
的之字转向的上一个波谷的数值
。
TROUGH
(MA(LOW,34),100,1,0);
表示
34
p>
个周期内最低价均线的
100
个价位的之字
转向的上一个波谷的数值。
TROUGHBARS(X,P
,M,N)
< br>取得
ZIGZAG
前
M
个波谷到当前周期的周期数。其中
X
为数据,<
/p>
P
为
转折值(如果
N
为
1
,这个值为百分比数,否则为
价位差值绝对值)
,
M
为大于等于
p>
1
的整
数。
『未来
函数』
TROUGH(LOW,10,1,1);
表示最低价的
p>
10%
的之字转向的上一个波谷到当前的周期数。
< br>
TROUGH
(MA(LOW,34),100,1,0);
表示
34
p>
个周期内最低价均线的
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
为常数)
。
计算方法:
p>
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)
得到<
/p>
X
向前累加直到大于
A
< br>时的周期数。
TRMA(X,N)
求
X
在
N
周期内的三角移动平均。
TSMA(X,N)
求
p>
X
在
N
周期内的时
间序列移动平均。
计算方法:
TSMA(X,N)=
FOCAST(X,N)+SLOPE(X,N)
。
3
、数理统计
AVEDEV(X,N)
求
X
在
N
周期内的平均
绝对偏差。
DEVSQ(X,N)
数据偏差平方和。
FORCAST(X,N)
p>
得到
X
的
N
周期线性回归预测值。
例
< br>:FORCAST(CLOSE,5);
表示求
5
周期线性回归预测
SLOPE(X,N)
得到
X
在
N
周期内的线性回归的斜率
例
:SLOPE(CLOSE,5);
表示求
5
周期线性回归线的斜率
STD(X,N)
得到
p>
X
在
N
周期内的标
准差
STDP(X,N)
得到
p>
X
在
N
周期内的总
体标准差
VAR(X,N)
得到<
/p>
X
在
N
周期内的
样本方差
VARP(X,N)
得到
X
在
N
周期内
的总体样本方差
数理统计举例说明:
设一个数列,数列中数据的总个数为
N
,以今天(
2005-10-14
)五天
内的
A0605
收盘价为例,
N
p>
就为
5
。数列的内容为:
< br>{
2766
,
2805
,
2814
,
2886
,
2885
}
。
1
、
算<
/p>
术
平
均
值
MA(CLOSE,5)
:
数
据
总
和
除
以
总
个
数
N
。
(2766+2805+2814+2886+2885)
/5=2831.20
。
可以用公式
MA(CLOSE,5),
从今天的值上看出。
2
、偏差:每个数据,减去算术平均值的结果。
p>
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)
:
将
偏
差
的
绝
对
值
< br>相
加
,
除
以
总
个
数
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)<
/p>
:
是总体方差的
N/(N-1)
倍。
2226.16*5/(5-1)=2782.70
估算样本
方差,
总比总体样本方差大一点,当
N
够大时,两者趋于相等。
7
、
总
体
标
准
差
STDP(X,N)
:
方
差
的
开
方<
/p>
。
[(-65.2)2+
(-26.2)2+
(-17.2)2+
(54.8)2+
(53.8)2/5]?=47.18
p>
。
8
、标准差<
/p>
STD(X,N)
:估算样本方差的开方。
[2226.16*5/(5-1)]?=52.75
同
样,估算标准差也
比总体标准差大一点,当
N
< br>够大时,两者趋于相等。
4
、逻辑判断
BETWEEN(A,B,C)
判
断条件“
A
位于
B
及
C
之间”是否成立,如果条件成立则返回
1(yes),
否则返回
0(no)
< br>。
例:
BETWEEN(CLOSE,MA5,MA40); <
/p>
表示收盘价介于
5
日均线与
40
日均线之间。
CROSS(X,Y)
表示
X
上穿
Y
。
例:
CROSS(CLOSE,MA(CLOSE,5));
表示收盘线从下方向上穿过
5
日均线<
/p>
EXIST(COND,N)
p>
判断
N
个周期内是否有满足条件
COND
的情况发生。
例:
EXIST(CLOSE>REF(HIGH,1),10);
< br>表示
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
p>
,
则返回
1
。
p>
否则返回
0
。
<
/p>
例:
LONGCROSS(CLOSE,MA(CLOSE,10
),20);
表示收盘线在
10
日均
线之下持续
20
周期后从下向上穿过
1
0
日均线。
NOFILTER
交易模型买卖指令信号过滤函数。
(仅适用于交易模型的过滤)
设置模型对产生
的交易指令不过滤,
则出现的任何交易指令都会执行,
如果没有
设置
“不过
滤”
,则产生的指令将按照
如下规则过滤:
1.
连续的同方向指
令只有第一个有效,其他的将被过滤;
2.
< br>交易指令必须配对出现(例如:前面已经有了买开指令,则后面只允许出现卖平指令,其
< br>他的指令都被滤掉。
这也就意味着,
第一个指令只能是买
开或者卖开指令,
其他的都被过滤)
;
3.
但是在进行模型效果测试及优化时,无论设置过滤与否,都
按照前面的规则对指令进行了
过滤。
IFELSE(C,A,B)
(08
版等以前版本里用
IF
函数表示
)
p>
。
如果条件
C<
/p>
成立则返回
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
的值。
例:
VAL
UEWHEN(HIGH>REF(HIGH,5),HIGH);
表示当前最高价大
于前五个周期最高价的最大值时返回当前最高价。
5
、数学运算
ABS(X)
求
X
的绝对值
例:
ABS(SAR(17,0.03,0.3));
返回抛物转向
SAR(17,0.03,0.3)
的绝对值。
ACOS(X) <
/p>
求
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<
/p>
为底的对数。
例:
LN(OPEN);
求开盘价的自然对数。
LOG(X)
得到
X
的常用对数,取得
X
的以<
/p>
10
为底的对数。
例:
LOG(OPEN);
求开盘价的以
< br>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
p>
时返回
1,
否则返回
0
。
例:
NOT(TIME=090530);
表示该周期对应的时间不是
9:05:30AM
。
POW(A,B)
得到
A
的
B
次幂。
例:
POW(CLOSE,2);
求得收盘价的
2
次方。
REVERSE(X)
取反,返回符号相反的数值。
例:<
/p>
REVERSE(LOW);
返回
-LO
W
。
SGN(X)
得到
X
的符号,如果
X>0
则返回
1
,
如果
X<0
则返回-
1
,否则返回
0
。
SIN(X)
得到
X
的正弦值。
SQRT(X)
得到
X
的平方根。
例:
SQRT
(CLOSE);
收盘价的平方根。
SQUARE(X)
得到
X
的平方。
例:
SQU
ARE(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
取<
/p>
得当前周期的星期数(
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
:双向延伸)
。
p>
例:
DRAWSL(LOW=LLV(LOW,50),LOW,5
,3,2,COLORRED);
表示当前最低价等于
50<
/p>
周期内的最小值时,从当前最小值开始以每隔
5
< br>个点的斜率画长度
为
3
个周期向
右延伸的斜线,颜色为红色。
DRAWNUMBER
(COND,DATA,NUMBER,PRECISION,COLOR)
画数字。当条件
COND
满足时,在
DATA
位置写数
字
NU
MBER
(为数组)
,精度为
PREC
ISION
(小数点后有几位数字)
。
例:
DRAWNUMBER(CLOSE/OPEN>1.08
,HIGH,(CLOSE-OPEN)/OPEN*100,2,COLORRED);
表示当日涨幅大于
8%
时在最高价位置显示涨幅
(
相对开盘价的百分比
)
。
FILLRGN
(COND,DATA1,DATA2,COLOR)
填充区
域,当条件
COND
满足时,填充
DA
TA1
及
DATA2
包围的
区域。
例:
FILLRGN(MA5>MA10,MA5,MA10,COLOR
RED);
表示
MA5>MA10
时
以红色填充
MA5
和
MA10
之间的区域。
POLYLINE
(COND,DATA,COLOR) <
/p>
画折线,当条件
COND
满足时,连接各
个
DATA
点。
例:
POLYLINE(CLOSE>=HHV(CLOSE,100),CLOS
E,COLORRED);
表示在收盘价创
100
天新高点之间画折线。
PARTLINE
(COND,DATA,COLOR) <
/p>
画线段,条件
COND
满足时,以
COLOR
颜色的直线连接
DATA
各点。
例:
PART
LINE(HIGH>REF(HIGH,1),HIGH,COLORRED);
表示当期最高价大于前期最高价用红色绘制最高价线段。
STICKLINE
(C,P1,P2,COLOR,EMPTY)
如果条件
p>
C
满足时,从
P1
到
P2
画柱线,颜色为
Color,<
/p>
如果
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
引
用结算价
(
如果用在周期小于
'
p>
日
'
的
K
线上如
5
分钟
K
线,一小时
k
线,每根
k
线返回的值表
示这根
k
线当日开盘时到这根
k
线的为止的结算价
(
均价
)
如果用在周
期大于等于
'
日
'
的
K
线上,返回当根
K
线结束时间所在日的结算价
.)
BACKSET(X,N)
『未来函数』
函数参数不支持变量计算
函
数
参
数
支
持
变
量
计
< br>算
如
:BACKSET(CLOSE>OPEN,VAR
1);//VAR1
是变量
DMA
函数参数不支持变量计算
DMA(X
,N)
返回
X
的动态移动平均,其中<
/p>
N
必须介于
0
及
1
之间。
N
支持变量。
计算方法:
DMA(N)=DMA(N-1)*(1-A)+X(N)*A
其中
DMA(N-1)
为第
(N-1)
天的
DMA
值。
HHV(X,N)
函数参数
N
不支持变量计算
函数参数
< br>N
支持变量计算
LLV(X,N)
函数参数
N
不支持变量计算
函数参数
< br>N
支持变量计算
COUNT(X,N)
函数参数
N<
/p>
不支持变量计算
函数参数
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
,缺省值为
< br>12.
IF(COND)
A,COLOR;
ELSE
B, COLOR;
条件
循环函数。多层次循环时使用“
{}
”套用。
< br>
例:取得
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
文华码
(文华码见
/guide/
其他—<
/p>
>
期货品种代码表)
PERIOD
被引用的周期
FORMULA
被引用指标名称
< br>例:引用
[
豆粕
1005]
p>
合约日
K
线图周期的指标
< br>[]
中
K
值、
D
值:
#IMPORT
[1205,DAY
,KDJ] AS VARKDJ
K1:KDJ.K;
D1:KDJ.D;
注意点:
1.
只能引用一个当前存在的‘
.FML
文件’
< br>(指标文件)中的变量,不支持同时引用多个指标
和多个周期。
< br>
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
指令
意义
甲合约买开;乙合约卖开信号
甲合约买平;乙合约卖平信号
甲合约卖开;乙合约买开信号
甲合约卖平;乙合约买平信号
请注意,在效果测试使用如下机制:
连续的开仓指令只使用第一个指令进行开仓,
开仓时使用当时的全部资金,
连续的平仓指令,
只有第一个有效,平掉当时的全部持仓,其他的平仓指令算
做错误指令
!
(六)快速入门
< br>1
、如何把熟悉的技术指标转换成交易模型?
第一步:把
KDJ
< br>指标公式
COPY
过来。
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LL
V(LOW,N))*100;//{
算出
(收盘价
-N
周期内的最低价)
/
(
N
周期的最高价—
N
周期内的最低价)
*100
的值,用
< br>RSV
来表示。
}
BACKG
ROUNDSTYLE(1);{
确定背景的样式,
(钝化)<
/p>
}
K:SMA(RSV,M1,1),COLORWHITE;
//{RSV
的移动加权平均的值用
K
表示,并且画白色的线。
}
D:SMA(K,M2,1),C
OLORYELLOW;//{K
的移动加权平均的值用
D
p>
表示,并且画黄色的线。
}
J:3*K-
2*D,COLORMAGENTA;//{3
倍的
K
减去
2
倍的
D
的值用
J
表示,并且画紫色的线。
}
第二步:原有公式主要是画线,所以稍作修改。如下:
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LL
V(LOW,N))*100;//{
第一行不需要修改
} <
/p>
//{
第二行删除,在交易模型中不用钝化
}
K:=SMA(RSV,M1,1);//{
在“
:
”后加上“
=
”变
为只定义不用画线,所以把后面的颜色函数
(
COLORWHI
TE
)也去掉
}
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
,发出卖平交易指令
< br>}
CROSS(D,K),SK;//{K
向下穿越<
/p>
D
,发出卖开交易指令
}
CROSS(0,J),BP;//{J
向下穿越
0
,发出买平交易指令
}
//
后为文字说明,编写模型时不用写出
2
、如何编制交叉(金叉
/
< br>死叉)类型的交易模型?
MA5:=MA(CLOSE
,5);//{5
个周期收盘价的简单移动平均
}
MA10:=MA(CLOSE,10);//{10
个周期收盘价的简单
移动平均
}
MA20:=MA(C
LOSE,20);//{20
个周期收盘价的简单移动平均
}
CROSS(MA10,MA20),BK;//{
当
MA10
上穿
MA20
时,发出买入开仓交易指令
}
CR
OSS(MA10,MA5),SP;//{
当
MA10
上穿
MA5
时,发出卖出平仓交易指令
}
CROSS(MA20,MA10),SK;//{
当
MA20
上穿
MA10<
/p>
时,发出卖出开仓交易指令
}
CROSS(MA5,MA10),BP;//{
当
< br>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<
/p>
周期均线并
且前一个周期的
J
值(
KDJ
)少于
70<
/p>
或者
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
周期均线下叉
p>
10
周期均线并
且前一个周期的
J
值(
KDJ
)大于
p>
30
或者
KD
死叉
时并且
J
值大于
70
< br>时发出卖出开仓交易指
令
}
C
ROSS(K,D)&&REF(J,1)<30,BP;//{KD
出现金叉并且前一
个周期
J
值小于
30
< br>时发出买入平仓交
易指令
}
{{}
内为文字说明,编写模型时不用写出
}
4
、如何
编制
REF(X,N)
类型的交易模型?
A:=OPEN-(((REF(HIGH,1)-REF(LOW,1))+(R
EF(HIGH,2)-REF(LOW,2))+(REF(HIGH,3)-REF
(LOW,3))+(REF(H
IGH,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;//{
连续四个周期的收盘价大于前一周期的收盘价并且当前周期的收
盘价小于等于<
/p>
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
周期均线上穿<
/p>
10
周期均线或者收盘价与
5
周期
均线的差值大于
8
时
,发出买入开仓交易指令
}
(CLOSE-MA5)>6,SP;//{
收盘价与
5
周期均线的差值大于
6
时,发出卖出平仓交易指令
}{{}
内为
文字说明,编写模型时不用写出
}
6
、如何编制简单价差类型的套利模
型?
CROSS(300,CLOSE),BKSK;
p>
//{CLOSE
为两个品种的价差。当价差小于
< br>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
< br>公式
}
CLOSE<300&&CROSS(K,D)
,BKSK;//{
当价差小于
300
并且
K
上穿
D
时,买入开仓前一品种,卖
出开仓后一品种
}
CROSS(CLOSE,500)||CROSS(D,K),SPBP;//{
当价差上穿
500
或者
D
上穿
K
时,
卖出平仓前
一品种,
买入平仓后一品种
}
CLO
SE>600&&CROSS(D,K),SKBK;//{
当价差大于
600
并且
D
上穿
K
时,卖出开仓前一品种,买
入开仓后一品种
p>
}
CROSS(400,CLOSE)||CROSS(K,D)
,BPSP;//{
当价差下穿
400
或者
K
上穿
D
时,
买入平仓前一品种,
卖出平仓后一品种
}
技术指标模型大全
1 ADTM
模型
< br>DTM:=IFELSE(OPEN<=REF(OPEN,1),0,MAX((HIGH- OPEN),(OPEN-REF(OPEN,1))));
-
-
-
-
-
-
-
-
-
上一篇:用英语描述图表
下一篇:自考00596英语阅读(二)自考模拟试题(四)