麦语言自编策略Word格式文档下载.docx
- 文档编号:6508094
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:169
- 大小:72.72KB
麦语言自编策略Word格式文档下载.docx
《麦语言自编策略Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《麦语言自编策略Word格式文档下载.docx(169页珍藏版)》请在冰点文库上搜索。
COS(1.57);
//返回1.57的余弦值
EXP(X)指数
返回e的X次幂
C*EXP(0.01);
//求收盘价乘以e的0.01次幂
CUBE(X)立方函数
返回X的三次方。
CUBE(4);
//求4的立方。
CEILING(X)向上舍入
向上舍入,返回沿A数值增大方向最接近的整数,若A为整数,则返回值为A。
CEILING(2.1);
//求得3。
CEILING(-8.8);
//求得-8。
CEILING(C*1.01);
//求收盘价的1.01倍向上取整
例4:
IFELSE(C-INTPART(C)>
=0.5,CEILING(C),FLOOR(C));
//对收盘价四舍五入后取整数部分
FLOOR(X)向下舍入
向下舍入,返回沿A数值减小方向最接近的整数,若A为整数,则返回值为A。
FLOOR(A)返回沿A数值减小方向最接近的整数,若A为整数,则返回值为A。
FLOOR(2.1);
//返回值为2;
FLOOR(-8.8);
//返回值为-9;
FLOOR(5);
//返回值为5;
//对收盘价四舍五入后取整数部分。
INTPART(X)取整
取X的整数部分。
INTPART(12.3);
//返回值为12;
INTPART(-3.5);
//返回值为-3;
INTPART(10);
//返回值为10;
例5:
INTPART(C);
//求收盘价的整数部分。
LN(X)自然对数
求X的自然对数。
1、X取值范围为非0自然数,即1、2、3、4、5……
2、若X取值为0或负数,返回值为空值。
例:
LN(OPEN);
//求开盘价的对数。
LOG(X)常用对数值
求X的常用对数值。
1、该函数中X的取值范围为X>
2、0和负数没有对数,X为0或负数时返回值为空值。
LOG(100)返回2.
LOG(0)返回空值。
MAX(A,B)最大值
取最大值。
取A,B中较大者。
若A=B,返回值为A或者B的值。
MAX(CLOSE,OPEN);
//表示取开盘价和收盘价中较大者。
MAX(CLOSE-OPEN,0);
//表示若收盘价大于开盘价返回它们的差值,否则返回0。
MAX(A,MAX(B,MAX(C,D)));
//求ABCD四者中的最大值
MIN(A,B)最小值
取最小值。
取A,B中较小者。
MIN(OPEN,CLOSE);
//表示取开盘价和收盘价中的较小者。
MIN(C,MIN(O,REF(C,1)));
//求当前周期的开盘价,收盘价,以及上周期的收盘价间最小的数值
MOD(A,B)取模
取模。
返回A对B求模。
MOD(26,10);
//返回6,26除以10所得余数为6,即26对10的模为6。
DRAWICON(MOD(BARPOS,3)=0,H,'
ICO1'
);
//从数据开始第一根k线开始分别在第3、6、9、
12等k线依次往后每隔3根k线标注一个笑脸图案
MOD(A,2)=0;
//判断A为偶数。
NOT(X)取非
取非。
当X=0时返回1,否则返回0。
NOT(ISLASTBK);
如果上一个信号不是BK信号,,则NOT(ISLASTBK)返回值为1;
如果上一个信号是BK信号,则NOT(ISLASTBK)返回值为0。
NOT(BARSBK>
=1)=1;
//BK信号发出的当根K线上满足条件。
//NOT(BARSBK>
=1)=1与NOT(BARSBK>
=1)表达同等意义。
POW(A,B)幂
求X的Y次幂。
1、当X为负数时,Y必须为整数,因为底数为负时,不能进行开方运算,返回值为空值。
2、X、Y均支持为变量形式
POW(CLOSE,2);
//求得收盘价的2次方。
POW(10,2);
//返回值为100
POW(1/2,-2);
//返回值为4
POW(100,1/2);
//返回值为10
REVERSE(X)取相反值
取相反值,返回-X。
REVERSE(LOW);
//返回-LOW。
REVERSE(-55);
//返回值为55
REVERSE(0);
//返回值为0
RANGE(A,B,C)范围
介于某个范围之内。
表示A大于B同时小于C时返回1,否则返回0
RANGE(5,4,6);
//返回值为1;
RANGE(8,3,6);
//返回值为0;
MA5:
MA(C,5);
MA10:
MA(C,10);
MA20:
MA(C,20);
RANGE(MA10,MA20,MA5),BK;
//10周期均线在5周期均线与20周期均线之间买开仓
//RANGE(MA10,MA20,MA5)=1,BK;
与RANGE(MA10,MA20,MA5),BK;
表达同等意义
SGN(X)取符号
取符号。
若X>
0返回1,若X<
0返回-1,否则返回0。
SGN(5);
//返回值为1
SGN(-5);
//返回值为-1
SGN(0);
SIN(X)求正弦
求X的正弦值。
1、X的取值为R(实数集);
2、值域为(-1,1)。
SIN(-1.57);
//返回-1.57的正弦值
SIN(1.57);
//返回1.57的正弦值
SQRT(X)平方根
求X的平方根。
X的取值为正数,X为负数时返回空值。
SQRT(CLOSE);
//收盘价的平方根。
SQUARE(X)平方
求X的平方。
SQUARE(C);
//收盘价的平方。
SQUARE
(2);
//2的平方。
TAN(X)正切
返回X的正切值。
TAN(0);
//返回0的正切值;
TAN(-3.14);
//返回-3.14的正切值。
2.金融统计函数(25)
ADMA(X,N,P,Q)考夫曼均值
考夫曼均值
X为调用的k线数据(例如高、开、低,收)
N为调用的间隔时间
P为快线频率参数
Q为慢线频率参数
算法:
ADMA(X,N,P,Q)=REF(EMA(C,N),1)+CONSTANT*(C-REF(EMA(C,N),1));
CONSTANT根据价格方向、波动性计算得到
价格方向被表示为整个时间段中的净价格变化,简单地计算价格的净变化,从开始点到结束点。
这倾向于最保守的测量,因为它平滑了从开始到结尾之间发生的任何价格移动。
波动性是市场噪音的总数量,计算了时间段内价格变化的总和。
高-低范围更好地描述了在周期内可能产生的任意极端值。
所有变化总和,它是最概括的测量,因为能识别一个价格移动从高到低的次数
方向移动对噪音之比,成为效率系数ER。
ER通过快慢系数转为趋势速度,达到自适应目的
LAST(X)
上一次条件成立位置
上一次条件COND成立到当前的周期数。
1、条件成立的当根k线上BARSLAST(COND)的返回值为0
2、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
BARSLAST(OPEN>
CLOSE);
//上一根阴线到现在的周期数。
N:
=BARSLAST(DATE<
>
REF(DATE,1))+1;
//分钟周期,当日k线数。
//由于条件成立的当根k线上BARSLAST(COND)的返回值为0,所以“+1”才是当日k线根数。
BARSLASTCOUNT(COND)
从当前周期向前计算,统计连续满足条件的周期数
从当前周期向前计算,统计连续满足条件的周期数。
1、返回值为从当前周期计算COND连续不为0的周期数
2、条件第一次成立的当根k线上BARSLASTCOUNT(COND)的返回值为1
BARSLASTCOUNT(CLOSE>
OPEN);
//计算当根K线在内连续为阳线的周期数
BARSSINCE(COND)
第一个条件成立到当前的周期数
第一个条件成立到当前的周期数。
1、返回值为COND第一次成立到当前的周期数
2、条件第一次成立的当根k线上BARSSINCE(COND)的返回值为0
BARSSINCE(CLOSE>
//统计第一次满足阳线这个条件的K线到现在的周期数
COUNT(X,N)
统计总数
统计N周期中满足COND条件的周期数。
1、若N为0则从第一个有效值算起;
2、当N为有效值,但当前的k线数不足N根,从第一根统计到当前周期。
3、N为空值时返回值为空值。
4、N可以为变量
M:
COUNT(ISUP,N);
//统计分钟周期上开盘以来阳线的根数。
=MA(C,5);
//定义5周期均线
=MA(C,10);
//定义10周期均线
COUNT(CROSSUP(MA5,MA10),0);
//统计从申请到的行情数据以来到当前这段时间内,5周期均线上穿10周期均线的次数。
CONDBARS(A,B)
取得最近的满足A、B条件的k线间周期数
注意:
1、该函数返回周期数不包含最后满足条件的K线
2、如果距离当前K线最近的满足的条件为B条件,则该函数返回值为最后一次满足A条件的K线到满足B条件的K线的周期数(A条件满足后的第一次满足B条件的K线)
如果距离当前K线最近的满足的条件为A条件,则该函数返回值为最后一次满足B条件的K线到满足A条件的K线的周期数(B条件满足后的第一次满足A条件的K线)
MA5:
//5周期均线
MA10:
=MA(C,10)//;
10周期均线
CONDBARS(CROSSUP(MA5,MA10),CROSSDOWN(MA5,MA10));
//最近一次满足5周期均线上穿10周期均线与5周期均线下穿10周期均线之间的周期数
DMA(X,A)
动态移动平均
求X的动态移动平均,其中A必须小于1大于0。
A可以为变量
计算公式:
DMA(N)=DMA(N-1)*(1-A)+X(N)*A其中DMA(N-1)为第(N-1)天的DMA值
DMA3:
=DMA(C,0.3);
//计算结果为REF(DMA3,1)*(1-0.3)+C*0.3
EMA(X,N)
指数移动平均
求N周期X值的指数移动平均(平滑移动平均)。
1、对距离当前较近的k线赋予了较大的权重。
2、当N为有效值,但当前的k线数不足N根,按实际根数计算。
3、N为0或空值时返回值为空值。
EMA=[2*X/(N+1)+(N-1)*EMA(N-1)]/(N+1)
举例:
X1=6X2=7X3=8X4=9
则EMA(X,4)=2/5*X4+3/10*X3+3/15*X2+3/30*X1=4/10*9+3/10*8+2/10*7+1/10*6=8
EMA10:
=EMA(C,10);
//求收盘价10周期平滑移动平均值
EMA2(X,N)
线性加权平均
求N周期X值的线性加权平均(也称WMA)
EMA2(X,N)=(N*X0+(N-1)*X1+(N-2)*X2)+...+1*X(N-1))/(N+(N-1)+(N-2)+...+1),X0表示本周期值,X1表示上一周期值
1、当N为有效值,但当前的k线数不足N根,返回值为空值。
2、N为0或空值时返回值为空值。
3、N可以为变量
4、本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
EMA2(H,5);
//求最高价在5个周期的加权移动平均值。
EMAWH(C,N)
指数移动平均,也叫平滑移动平均,采用指数加权方法,对距离当前较近的K线赋予了较大的权重。
1、当N为有效值,当前的k线数不足N根时,或者前面周期的取值仍作用于当前周期时,EMAWH返回值为空值
因为EMAWH计算公式中着重考虑了当周期的权重,所以当周期较长,前面的周期取值对当前的影响越小,EMAWH从前面数据对当前周期不再影响时的取值开始显示,所以即使选择的数据起始时间不同,当前已经显示的K线的EMAWH的取值也不会发生变化
2、当N为0或空值时返回值均为空值
3、N不能为变量
EMAWH=[2*X/(N+1)+(N-1)*EMAWH(N-1)]/(N+1)
EMAWH用法同EMA(C,N)
HHV(X,N)
最高值
求X在N个周期内的最高值。
1、若N为0则从第一个有效值开始算起;
2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算;
3、N为空值时,返回空值。
4、N可以是变量。
HH:
HHV(H,4);
//求4个周期最高价的最大值,即4周期高点(包含当前k线)。
//分钟周期,日内k线根数
HH1:
=HHV(H,N);
//在分钟周期上,日内高点
HV(X,N)
出当前K线外最高值
求X在N个周期内(不包含当前k线)的最高值。
1、若N为0则从第一个有效值开始算起(不包含当前K线);
2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算,第一根k线返回空值;
HV(H,10);
//求前10根k线的最高点。
NN:
=REF(N,N);
ZH:
VALUEWHEN(DATE<
REF(DATE,1),HV(H,NN));
//在分钟周期上,求昨天最高价。
HV(H,5)和REF(HHV(H,5),1)的结果是一样的,用HV编写更加方便。
HHVBARS(X,N)
前一高点位置
求N周期内X最高值到当前周期数
HHVBARS(VOL,0);
求历史成交量最大的周期到当前的周期数(最大值那根k线上HHVBARS(VOL,0);
的返回值为0,最大值后的第一根k线返回值为1,依次类推)。
ZHBARS:
REF(HHVBARS(H,N),N);
//在分钟周期上,求昨天最高价所在的k线到当前k线之间的周期数。
LLV(X,N)
最低值
求X在N个周期内的最小值。
LL:
LLV(L,5);
//求5根k线最低点(包含当前k线)。
LL1:
=LLV(L,N);
//在分钟周期上,求当天第一根k线到当前周期内所有k线最低价的最小值。
LV(X,N)
出当前K线外最低值
求X在N个周期内的最小值(不包含当前k线)
LV(L,10);
//求前面10根k线的最低点。
(不包含当前k线)
ZL:
REF(DATE,1),LV(L,N));
//在分钟周期上,求昨天最低价。
LV(L,5)和REF(LLV(L,5),1)的结果是一样的,用LV编写更加方便。
LLVBARS(X,N)
前一个最低点位置
求N周期内X最低值到当前周期数
LLVBARS(VOL,0);
求历史成交量最小的周期到当前的周期数(最小值那根k线上LLVBARS(VOL,0);
的返回值为0,最小值后的第一根k线返回值为1,依次类推)。
ZLBARS:
REF(LLVBARS(L,N),N);
//在分钟周期上,求昨天最低价所在的k线到当前k线之间的周期数。
MA(X,N)
算数移动平均
求X在N个周期内的简单移动平均
MA(X,5)=(X1+X2+X3+X4+X5)/5
1、简单移动平均线沿用最简单的统计学方式,将过去某特定时间内的价格取其平均值。
2、当N为有效值,但当前的k线数不足N根,函数返回空值。
3、N为0或空值的情况下,函数返回空值。
//求5周期收盘价的简单移动平均。
=IFELSE(N>
10,10,N);
//如果k线超过10根,M取10,否则M取实际根数
MA(C,M);
//在分钟周期上,如果当天k线不足10根,按照实际根数计算MA10,如果超过10根按照10周期计算MA10。
NUMPOW(X,N,M)
自然数幂方和
NUMPOW(x,n,m)=n^m*x+(n-1)^m*ref(x,1)+(n-2)^m*ref(x,2)+...+2^m*ref(x,n-2)+1^m*ref(x,n-1)r\n注意:
1、N为自然数,M为实数;
且N与M不能为变量
2、X为基础变量
r\nJZ:
=NUMPOW(C,5,2)/NUMPOW(1,5,2);
SAR(N,Step,Max)
抛物转向
返回抛物转向值。
1、参数N,Step,Max均不支持变量
SAR(17,3,30);
//表示计算17个周期抛物转向,步长为3%,极限值为30%
SMA(X,N,M)
扩展指数移动平均
求X的N个周期内的移动平均。
M为权重。
SMA(N)=SMA(N-1)*(N-M)/N+X(N)*M/N
1、当N为有效值,但当前的k线数不足N根,按实际根数计算。
2、N为0或空值的情况下,函数返回空值。
SMA10:
=SMA(C,10,3);
//求的10周期收盘价的移动平均。
权重为3。
SMMA(X,N)
通畅移动平均
X为变量,N为周期,SMMA(X,N)表示当前K线上X在N个周期的通畅移动平均线
SMMA(X,N)=(SUM1-MMA+CLOSE)/N
其中SUM1=X1+X2+.....+XN
MMA=SUM1/N
SMMA(C,5);
//收盘价的5周期通畅移动平均线
SUM(X,N)
求和
求X在N个周期内的总和。
1、若N为0则从第一个有效值开始算起。
2、当N为有效值,但当前的k线数不足N根,按照实际的根数计算。
4、N可以为变量。
SUM(VOL,25);
表示统计25周期内的成交量总和
SUM(VOL,N);
//分钟周期上,取当天成交量总和。
SUMBARS(X,A)
累加到指定值的周期数
求累加到指定值的周期数
SUMBARS(VOL,20000);
将成交量向前累加直到大于等于20000,返回这个区间的周期数。
TRMA(X,N)
三角移动平均
求X在N个周期的三角移动平均值。
三角移动平均线公式,是采用算数移动平均,并且对第一个移动平均线再一次应用算数移动平均。
TRMA(X,N)算法如下
ma_half=MA(X,N/2)
trma=MA(ma_half,N/2)
1、当N为有效值,但当前的k线数不足N根,函数返回空值。
2、N为0或空值的情况下,函数返回空值。
3、N支持使用变量
TRMA5:
TRMA(CLOSE,5);
//计算5个周期内收盘价的三角移动平均。
(N不能被2整除)
//TRMA(CLOSE,5)=MA(MA(CLOSE,(5+1)/2)),(5+1)/2);
例2:
TRMA10:
TRMA(CLOSE,10);
//计算10个周期内收盘价的三角移动平均。
(N能被2整除)
TRMA(CLOSE,10)=MA(MA(CLO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 策略
![提示](https://static.bingdoc.com/images/bang_tan.gif)