-
编辑平台的语法
自
编
公
1.
关于公式名称:
式
公式的名称不可以和已经存在的公式重复。
p>
支
2.
关于参数:
每个自编公式最多可以定义四个参数,参数的定义如下,
p>
首先是参数名称,然后是参数的最小
值,最大值,最后是参数的默认
值。在定义参数时要注意的是参数名称不可以重复。
3.
关于变量名称:
变量名称不可以互相重复,不可以和参数名重复,不可以和函数名称重复。
4.
关于公式内容:
公式的每个语句应该以分号结束,
包括最后一条语句。
在数据公式的时候请您注意一定要使用半
角输入。在编写公式的过程中,如果您不记得某
个函数的确切写法,可以选择插入函数来插入函
数。
5.
如果您在编写公式之后,想给这个公式加上注释、说明,可以点击
公式名称后面的“公式说
明”,在弹出窗口中输入。
ELSE:
该语句只有
Mytrader2009
和
Myadviso
r
(赢智)支持
< br>持
的
函
数
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
p>
三者中最大的数值。
(C,A,B)
如果条件
C
成立则返回
A
值
,
否则返回
B
值
p>
例:
IFELSE(CLOSE>REF
(
CLOSE,1
)
< br>,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(CLOS
E,5);
表示引用自当前周期后第
5
个
周期的收盘价
VOL
GETPRICE(N)
引用成交量,也可简写为
V
。
根据文华码取出某一品种的最新价。
例:
GETPRICE(1209);
返回文华码为
1209
的合约品
种的最新价。
< br>
PARAM
[
参数名称,最
小值,最大值,缺省值
]
在源码中定义参数。
例:
PARAM[N,1,100,12]
MAN:MA(CLOSE,N);
表示参数为
N
,最小值为
1
,最大值为
100
,缺省值
为
12.
#IMPORT[CODE,PERIOD,FORMULA]AS
VAR;
CODE
文华码
PERIOD
周期
FORMULA
引用模型名
VAR
定义变量名
例子:
#IMPORT
[1205,MIN5,TEST] AS M1005
意思是引用
< br>[
豆粕
1005]
五分钟图上指标
[]
的数据
使用的方法:
如当前存在一个指标
#IMPORT
[CODE,PERIOD,FORMULA] AS VAR
(
Mytrader2009
和
Myadvisor
(赢智)支
持)
//
CL:=CLOSE;
OP:=OPEN;
我想在新建的指标
TEST1
中引用
[
豆粕
1005]
五分
钟周期上指标
[]
的数据
可以如下编写
TEST1
指标
//
#IMPORT [1205,MIN5,TEST] AS VARTEST
DD:;
DF:;
引用的约束
1.
只能引用
.FML
文件
2.
只能引用如下周期
MIN1
MIN3 MIN5 MIN10 MIN15
MIN30 HOUR1 HOUR3
HOUR8 DAY WEEK MONTH
3.
只能短周期
引用长周期比如不能日线周期上加载
引用了分钟数据的指标。
4.
被引用的指标中不能存在引用
<
/p>
5.
如果不写文华码,默认引用当前合约
2.
金融统计
BACKSET(X,N)
若
X
p>
条件成立
,
则将当前位置到
N
周期前的数值设为
1
。『未
来函数』
例:
BACKSET(CL
OSE>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
为常数,并且必须介于<
/p>
0
及
1
之间。<
/p>
计算方法:
DMA(N)=DMA(N
-1)*(1-A)+X(N)*A
其中
DMA(N-1)<
/p>
为第
(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*X
0+(N-1)*X1+(N-2)*X2+...+1*XN)/(N+(N-1)+(N-2)+...+1
),X0
表示本周期值,
X1
表示上一
周期值
...
HHV(X,N)
得
到
X
在
N
周期
内的最高值,
如果
N
=
0
,
则从本地数据的第一个有效周期开始
算起。
例:
HHV(HI
GH,13);
求
13
个周期内的最高
价的最大值。
HHVBARS(X,N)
得到
X
在
N
< br>周期内的最高值位置到当前的周期数。如果
N=0
,则从
本地数据的
第一个有效周期开始算起。
例:
HHVBARS(VOL,0);
求历史成交量最大的周期到当前的周期数
LLV(X,N)
得到
X
在
N
周期内的最小值,如果
N=0
,则从本地数据的第一个有效周期开始
算起。
例:
LLV(LOW,25);
表示求
25
个周期内最低价的最小值
LLVBARS(X,N)
得到
< br>X
在
N
周期内的最小值的位置到
当前的周期数。如果
N=0
则从本地数据的
第一个有效周期开始算起。
例:
LLVBARS(VOL,0);
求历史成交量最小的周期到当前的周期数
MA(X,N)
求
X
在
N
周期内的简单移动平均。
计算方法:
MA=(A1+A2+A3+A4+A5)/5
求
A
在
5
p>
个周期内的简单移动平均
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
个波峰的值。其中<
/p>
X
为数据,
P
为
转折值(如果
N
为
1
< br>,这个
值为百分比数,否则为价位差值绝对值),
M
p>
为大于等于
1
的整数。『未来函
数』
例:
PEAK(H
IGH,10,1,1);
表示最高价的
10%
的之字转向的上一个波峰的数值
;
PEAK(MA
(HIGH,34),100,1,0);
表示
34
个周期内最高价均线的
100
个价位的之字
转向的上一个波峰的数值
PEAKBARS(X,P,M,N)
取得
< br>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
个波谷的值。其中
X
为数据,
P
为转折值(如果
N
为
1
,这个
值为百分比数,否则为价位差值绝对值),
M<
/p>
为大于等于
1
的整数。『未来函
数』
例:
TROUG
H(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%
的之字转向的上一
个波谷到当前
的周期数
TROUG
HBARS(MA(LOW,34),100,1,0);
表示
34
个周期内最低价均线的
100
个价
位
的之字转向的上一个波谷到当前的周期数
SAR(N,Step,Max)
得到抛物转向值。
N
为计算周期
,Step
为步长
,Max
为极值。(系统函数,计算
< br>步骤后台自动完成)
例:
SA
R(17,0.03,0.3);
表示计算
17
个周期抛物转向,
步长为
3%
,
极限值为
30%
SMA(X,N,M)
得到
X
在
N
个周期内的移动平均,
< br>M
为权重(
M
为常数)。
计算方法:
SMA(N)=SMA(N-1
)*(N-M)/N+X(N)*M/N
SUM(X,N)
得到
X
在
N
周期内的总和,如果
N=0
,则从第一个有效周期开始算起。<
/p>
例
: SUM(VOL,10);
p>
表示统计
10
周期内的成交量总和
SUMBARS(X,A)
得到
X
向前累加直到大于
A
时的周期数。
TRMA(X,N)
TSMA(X,N)
求
X
在
N
周期内的三角移动平均。
求
X
在
N
周期内的时间序列移动平均。
计算方法:
TSMA(X,N)=
FORCAST(X,N)+SLOPE(X,N)
3.
数理统计
AVEDEV(X,N)
DEVSQ(X,N)
FORCAST(X,N)
求
X
p>
在
N
周期内的平均绝对偏差
数据偏差平方和。
得到<
/p>
X
的
N
周期线性
回归预测值。
例
:FORCAST(
CLOSE,5);
表示求
5
周期线性
回归预测
SLOPE(X,N)
得
到
X
在
N
周期
内的线性回归的斜率
例
:SLOPE
(CLOSE,5);
表示求
5
周期线
性回归线的斜率
STD(X,N)
STDP(X,N)
VAR(X,N)
VARP(X,N)
得到
X
在
N
周期内的标准差
得到
X
在
N<
/p>
周期内的总体标准差
得到
X
在
N
周期内的样本方差<
/p>
得到
X
在
p>
N
周期内的总体样本方差
设一个数列,数列中数据的总个数为
N
,以今天(
p>
2005-10-14
)五天
内的
A0605
收盘价为例,
N
就为
5
。数列的内容为:{
276
6
,
2805
,
2814
,
2886
,
2885
}。
1
、算术平均值
MA(CLOSE,5)
:数据总
和除以总个数
N
。
< br>(2766+2805+2814+2886+2885)/5=2831.20
。
可以用公式
数理统计举例说明:
p>
MA(CLOSE,5),
从今天的值上看出。
2
、
偏差:
< br>每个数据,
减去算术平均值的结果。
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, <
/p>
各偏差相加,应该是等于
0
的。
3
、
平均绝对偏差<
/p>
AVEDEV(X,N)
:
将偏差的绝对
值相加,
除以总个数
N
。
(65.2+26.2+17.2+54.8+53.8)/5=43.44
4
、数据偏差平方和
DEVSQ(X,N)<
/p>
:将偏差的平方相加。
(-65.2)2+
(-26.2)2+ (-17.2)2+ (54.8)2+
(53.8)2=11130.80
5
、
< br>总体样本方差
VARP(X,N)
:
将偏差的平方相加,
总和除以总个数
N
。
用公式可以这样算:
(-65.2)2+
(-26.2)2+ (-17.2)2+ (54.8)2+
(53.8)2/5=2226.16
6
< br>、样本方差
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
p>
够大时,两者趋于相等。
4.
逻辑判断
BETWEEN(A,B,C)
判断条件“A
位于
B
及
C
< br>之间”是否成立,如果条件成立则返回
1
(yes),
否则返回
0
(no)
。
例:
BETWEEN(CLOSE,MA5,MA40); <
/p>
表示收盘价介于
5
日均线与
40
日均线之间。
CROSS(X,Y)
表示
X
上穿
Y
。
例:
CROSS(CLOSE,MA(CLOSE,5));
表示收盘线从下方向上穿过
5
日
< br>均线
EXIST(COND,N)
< br>判断
N
个周期内是否有满足条件
COND
的情况发生。
例:
EXIST(CLOSE>REF(HIGH,1),10);
表示
p>
10
个周期中是否存在收
盘价大于前一个周
期的最高价
EVERY(COND,N)
< br>判断过去
N
个周期内是否一直满足条件
< br>COND
。
例:
EVERY(CLOSE>OPEN,5);
表示
5
个周期内一直是阳线
LAST(COND,N1,N2)
判断过去
N1
到
N2
周期内是否一直满
足条件
COND
。
< br>例:
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)
求
X
的反余弦值
求
X
的反正弦值
< br>求
X
的反正切值
COS(X)
EXP(X)
CEILING(X)
FLOOR(X)
INTPART(X)
LN(X)
返回
X
的余弦值
返回
e
的
X
次幂
向上舍入,返回沿
X
数值增大方向最接近的整数。
向下舍入,返回
沿
X
数值减小方向最接近的整数。
<
/p>
取
X
的整数部分,返回沿
X
绝对值减小方向最接近的整数。
< br>得到
X
的自然对数,以
e
为底的对数。
例:
LN(OPEN);
求开盘价的自然对数。
LOG(X)
得到
X
的常用对数,取得
X
的以
10
为底的对数。
例:
< br>LOG(OPEN);
求开盘价的以
10
为底的对数。
MAX(A,B)
< br>求
A,B
中的较大者。
例:
MAX(CLOSE-OPEN,0);
< br>表示若收盘价大于开盘价返回它们的差值,
否则返回
0<
/p>
。
MIN(A,B)
求
A,B
中的较小者。
p>
例:
MIN(OPEN,CLOSE);
返
回开盘价和收盘价中的较小值。
MOD(A,B)
求模。
用法:
MOD(A,B)
返回
A
对
B
求模。
例:
MOD(26
,10);
返回
6
,
< br>26
除以
10
所得余数为
6
,即
26
对
10
的模为
6
。
NOT(X)
当
X
< br>为
0
时返回
1,
否则返回
0
。
例:
NOT(TIME=090530);
表示该周
期对应的时间不是
9:05:30AM
。
POW(A,B)
得到
A
p>
的
B
次幂。
p>
例:
POW(CLOSE,2);
求得收盘
价的
2
次方。
REVERSE(X)
取反,返回符号相反的数值。
例:<
/p>
REVERSE(LOW);
返回
-LO
W
。
SGN(X)
得到
X
的符号,如果
X>0<
/p>
则返回
1,
如果
X<0
则返回-
1
,否则返回
0
。
SIN(X)
SQRT(X)
得到
X
的正弦值。
得到
X
的平方根。
例:
S
QRT(CLOSE);
收盘价的平方根。
SQUARE(X)
得到
X
的平方。
例:
SQU
ARE(CLOSE);
收盘价的平方。
TAN(X)
6.
时间函数
BARPOS
DATE
DAY
HOUR
MINUTE
MONTH
TIME
WEEKDAY
YEAR
7.
绘图
得到
X
的正切值。
取得当前
K
线的位置。
取得当前周期的日数(
700101-341
231
)。
取得当前周期的日数(<
/p>
1-31
)。
取得当前周期的小时数(
0-23
)。
取得当前周期的分钟数(
0-59
)。
取得当前周期的月数(
1-12
p>
)。
取得当前周期的时间数(
0-2359
),秒级周期返回值范围为:
0-2
35959
。
取得当前周期的星期数
(
0-6
)。
取得当前周期的年数(
1970-2034
)。
DRAWLINE(C1,P1,C2,P2,COLOR)
当条件
C1
及
C2
均满足时,从
P1
画直线到
< br>P2
,颜色为
COLOR
。
p>
例:
DRAWLINE(MA18<
CLOSE,OPEN,MA5
>CLOSE,CLOSE,COLORCYAN);
表
p>
示当收盘价大于
18
日均线并且小于
5
日均线时,从开盘价画青色直
线到收盘价。
DRAWTEXT(C,P,TEXT)
表示当条件
C
满足时在
P<
/p>
上写
TEXT
文字。
例:
DRAWTEXT(CLOSE<
OPEN&&REF(CLOSE,1)< REF(OPEN,1)
-
-
-
-
-
-
-
-
-
上一篇:通信达公式函数
下一篇:charlottesweb CHAPTER 3