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策略时,循环语句常用于遍历多个交易品种或对历史数据进行回测分析。
资深外汇分析师
由多名资深外汇分析师组成的专业团队,拥有平均15年以上的市场分析经验,擅长技术分析和基本面分析相结合的交易策略。