EA狙击手 发表于 2013-7-19 23:19:28

MQL4 Reference MQL4命令手册(完整版)

目录MQL4 Reference. 1MQL4命令手册... 1Basics基础... 3Syntax语法... 3Comments注释... 3Identifiers标识符... 3Reserved words保留字... 3Data types数据类型... 3Type casting类型转换... 3Integer constants整数常量... 3Literal constants字面常量... 3Boolean constants布尔常量... 3Floating-point number constants (double)浮点数常量(双精度)... 3String constants字符串常量... 3Color constants颜色常数... 3Datetime constants日期时间常数... 3Operations & Expressions操作表达式... 3Expressions表达式... 3Arithmetical operations算术运算... 3Assignment operation赋值操作... 3Operations of relation操作关系... 3Boolean operations布尔运算... 3Bitwise operations位运算... 3Other operations其他运算... 3Precedence rules优先规则... 3Operators操作符... 3Compound operator复合操作符... 3Expression operator表达式操作符... 3Break operator终止操作符... 3Continue operator继续操作符... 3Return operator返回操作符... 3Conditional operator if-else条件操作符... 3Switch operator跳转操作符... 3Cycle operator while循环操作符while. 3Cycle operator for循环操作符for. 3Functions函数... 3Function call函数调用... 3Special functions特殊函数... 3Variables变量... 3Local variables局部变量... 3Formal parameters形式变量... 3Static variables静态变量... 3Global variables全局变量... 3Defining extern variables外部定义变量... 3Initialization of variables初始化变量... 3External functions definition外部函数的定义... 3Preprocessor预处理... 3Constant declaration常量声明... 3Controlling compilation编译控制... 3Including of files包含文件... 3Importing of functions导入功能... 3Standard constants标准常数... 3Series arrays系列数组... 3Timeframes图表周期时间... 3Trade operations交易操作... 3Price constants价格常数... 3MarketInfo市场信息识别符... 3Drawing styles画线风格... 3Arrow codes预定义箭头... 3Wingdings宋体... 3Web colors颜色常数... 3Indicator lines指标线... 3Ichimoku Kinko Hyo. 3Moving Average methods移动平均方法... 3MessageBox信息箱... 3Object types对象类型... 3Object properties对象属性... 3Object visibility. 3Uninitialize reason codes撤销初始化原因代码... 3Special constants特别常数... 3Error codes错误代码... 3Predefined variables预定义变量... 3Ask最新卖价... 3Bars柱数... 3Bid最新买价... 3Close[]收盘价... 3Digits汇率小数位... 3High[]最高价... 3Low[]最低价... 3Open[]开盘价... 3Point点值... 3Time[]开盘时间... 3Volume[]成交量... 3Program Run程序运行... 3Program Run程序运行... 3Imported functions call输入函数调用... 3Runtime errors运行错误... 3Account information账户信息... 3AccountBalance( )账户余额... 3AccountCredit( )账户信用点数... 3AccountCompany( )账户公司名... 3AccountCurrency( )基本货币... 3AccountEquity( )账户资产净值... 3AccountFreeMargin( )账户免费保证金... 3AccountFreeMarginCheck()账户当前价格自由保证金... 3AccountFreeMarginMode( )账户免费保证金模式... 3AccountLeverage( )账户杠杆... 3AccountMargin( )账户保证金... 3AccountName( )账户名称... 3AccountNumber( )账户数字... 3AccountProfit( )账户利润... 3AccountServer( )账户连接服务器... 3AccountStopoutLevel( )账户停止水平值... 3AccountStopoutMode( )账户停止返回模式... 3Array functions数组函数... 3ArrayBsearch()数组搜索... 3ArrayCopy()数组复制... 3ArrayCopyRates()数组复制走势... 3ArrayCopySeries()数组复制系列走势... 3ArrayDimension()返回数组维数... 3ArrayGetAsSeries()返回数组序列... 3ArrayInitialize()数组初始化... 3ArrayIsSeries()判断数组连续... 3ArrayMaximum()数组最大值定位... 3ArrayMinimum()数组最小值定位... 3ArrayRange()返回数组指定维数数量... 3ArrayResize()改变数组维数... 3ArraySetAsSeries()设定系列数组... 3ArraySize()返回数组项目数... 3ArraySort()数组排序... 3Checkup检查... 3GetLastError( )返回最后错误... 3IsConnected( )返回联机状态... 3IsDemo( )返回模拟账户... 3IsDllsAllowed( )返回dll允许调用... 3IsExpertEnabled( )返回智能交易开启状态... 3IsLibrariesAllowed( )返回数据库函数调用... 3IsOptimization( )返回策略测试中优化模式... 3IsStopped( )返回终止业务... 3IsTesting( )返回测试模式状态... 3IsTradeAllowed( )返回允许智能交易... 3IsTradeContextBusy( )返回其他智能交易忙... 3IsVisualMode( )返回智能交易“图片模式”... 3UninitializeReason( )返回智能交易初始化原因... 3Client terminal客户端信息... 3TerminalCompany( )返回客户端所属公司... 3TerminalName( )返回客户端名称... 3TerminalPath( )返回客户端文件路径... 3Common functions常规命令函数... 3Alert弹出警告窗口... 3Comment显示信息在走势图左上角... 3GetTickCount获取时间标记... 3MarketInfo在市场观察窗口返回不同数据保证金列表... 3MessageBox创建信息窗口... 3PlaySound播放声音... 3Print窗口中显示文本... 3SendFTP设置FTP. 3SendMail设置Email 3Sleep指定的时间间隔内暂停交易业务... 3Conversion functions格式转换函数... 3CharToStr字符转换成字符串... 3DoubleToStr双精度浮点转换成字符串... 3NormalizeDouble给出环绕浮点值的精确度... 3StrToDouble字符串型转换成双精度浮点型... 3StrToInteger字符串型转换成整型... 3StrToTime字符串型转换成时间型... 3TimeToStr时间类型转换为 "yyyy.mm.dd hh:mi"格式... 3Custom indicators自定义指标... 3IndicatorBuffers. 3IndicatorCounted. 3IndicatorDigits. 3IndicatorShortName. 3SetIndexArrow.. 3SetIndexBuffer. 3SetIndexDrawBegin. 3SetIndexEmptyValue. 3SetIndexLabel 3SetIndexShift. 3SetIndexStyle. 3SetLevelStyle. 3SetLevelValue. 3Date & Time functions日期时间函数... 3Day. 3DayOfWeek. 3DayOfYear. 3Hour. 3Minute. 3Month. 3Seconds. 3TimeCurrent. 3TimeDay. 3TimeDayOfWeek. 3TimeDayOfYear. 3TimeHour. 3TimeLocal 3TimeMinute. 3TimeMonth. 3TimeSeconds. 3TimeYear. 3Year. 3File functions文件函数... 3FileClose关闭文件... 3FileDelete删除文件... 3FileFlush将缓存中的数据刷新到磁盘上去... 3FileIsEnding文件结尾... 3FileIsLineEnding. 3FileOpen打开文件... 3FileOpenHistory历史目录中打开文件... 3FileReadArray将二进制文件读取到数组中... 3FileReadDouble从文件中读取浮点型数据... 3FileReadInteger从当前二进制文件读取整形型数据... 3FileReadNumber. 3FileReadString从当前文件位置读取字串符... 3FileSeek文件指针移动... 3FileSize文件大小... 3FileTell文件指针的当前位置... 3FileWrite写入文件... 3FileWriteArray一个二进制文件写入数组... 3FileWriteDouble一个二进制文件以浮动小数点写入双重值... 3FileWriteInteger一个二进制文件写入整数值... 3FileWriteString当前文件位置函数写入一个二进制文件字串符... 3Global variables全局变量... 3GlobalVariableCheck. 3GlobalVariableDel 3GlobalVariableGet. 3GlobalVariableName. 3GlobalVariableSet. 3GlobalVariableSetOnCondition. 3GlobalVariablesDeleteAll 3GlobalVariablesTotal 3Math & Trig数学和三角函数... 3MathAbs. 3MathArccos. 3MathArcsin. 3MathArctan. 3MathCeil 3MathCos. 3MathExp. 3MathFloor. 3MathLog. 3MathMax. 3MathMin. 3MathMod. 3MathPow.. 3MathRand. 3MathRound. 3MathSin. 3MathSqrt. 3MathSrand. 3MathTan. 3Object functions目标函数... 3ObjectCreate建立目标... 3ObjectDelete删除目标... 3ObjectDescription目标描述... 3ObjectFind查找目标... 3ObjectGet目标属性... 3ObjectGetFiboDescription斐波纳契描述... 3ObjectGetShiftByValue. 3ObjectGetValueByShift. 3ObjectMove移动目标... 3ObjectName目标名... 3ObjectsDeleteAll删除所有目标... 3ObjectSet改变目标属性... 3ObjectSetFiboDescription改变目标斐波纳契指标... 3ObjectSetText改变目标说明... 3ObjectsTotal返回目标总量... 3ObjectType返回目标类型... 3String functions字符串函数... 3StringConcatenate字符串连接... 3StringFind字符串搜索... 3StringGetChar字符串指定位置代码... 3StringLen字符串长度... 3StringSetChar. 3StringSubstr提取子字符串... 3StringTrimLeft. 3StringTrimRight. 3Technical indicators技术指标... 3iAC比尔.威廉斯的加速器或减速箱振荡器... 3iAD离散指标... 3iAlligator比尔・威廉斯的鳄鱼指标... 3iADX移动定向索引... 3iATR平均真实范围... 3iAO比尔.威廉斯的振荡器... 3iBearsPower熊功率指标... 3iBands保力加通道技术指标... 3iBandsOnArray保力加通道指标... 3iBullsPower牛市指标... 3iCCI商品通道索引指标... 3iCCIOnArray商品通道索引指标... 3iCustom指定的客户指标... 3iDeMarker. 3iEnvelopes包络指标... 3iEnvelopesOnArray包络指标... 3iForce强力索引指标... 3iFractals分形索引指标... 3iGator随机震荡指标... 3iIchimoku. 3iBWMFI比尔.威廉斯市场斐波纳契指标... 3iMomentum动量索引指标... 3iMomentumOnArray. 3iMFI资金流量索引指标... 3iMA移动平均指标... 3iMAOnArray. 3iOsMA移动振动平均震荡器指标... 3iMACD移动平均数汇总/分离指标... 3iOBV能量潮指标... 3iSAR抛物线状止损和反转指标... 3iRSI相对强弱索引指标... 3iRSIOnArray. 3iRVI相对活力索引指标... 3iStdDev标准偏差指标... 3iStdDevOnArray. 3iStochastic随机震荡指标... 3iWPR威廉指标... 3Timeseries access时间序列图表数据... 3iBars柱的数量... 3iBarShift开始时间的柱... 3iClose. 3iHigh. 3iHighest. 3iLow.. 3iLowest. 3iOpen. 3iTime. 3iVolume. 3Trading functions交易函数... 3Execution errors. 3OrderClose. 3OrderCloseBy. 3OrderClosePrice. 3OrderCloseTime. 3OrderComment. 3OrderCommission. 3OrderDelete. 3OrderExpiration. 3OrderLots. 3OrderMagicNumber. 3OrderModify. 3OrderOpenPrice. 3OrderOpenTime. 3OrderPrint. 3OrderProfit. 3OrderSelect. 3OrderSend. 3OrdersHistoryTotal 3OrderStopLoss. 3OrdersTotal 3OrderSwap. 3OrderSymbol 3OrderTakeProfit. 3OrderTicket. 3OrderType. 3Window functions窗口函数... 3HideTestIndicators隐藏指标... 3Period使用周期... 3RefreshRates刷新预定义变量和系列数组的数据... 3Symbol当前货币对... 3WindowBarsPerChart可见柱总数... 3WindowExpertName智能交易系统名称... 3WindowFind返回名称... 3WindowFirstVisibleBar第一个可见柱... 3WindowHandle. 3WindowIsVisible图表在子窗口中可见... 3WindowOnDropped. 3WindowPriceMax. 3WindowPriceMin. 3WindowPriceOnDropped. 3WindowRedraw.. 3WindowScreenShot. 3WindowTimeOnDropped. 3WindowsTotal指标窗口数... 3WindowXOnDropped. 3WindowYOnDropped. 3Obsolete functions过时的函数... 3

EA狙击手 发表于 2013-7-19 23:20:40

MetaQuotes Language 4 (MQL4) 是一种新的内置型程序用来编写交易策略。 这种语言可以创建你自己的智能交易,使自己的交易策略能够完全自动地执行。而且,MQL4 还能自定义客户指标,脚本和数据库。
内包含了大量可以分析当前及历史报价所必须的函数,以及一些基本的运算和逻辑操作。并内置了一些基本的指标和操作命令。
MetaEditor 4集合了编写 MQL4 程序代码的各种语句,它能帮助使用者方便地写出规范的代码。 MetaQuotes Language Dictionary 是 MQL4 语言的帮助工具,它包含了我们在使用工程中所有可能用到的函数。
MetaQuotes Language 4 可以编写不同作用的程序代码:
■智能交易 是一种连接到特定图表的自动交易系统。它能够根据设置的节点自动启动 ,当它开始运行后,它不会同时去处理另一个新的指令(也就是说必须等到当前程序完成)。 这种交易系统能够在提醒用户可以交易的同时,将交易定单自动送到交易服务器。与大多数交易系统一样, 它也能够用历史数据测试交易策略,并在图表上显示出来。
智能交易存储在 terminal_directory\experts。
■自定义指标 可用来编写新的技术指标,和内置的指标一样,它不能用来进行自动交易, 只能作为分析数据的工具。
自定义指标储存在 terminal_directory\experts\indicators。
■脚本 是执行单一功能的一段程序,和 智能交易不同,脚本不能单独执行,只能被调用。
脚本存储在 terminal_dictionary\experts\scripts。
■数据库 常被使用的自定义函数的集合。数据库不能单独运行。
数据库建议存储在terminal_directory\experts\libraries。
■包含文件 包含文件常被使用的程序块源代码,这些文件能够被包含在智能交易,脚本,客户指标和数据库 的源代码中。 使用包含文件比调用资料库更灵活快捷。
包含文件交易储存在 terminal_directory\experts\include。

EA狙击手 发表于 2013-7-19 23:20:55

Basics基础
MetaQuotes Language 4 (MQL4)是一种新型的交易策略内置语言。用来编写交易策略的程序语言。这种语言可以创建你自己的智能交易, 使自己的交易策略能够完全地自动执行。程序内包含了分析历史报价的必备函数, 以及一些基本的运算法和逻辑操作和一些基本的指标和操作命令。 而且,MQL4 还能自定义自己的客户指标,脚本和数据库。

EA狙击手 发表于 2013-7-19 23:21:03

Syntax语法
MQL4 的语法类似于C语言,除了以下这些特点:
        没有运算地址;
        没有 do ... while 语句;
        没有 goto ... 语句;
        没有 [条件][表达式 1]:[表达式 2] 语句;
        没有复合数据类型 (结构);
        复合负值是不允许的,例如:val1=val2=0; arr=val; cond=(cnt=OrdersTotal)>0; 等等;
        逻辑表达式的计算完成前不可以提前终止。

EA狙击手 发表于 2013-7-19 23:21:17

Comments注释
多行注释使用 /* 作为开始到 */ 结束,在这之间不能够嵌套。单行注释使用 // 作为开始到新的一行结束,可以被嵌套到多行注释之中。
示例:
// 单独注解
/*multi-
    line         // 嵌入单独注解
    comment
*/
Identifiers标识符
标识符用来给变量、函数和数据类型进行命名,长度不能超过31个字节,你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。此外首字母不可以是数字,标识符不能和保留字冲突.
示例:
NAME1 namel Total_5 Paper
Reserved words保留字
下面列出的是固定的保留字。不能使用以下任何保留字进行命名。
数据类型        储存类型        操作符        其他
bool        extern        break        false
color        static        case        true
datetime                continue       
double                default       
int                else       
string                for       
void                if       
                return       
                switch       
                while       

EA狙击手 发表于 2013-7-19 23:21:32

Data types数据类型
所有的程序都依靠数据来运作,数据因目的不同可以有不同的类型 。比如,访问数组可以用整型数据,价格可以用双精度的浮点型数据。在 MQL 4 中没有专门用来标记货币值的数据类型。
不同的数据类型有不同的处理速度,整型数据是最快的。 双精度的数据处理需要额外的处理器,所以处理浮点型数据比较复杂, 比处理整型数据慢一些。字符串是处理速度最慢的,因为它要存取动态内存。
主要的数据类型如下:
        整型数据 (int)
        布尔数据 (bool)
        字符数据 (char)
        字符串数据 (string)
        浮点型数据 (double)
        颜色数据 (color)
        日期时间数据 (datetime)
color 和 datetime 可以使我们更清楚的区分图表中的内容,在 expert advisor 和 indicator 中经常使用这些数据类型。颜色和日期时间数据用整数来表示。int 和 double 都属于数值(数字)型。
在表达式运算中使用强制的类型转换。
Type casting类型转换
表达式中使用强制的数据转换,转换时类型的优先级如下:
int(bool,color,datetime);
double;
string;
在运算完成之前(除了数据已被定义的),数据会根据优先级被转换。当定义数据的操作完成前 ,数据会转换成被定义的数据类型。
示例:
int    i = 1 / 2;   // 没有类型转换,结果为 0
int    i = 1 / 2.0;   // 表达式中有浮点型数据,但会转换成整型数据,结果为 0
double d = 1.0 / 2.0; // 没有类型转换,结果为 0.5
double d = 1 / 2.0;   // 表达式计算的结果是浮点型数据,和定义的类型一样,结果为 0.5
double d = 1 / 2;   // 表达式是整型数据的计算,然后被定义为浮点型数据,结果为 0.0
类型转换不但运用在常量中,还被运用在相应的变量中。
Integer constants整数常量
十进制: 数字 0 - 9 ,包括负数。
示例:
12, 111, -956 1007
十六进制: 数字 0 - 9 , 字面 a - f 或者 A - F 代表 10 - 15; 以 0x 或者 0X 开头。
示例:
0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7
整型数据占用 4 字节的空间,其数值范围介于 -2147483648 ~ 2147483647 之间。如果超出这个范围,则视为无效。

EA狙击手 发表于 2013-7-19 23:21:56

Literal constants字面常量
任何带单引号的单一字符或者十六进制的 ASCII 码如 '\x10' 都是字符数据。一些特殊的字符如单引号(')、双引号(")、问号(?)、反斜线(\)和控制符必须以反斜线开头(\), 组合表达原来的意思,如下表所示:

换行             NL (LF)\n
制表符         HT       \t
回车             CR       \r
反斜线         \      \\
单引号         '      \'
双引号         "      \"
十六进制ASCII    hh       \xhh
如果上述字符不使用反斜线,结果将不被定义:
int a = 'A';
int b = '$';
int c = '©';      // 代码0xA9
int d = '\xAE';   //货币对代码 ®
字符数据占用 4 字节的空间。其数值范围介于 0 ~ 255 之间。如果超出这个范围,则视为无效。
Boolean constants布尔常量
Boolean 用来表示 是 和 否, 还可以用数字 1 和 0 进行表示。True和Flase可以忽略大小写。
示例:
bool a = true;
bool b = false;
bool c = 1;
它的十进制表示一个长度为4-byte的整数值。Boolean 常数可以表示0 或 1值。
Floating-point number constants (double)浮点数常量(双精度)
浮点型数据由整数部分、小数点(.)和小数部分组成,其中整数部分和小数部分为一系列十进制数字。
示例:
double a = 12.111;
double b = -956.1007;
double c = 0.0001;
double d = 16;
浮点型数据 (双精度)占用 4 字节的空间。其数值范围介于 -1.7 * e-308 ~ 1.7 * e308 之间。如果超出这个范围,则视为无效。
String constants字符串常量
字符串数据是带有双引号的一连串 ASCII 字符 ,如: "Character constant"。
字符串数据是引号里的一组字符,如果字符串中需要插入一个双引号(") 必须在它前面使用反斜线(\)。任何特殊字符都必须有前置的反斜线(\)才能在字符串中使用。 字符串可以容纳 0 到 255 个字符,如果超过这个长度,右边多余的字符将被忽略,编译器也会有相应的警示。
示例s:
"This is a character string"
"Copyright symbol \t\xA9"
"this line contains a line feed symbol \n"
"C:\\Program Files\\MetaTrader 4"
"A" "1234567890" "0" "$"
字符串数据占用 8 个字节的空间。其中第一部分为长的整型存储字符串缓冲区分布的长度。第二部分是32位的存储字符串缓冲区的地址。
Color constants颜色常数
颜色数据可以用三种方法表示: 字符数据、整型数据或者是颜色名(只能是 Web colors 中已命名的).
字符数据的表达方法是用三个数字来表示三种主要颜色:红、绿、蓝的比例。 以 C 开头,用单引号括住。数字的值在 0 ~ 255 之间按比例选取。
整数数据的表达方法使用十六进制或十进制数字。十六进制数字如 0x00BBGGRR, 其中 RR 是红色的比例,GG 是绿色的比例,BB 是蓝色的比例。十进制数不能直接体现红绿蓝的比例 ,而是十六进制数字的十进制表示方式。
特殊的颜色名可以参考Web colors set表。
示例:
// 字符数据
C'128,128,128'    // 灰色
C'0x00,0x00,0xFF' // 蓝色
// 颜色名
Red
Yellow
Black
// 整型数据
0xFFFFFF          // 白色
16777215          // 白色
0x008000          // 绿色
32768             // 绿色
颜色数据占用 4 字节的空间。第一个字节一般被忽略,后三个字节包含了红绿蓝的组成信息。

EA狙击手 发表于 2013-7-19 23:22:11

Datetime constants日期时间常数
日期时间数据由 6 个部分的字符组成:年、月、日、时、分、秒,以 D 开头, 用单引号括起。日期(年、月、日)或者时间(时、分、秒)甚至两者一起都可以不用填写。 日期时间数据开始于 1. 1. 1970 截止到12.31. 2037
示例:
D'2004.01.01 00:00'   // 新年
D'1980.07.19 12:30:27'
D'19.07.1980 12:30:27'
D'19.07.1980 12'      //等于D'1980.07.19 12:00:00'
D'01.01.2004'         //等于D'01.01.2004 00:00:00'
D'12:30:27'             //等于 D'[编译日期] 12:30:27'
D''                     //等于 D'[编译日期] 00:00:00'
日期时间数据占用 4 字节空间长度的整型数值。其值从1970年1月00:00开始以秒的形式显示总数。
Operations & Expressions操作表达式
一些数字和字符的组合是特别重要的,它们被称为运算符,例如:
+ - * / %   算术运算符
&& ||         逻辑运算符
= += *=       负值运算符
运算符应用在表达式中实现特定的作用。
需要特别注意标点符号如圆括号、方括号、逗号、冒号、分号。
运算符、标点符号、空格用来分割语句的不同部分。

EA狙击手 发表于 2013-7-19 23:22:30

Expressions表达式
一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面。
示例:
a++; b = 10;
x = (y * z) /
    (w + 2) + 127;
一个表达式的最后一个分号(;) 操作符。
Arithmetical operations算术运算
算术运算符包括加法和乘法运算:
求和                   i = j + 2;
求差                   i = j - 3;
改变运算符             x = - x;
求积                   z = 3 * x;
求商                   i = j / 5;
求模                   minutes = time % 60;
自加1                  i++;
自减1                  k--;
添加1的运算符不能使用在表达式中。
示例:
int a=3;
a++;            // 有效表达式
int b=(a++)*3;    // 无效表达式
Assignment operation赋值操作
表达式的值包括左边值给出的赋值运算符。
把变量 x 的值赋予变量 y                  y = x;
下列表达式中赋值运算符结合了算术运算符或位运算符:
在 y 值上加上 x                         y += x;
在 y 值上减去 x                         y -= x;
在 y 值上乘以 x                         y *= x;
在 y 值上除以 x                         y /= x;
在 y 值上求 x 的模                      y %= x;
把 y 值向右做 x 位逻辑移位                y >>= x;
把 y 值向左做 x 位逻辑移位                y <<= x;
AND 位运算符                            y &= x;
OR 位运算符                           y |= x;
把 x 和 y 按做逻辑异或的操作            y ^= x;
表达式中可以只能有一个赋值运算符。 位运算符只能用于整型数据。逻辑移位运算符中 x 值只能是小于 5 位的二进制数,过大的数值将会被拒绝。所以移动范围只能是 0 到 31 。 用 %= 运算符 ( 用x的模板求y值),其结果等于余数。

EA狙击手 发表于 2013-7-19 23:22:42

Operations of relation操作关系
逻辑值FALSE代表整数零值,逻辑值TRUE 代表不同于零的任何值。
用返回0(False)或1(True)来表示两个量之间的关系。
等于b                        a = b;
不等于b                      a != b;
小于b                        a< b;
大于b                        a >b;
小于等于 b                   a <=b;
大于等于 b                   a >= b;
2个不规范的浮点型数据不能用 = 或 != 运算符比较,但是我们可以把2者相减, 正常化后和 null进行比较。
Boolean operations布尔运算
否定运算符(!),用来表示真假的反面的结果。如果运算值是FALSE (0) 结果为TRUE (1);如果运算不同于FALSE (0)等于FALSE (0) 。
if(!a) Print("不是 'a'");
x和y值的逻辑运算符或OR (||)用来表示两个表达式只要有一个成立即可。如果x和y值为真的,表达式值为TRUE (1)。否则,值为FALSE (0)。逻辑表达式被完全计算。
if(x<0 || x>=max_bars) Print("超出范围");
x和y值的逻辑运算符AND (&&)。如果x和值都是真实的,表达式值为TRUE (1)。 Otherwise, it is FALSE (0).
if(p!=x && p>y) Print("TRUE");
Bitwise operations位运算
运算符对操作数执行按位求补操作。表达式的数字值中包含1,其中n 包含 0和数字值中包含0 ,其中 n 包含 1。
b = ~n;
运算符x 向右移动到数字y 代表二进制代码。向右移动是逻辑运算,即左侧将被零填满。
x = x >> y;
运算符x 向右移动到数字y 代表二进制代码。左侧将被零填满
x = x << y;
二进制的x 和y代表位逻辑运算符AND 。在所有数组中x和y的值都不含有零表达式的值包含1 (TRUE);在所有其他数字中包含0 (FALSE)。
b = ((x & y) != 0);
二进制的x 和y代表位逻辑运算符OR。在所有数字中x和y的值都不等于零表达值包含1 并且在所有其他数字中包含0。
b = x | y;
二进制的x 和y代表位逻辑运算符EXCLUSIVE 。在所有数字中x和y的值都不同于二进制值表达值包含1并且在所有其他数字中包含0 。
b = x ^ y;
位逻辑运算符只作用于Integers类型。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: MQL4 Reference MQL4命令手册(完整版)