外汇智能交易MQL4语言教程(四)

阅读 :
欢迎访问 外 汇 邦 WWW.WaiHuiBang.com

4.2.3. IF-THEN条件语句

If-Then条件语句使得控制智能交易系统指令的执行顺序得以可能。该语句可能有不同的方式编写:
if Condition then Statement;or
if Condition then begin
Statement;
Statement;
...
end;其中,条件为一个逻辑表达式,取值为True 或 False;
"Statement" 指MetaQuotes II语言中的任何指令。符号括号Begin – End可能被波形括号{ }所替代。
条件语句可能被用在对程序进行分支。为达到此目的,另一个关键字Else要用上。语法:
if Condition then Statement1 else Statement2;or
if Condition then begin
Statement;
Statement;
...
end
else
Statement;
Statement;
...
end;or
if Condition then begin
Statement;
Statement;
...
end
else Statement2;or
if Condition then Statement1
else
Statement;
Statement;
...
end;可以使用嵌套式的条件语句。一般说来,语句可能由MetaQuotes II语言的任何合法指令表示,除非变量宣告,因为严格来说, 变量宣告并不是一个可执行语句。

4.2.4. WHILE循环

WHILE循环确保在循环条件有效时,包含在循环主体中的语句的多次执行。一个循环可以用Break 语句提前终止。迭代可以通过使用Continue语句停止。这个语句造成循环的下一个迭代开始,即Continue后面的语句直到循环主体结束在本迭代中不得执行。在条件语句中用Break 和 Continue是合理的。语法:
while Condition begin
Statement;
[break;][continue;]
...
end;其中,条件是循环执行条件-在每个循环迭代之前计算出的一个逻辑表达式,取值为True 或 False;

语句是MetaQuotes 4语言的任何指令。
符号括号Begin – End表示循环主体,可以被波形括号{ }替代。
“Break and Continue”描述也不是强制性的。

Example:
Counter = 1;
while Counter <= Bars begin
print( Close[ Counter - 1 ] );
Counter = Counter + 1;
end;这个例子说明一个将要执行的循环,基准次数,或者,如果基准=0,而且循环就不止一次。

4.2.5. For 循环

For循环确保在循环主体中所包含的具体次数的语句执行。语法: 
for NumberVariable = InitialValue to|downto LimitValue begin
Statement;
[break;][continue;]
...
end; 其中数字变量就是在每次迭代之后循环要么增加或者减少到1的循环变量 (视使用关键字To 或 Down to而定);
初期值指循环变量的起初数值。
语句指MetaQuotes 4 语言的任何指令。
To or Downto 确定循环变量增加到1(To)或者减少到1(Downto);
限值是循环变量的边际数值。
操作符brackets Begin – End表示循环主体,可以被波形括号{}取而代之。
 Break 和Continue语句并非是强制性的。
Example: 比如:
for Counter = 1 to 10 begin
if Counter > Bars then break;
print( Close[ Counter ] );
end; 这个例子说明一个可能被执行10次的环。但是,若基准值小于10, 循环就会提前终止,也就是说循环执行BARS次。

4.2.6. BREAK中断语句

中断语句确保一个For 循环或一个While循环早点终止。前例不仅说明循环执行,也说明了中断语句的使用。“Break”语句不仅用于循环主体之外。循环是嵌套式的,中断语句中离其最近的循环。换言之,中断内部循环的语句并没中断外部循环。

4.2.7. CONTINUE继续语句

CONTINUE继续语句提前终止循环的迭代,并从循环主体开始下一个迭代。换句话说,在Continue之后语句被忽略。比如:
for Counter = 1 to 10 begin
...
if Counter > Bars then continue;
print( Close[ Counter ] );
...
end;这个例子说明一个将被执行了差不多10次的循环。但收盘值(counter)被打印不会比基准次数多。"..."代表MetaQuotes 4 语言的其他语句。

4.3.交易中断的预选界定变量

为了最大的方便用户,交易中断的一些变量可以从智能系统输入。

 AccountNumber-账号(同义词:AccNum)
 Ask –卖价(买方出价)
 Balance – 交易账户的余额值
 Bars – 图表上条形的数目-说明用数据填充图表程度的非常重要的一个变量。
 Bid -买入价(卖方要价)
 Close –收盘价格
 Credit –信用优先
 Equity –账户状况,包括未实现利润
 FreeMargin –交易账户的自由保证金值-也用来核查账户资金的可用性;
 High –期间最高价位
 Low -期间最低价位
 Margin –用来支撑开仓部位的资金(保证金)
 Open –开盘价
 Point – 当前金融工具单点上的价值(此点此时智能交易系统系统运行),比如, USD/JPY - 0.01,  USD/CHF - 0.0001 等。
 PriceAsk –在市场观测窗口上显示的当前卖价。
 PriceBid -在市场观测窗口上显示的当前买价。
 PriceHigh – 当前24小时期间的最高买价。
 PriceLow -当前24小时期间的最高卖价。
 PriceTime -在市场观测窗口上显示的当前时间。
 Time – 价格图表上的条形时间的基准时间;
 TotalProfit – 所有开仓部位的总未实现利润;
 TotalTrades –开仓部位的总数和交易中断上的延迟订单;
 Volume – 交易量(期间交易的数目)

应注意到,Close, Open, High, Low, Volume, Time为历史数据数组(seriesarrays),在上个交易期间允许进入这些数据。

欢迎访问 外 汇 邦 WWW.WaiHuiBang.com
本文标题:外汇智能交易MQL4语言教程(四) - MT4平台MQL4编程学习
本文地址:http://www.waihuibang.com/fxschool/autotrading/mql4/40708.html

相关文章

  • MQL4价格数据相关函数

    用于获取货币对/时段内价格数据的一组函数。如果请求数据(货币对名称/时段不同于当前图表)来自其他图表,这种情况可能是相应的图表没有在客户端内打开,并且需要从服务器端下载数据。这种情况下,错误信息ERR_H...

    MQL4编程学习
  • MT4平台MQL4编程的方法介绍和学习
    MT4平台MQL4编程的方法介绍和学习

    为了达到MT4指标编写的目的,我们首先需要了解MT4编程工具MetaEditor,这个工具是安装MT4后,在程序列表里面自动出现的MT4编程工具。...

    MQL4编程学习
  • 外汇EA编程教程——预处理程序

      预处理程序是MQL编译器的一个子系统,通过预处理程序可以使软件的可读性更好,预处理程序运行在程序编译之前。预处理指令以(#)开头。 1 定义常量使用#define来定义常量。如: 1. #define ABC 100 2. #define P...

    MQL4编程学习
  • EA编程教程第三讲 数据类型转换

    MQL语言目前仅支持隐式转换,MQL目前可以做一下数据类型自动转换。int(bool, color, datetime) 可转换成 double 或 stringdouble 可转换成 string,除了以上两种转换外,不能进行其他的数据类型转换,如:int i = 1 / 2; /...

    MQL4编程学习
  • EA智能交易骗局:某宝淘了个1000块钱的EA后,噩梦开始了

    小编挖到了关于EA智能交易系统骗局的一个评论:EA这个东西我并不反对,市场上的免费EA我测试不下80种,但是我还是倾向于那种不公开的EA,楼主分享给大家也是一种美德,不管有没有用都值得点赞。还有人这样评论EA智能交易系统骗...

    MQL4编程学习
你可能感兴趣