Last updated at 10:00 am on 25th December 2020
MT编程初级手册
MT4编程初级手册(2):指标源码中常用符号的说明
一、注释符:
行注释:单行的注释使用“声明le型;
最低价:iLow(symbol,timeframe,shift) 双精度浮点double型;
成交量:iVolume(symbol,timeframe,shift) 双精度浮点double型;
所属时间:iTime(symbol,timeframe,shift) 日期时间datetime型;
K线时间框架为:1分钟图(PERIOD_M1)、5分钟图(PERIOD_M5)、15分钟图(PERIOD_M15)、30分钟图(PERIOD_M30)、1小时图(PERIOD_H1)、4小时图(PERIOD_H4)、日线图(PERIOD_D1)、周线图(PERIOD_W1)、周线图(PERIOD_W1)、月线图(PERIOD_W1)。
例:
iOpen("EURUSD",PERIOD_H1,0) 表示欧元兑美元1小时图最新K线实体的开盘价;
iClose("USDJPY",PERIOD_H4,2) 表示美元兑日元4小时图第3根K线实体的收盘价;
iClose("GBPUSD",PERIOD_H1,i) 表示英磅兑美元1小时图第i+1根K线实体的收盘价;
iHigh(NULL,0,0) 既不指定商品,也不指定K线周期,用在谁就是谁,用在哪就是哪;
MT4编程初级手册(7):条件判断语句
一、if判断语句
if判断语句很常用,使用起来也比较简单。
规则:如果小括号中的条件成立则执行大括号中的语句;如果不成立则跳过大括号,执行后面的语句。
例如:
if(condition==1){
a=b+1;
}
我们在编写报警指标的时候,就经常要使用到这一语句:
如果“价格向上达到指定价位”,则“报警”;
如果“MACD指标上穿”,则“报警”;
如果“均线指标金叉”,则“报警”。等等
例:
int flag=0;
if( Low[1]> && Low[0]<= && flag!=1){
Alert(symbol(),"价格向下触及!");------
flag=1;
}
if( High[1]< && High[0]>= && flag!=2)
{
Alert(symbol(),"价格向上触及");
flag=2;
}
这是一个价格上、下穿时进行报警的判断语句:
上穿报警条件:当第二根K线最高价小于,并且最新K线最高价大等于;
下穿报警条件:当第二根K线最低价大于,并且最新K线最低价小等于。
这里,flag是用作报警标记,flag的初始值是0;
当上穿报警后,flag的值就变为1;当下穿报警后,flag的值就改为2;
当flag=0时,说明从未报过警,上、下穿都能报警;
当flag=1时,说明已经上穿报过警了,不能再上穿报警,但仍可下穿报警;
当flag=2时,说明已经下穿报过警了,不能再下穿报警,但仍可上穿报警。
二、if ... else语句
规则:如果小括号中的条件成立则执行if下大括号中的第一部分语句;如果不成立则执行else下大括号中的第二部分语句。
if(判断条件)
{
第一部分语句;
}
else
{
第二部分语句;
}
三、注意事项
1、只有语句后面才用到语句结束符“;” 条件、大、小括号后面都不用语句结束符“;”。
2、语句用大括号括起来(大括号的作用为界定语句块),但如果只有一行语句,则大括号可以省略:
例如:
if(条件) 语句1;
MT4编程初级手册(8):循环语句
一幅K线图有几千上万条K线(Bar,根据设定的样本数),每根K线Bar又各有开收盘价、收盘价、最高低价等数值,而且还有很多移动平均线、MACD、RSI等技术指标数值。
面对大量的数据,我们经常采用循环来实现数据的取值和赋值。下面我们简单来介绍一下MT4中主要用到的循环语句。
一、while循环
while(判断条件)
{
语句1;
语句2;
。。。;
}
规则:当小括号中的判断条件成立时,就执行大括号中的语句,执行完毕后再判断条件是否成立,如果条件成立就再继续执行大括号中的语句。
只要条件成立,程
MT编程初级手册 来自淘豆网m.daumloan.com转载请标明出处.