EA编程操作符核心语法详解教程

DooPrime 分析团队
资深外汇分析师
阅读 收藏
专业分析

1 复合语句。

一个复合操作(代码块)由一个或多个语句构成,这些语句使用大括号({})括起来,需要留意的是右大括号后面不需要添加分号(;)。例如:

if(x==0)

{

Print("invalid position x=",x);

return;

}

2 表达式。

一个表达式以分号(;)作为结束标志,分号(;)本身也是一个操作符,表示一条语句的终止。例如:

i = 4;

i = a = 7; //这是错误用法,一个表达式中不能同时出现两个及以上的等号(=)。

函数调用语句,如 FunctionName("a"); //调用了名为FunctionName的函数,该函数的参数传入字符串"a"。

3 break 语句。

break语句用于使程序跳出最近一层while、for或switch语句。当在循环中已经完成所需的任务时,可以利用break语句提前终止循环。例如:

for(a=0;a<10;a++)

{

if(array[a]==0)

break;

}

这段代码的含义是:遍历数组array,如果发现数组中某个元素的值等于0,则立即跳出当前循环。

4 continue

continue用于跳过当前循环体中剩余的语句,直接进入下一次循环迭代,适用于for和while循环结构中。例如:

int a = 0;

for(int j = 0; j < 10; j++)

{

if (array[j] <= 0)

{

continue; //遇到continue时,程序会进入下一次循环,不会执行下方的 a += array[j] 语句,注意此时并非跳出循环体。

}

a += array[j];

}

需要区分continue和break的作用:continue是直接进入本循环体的下一次迭代,而break则是直接跳出整个循环体。

5 return

return语句用于终止当前函数的执行,并可选择性地向调用者返回一个值。例如:

int CalcSum(int x, int y)

{

return(x+y); //函数执行到此行后中断,返回值为x+y,后续语句不再执行。

int i = x * y; //这条语句不会被执行到。

}

如果需要让函数提前结束,直接使用return语句即可。

6 条件语句 if-else

例如:

if (a == 0)

{

Print("a");

}

else if (a < 0)

{

Print("小于0");

}

else

{

Print("大于0");

}

以上代码的含义是:如果a的值等于0,则打印字符串"a";如果a小于0,则打印"小于0";否则打印"大于0"。在实际的EA自动化交易策略开发中,例如在德璞资本外汇平台编写策略时,条件语句常用于判断开仓与平仓的信号是否触发。

7 switch 语句

示例代码如下:

int x = 1

switch(x)

{

case 1:

Print("CASE 1"); //x的值为1时执行

break;

case 2:

case 3:

Print("CASE 2 or 3"); //x的值为2或3时执行

break;

default:

Print("NOT 1,2,3"); //x的值不是1、2、3时执行

break;

}

在switch结构中,如果程序没有遇到break语句,会继续向下执行,直到遇到break或当前代码块结束。

8 循环语句 while,for

示例代码如下:

int k = 1;

int n = 10;

while(k <= n)

{

Print(k);

k++;

}//该循环将从1打印到10。

for(int n = 0; n < 10; n++)

Print(n); //该循环将从0打印到9。在德璞资本外汇平台上开发EA策略时,循环语句常用于遍历多个交易品种或对历史数据进行回测分析。

DooPrime 分析团队

资深外汇分析师

由多名资深外汇分析师组成的专业团队,拥有平均15年以上的市场分析经验,擅长技术分析和基本面分析相结合的交易策略。

相关分析

立即开启您的外汇交易之旅

加入我们的交易社区,享受专业的交易服务和优惠活动