MQL4常量与函数的统计

合集下载

最新MQL4命令中文详解手册资料

最新MQL4命令中文详解手册资料

MQL4 Reference MQL4命令手册(本手册采用Office2007编写)2010年2月目录MQL4 Reference (1)MQL4命令手册 (1)Basics基础 (18)Syntax语法 (18)Comments注释 (18)Identifiers标识符 (19)Reserved words保留字 (19)Data types数据类型 (20)Type casting类型转换 (20)Integer constants整数常量 (21)Literal constants字面常量 (21)Boolean constants布尔常量 (22)Floating-point number constants (double)浮点数常量(双精度) (22)String constants字符串常量 (23)Color constants颜色常数 (23)Datetime constants日期时间常数 (24)Operations & Expressions操作表达式 (25)Expressions表达式 (25)Arithmetical operations算术运算 (25)Assignment operation赋值操作 (26)Operations of relation操作关系 (27)Boolean operations布尔运算 (27)Bitwise operations位运算 (28)Other operations其他运算 (28)Precedence rules优先规则 (29)Operators操作符 (31)Compound operator复合操作符 (31)Expression operator表达式操作符 (32)Break operator终止操作符 (32)Continue operator继续操作符 (32)Return operator返回操作符 (33)Conditional operator if-else条件操作符 (34)Switch operator跳转操作符 (35)Cycle operator while循环操作符while (36)Cycle operator for循环操作符for (37)Functions函数 (38)Function call函数调用 (39)Special functions特殊函数 (40)Variables变量 (40)Local variables局部变量 (42)Formal parameters形式变量 (42)Static variables静态变量 (44)Global variables全局变量 (44)Defining extern variables外部定义变量 (45)Initialization of variables初始化变量 (45)External functions definition外部函数的定义 (46)Preprocessor预处理 (47)Constant declaration常量声明 (47)Controlling compilation编译控制 (48)Including of files包含文件 (49)Importing of functions导入功能 (49)Standard constants标准常数 (52)Series arrays系列数组 (52)Timeframes图表周期时间 (52)Trade operations交易操作 (53)Price constants价格常数 (53)MarketInfo市场信息识别符 (54)Drawing styles画线风格 (56)Arrow codes预定义箭头 (57)Wingdings宋体 (58)Web colors颜色常数 (59)Indicator lines指标线 (60)Ichimoku Kinko Hyo (61)Moving Average methods移动平均方法 (61)MessageBox信息箱 (62)Object types对象类型 (64)Object properties对象属性 (65)Object visibility (67)Uninitialize reason codes撤销初始化原因代码 (68)Special constants特别常数 (68)Error codes错误代码 (69)Predefined variables预定义变量 (74)Ask最新卖价 (74)Bars柱数 (75)Bid最新买价 (75)Close[]收盘价 (76)Digits汇率小数位 (76)High[]最高价 (77)Low[]最低价 (78)Open[]开盘价 (79)Point点值 (80)Time[]开盘时间 (80)Volume[]成交量 (82)Program Run程序运行 (83)Program Run程序运行 (83)Imported functions call输入函数调用 (84)Runtime errors运行错误 (85)Account information账户信息 (100)AccountBalance( )账户余额 (100)AccountCredit( )账户信用点数 (100)AccountCompany( )账户公司名 (100)AccountCurrency( )基本货币 (100)AccountEquity( )账户资产净值 (101)AccountFreeMargin( )账户免费保证金 (101)AccountFreeMarginCheck()账户当前价格自由保证金 (101)AccountFreeMarginMode( )账户免费保证金模式 (102)AccountLeverage( )账户杠杆 (102)AccountMargin( )账户保证金 (102)AccountNumber( )账户数字 (103)AccountProfit( )账户利润 (103)AccountServer( )账户连接服务器 (103)AccountStopoutLevel( )账户停止水平值 (103)AccountStopoutMode( )账户停止返回模式 (104)Array functions数组函数 (105)ArrayBsearch()数组搜索 (105)ArrayCopy()数组复制 (106)ArrayCopyRates()数组复制走势 (107)ArrayCopySeries()数组复制系列走势 (108)ArrayDimension()返回数组维数 (109)ArrayGetAsSeries()返回数组序列 (110)ArrayInitialize()数组初始化 (110)ArrayIsSeries()判断数组连续 (111)ArrayMaximum()数组最大值定位 (111)ArrayMinimum()数组最小值定位 (112)ArrayRange()返回数组指定维数数量 (112)ArrayResize()改变数组维数 (113)ArraySetAsSeries()设定系列数组 (113)ArraySize()返回数组项目数 (114)ArraySort()数组排序 (114)Checkup检查 (116)GetLastError( )返回最后错误 (116)IsConnected( )返回联机状态 (116)IsDllsAllowed( )返回dll允许调用 (117)IsExpertEnabled( )返回智能交易开启状态 (118)IsLibrariesAllowed( )返回数据库函数调用 (118)IsOptimization( )返回策略测试中优化模式 (119)IsStopped( )返回终止业务 (119)IsTesting( )返回测试模式状态 (119)IsTradeAllowed( )返回允许智能交易 (120)IsTradeContextBusy( )返回其他智能交易忙 (120)IsVisualMode( )返回智能交易“图片模式” (120)UninitializeReason( )返回智能交易初始化原因 (120)Client terminal客户端信息 (122)TerminalCompany( )返回客户端所属公司 (122)TerminalName( )返回客户端名称 (122)TerminalPath( )返回客户端文件路径 (122)Common functions常规命令函数 (123)Alert弹出警告窗口 (123)Comment显示信息在走势图左上角 (123)GetTickCount获取时间标记 (124)MarketInfo在市场观察窗口返回不同数据保证金列表 (124)MessageBox创建信息窗口 (125)PlaySound播放声音 (125)Print窗口中显示文本 (126)SendFTP设置FTP (127)SendMail设置Email (127)Sleep指定的时间间隔内暂停交易业务 (128)Conversion functions格式转换函数 (129)CharToStr字符转换成字符串 (129)DoubleToStr双精度浮点转换成字符串 (129)NormalizeDouble给出环绕浮点值的精确度 (130)StrToDouble字符串型转换成双精度浮点型 (130)StrToInteger字符串型转换成整型 (130)StrToTime字符串型转换成时间型 (131)TimeToStr时间类型转换为"yyyy.mm.dd hh:mi"格式 (131)Custom indicators自定义指标 (132)IndicatorBuffers (132)IndicatorCounted (133)IndicatorDigits (134)IndicatorShortName (135)SetIndexArrow (136)SetIndexBuffer (137)SetIndexDrawBegin (138)SetIndexEmptyValue (139)SetIndexLabel (140)SetIndexShift (142)SetIndexStyle (144)SetLevelStyle (144)SetLevelValue (145)Date & Time functions日期时间函数 (146)Day (146)DayOfWeek (146)DayOfYear (146)Hour (147)Minute (147)Month (147)Seconds (148)TimeCurrent (148)TimeDay (148)TimeDayOfWeek (149)TimeDayOfYear (149)TimeHour (149)TimeLocal (150)TimeMinute (150)TimeMonth (150)TimeSeconds (150)TimeYear (151)Year (151)File functions文件函数 (152)FileClose关闭文件 (152)FileDelete删除文件 (152)FileFlush将缓存中的数据刷新到磁盘上去 (153)FileIsEnding文件结尾 (154)FileIsLineEnding (155)FileOpen打开文件 (155)FileOpenHistory历史目录中打开文件 (156)FileReadArray将二进制文件读取到数组中 (157)FileReadDouble从文件中读取浮点型数据 (158)FileReadInteger从当前二进制文件读取整形型数据 (158)FileReadNumber (159)FileReadString从当前文件位置读取字串符 (160)FileSeek文件指针移动 (161)FileSize文件大小 (162)FileTell文件指针的当前位置 (162)FileWrite写入文件 (163)FileWriteArray一个二进制文件写入数组 (164)FileWriteDouble一个二进制文件以浮动小数点写入双重值 (165)FileWriteInteger一个二进制文件写入整数值 (166)FileWriteString当前文件位置函数写入一个二进制文件字串符 (167)Global variables全局变量 (168)GlobalVariableCheck (168)GlobalVariableDel (168)GlobalVariableGet (169)GlobalVariableName (169)GlobalVariableSet (170)GlobalVariableSetOnCondition (170)GlobalVariablesDeleteAll (172)GlobalVariablesTotal (172)Math & Trig数学和三角函数 (173)MathAbs (173)MathArccos (173)MathArctan (174)MathCeil (175)MathCos (175)MathExp (176)MathFloor (176)MathLog (177)MathMax (177)MathMin (178)MathMod (178)MathPow (179)MathRand (179)MathRound (180)MathSin (180)MathSqrt (181)MathSrand (181)MathTan (182)Object functions目标函数 (183)ObjectCreate建立目标 (183)ObjectDelete删除目标 (184)ObjectDescription目标描述 (184)ObjectFind查找目标 (185)ObjectGet目标属性 (186)ObjectGetFiboDescription斐波纳契描述 (186)ObjectGetShiftByValue (187)ObjectMove移动目标 (188)ObjectName目标名 (188)ObjectsDeleteAll删除所有目标 (189)ObjectSet改变目标属性 (190)ObjectSetFiboDescription改变目标斐波纳契指标 (190)ObjectSetText改变目标说明 (191)ObjectsTotal返回目标总量 (191)ObjectType返回目标类型 (192)String functions字符串函数 (193)StringConcatenate字符串连接 (193)StringFind字符串搜索 (193)StringGetChar字符串指定位置代码 (194)StringLen字符串长度 (194)StringSetChar (195)StringSubstr提取子字符串 (195)StringTrimLeft (196)StringTrimRight (196)Technical indicators技术指标 (197)iAC比尔.威廉斯的加速器或减速箱振荡器 (197)iAD离散指标 (197)iAlligator比尔・威廉斯的鳄鱼指标 (198)iADX移动定向索引 (199)iATR平均真实范围 (199)iAO比尔.威廉斯的振荡器 (200)iBands保力加通道技术指标 (200)iBandsOnArray保力加通道指标 (201)iBullsPower牛市指标 (202)iCCI商品通道索引指标 (202)iCCIOnArray商品通道索引指标 (203)iCustom指定的客户指标 (203)iDeMarker (204)iEnvelopes包络指标 (204)iEnvelopesOnArray包络指标 (205)iForce强力索引指标 (206)iFractals分形索引指标 (206)iGator随机震荡指标 (207)iIchimoku (207)iBWMFI比尔.威廉斯市场斐波纳契指标 (208)iMomentum动量索引指标 (208)iMomentumOnArray (209)iMFI资金流量索引指标 (209)iMA移动平均指标 (210)iMAOnArray (210)iOsMA移动振动平均震荡器指标 (211)iMACD移动平均数汇总/分离指标 (212)iOBV能量潮指标 (212)iSAR抛物线状止损和反转指标 (213)iRSI相对强弱索引指标 (213)iRVI相对活力索引指标 (214)iStdDev标准偏差指标 (215)iStdDevOnArray (215)iStochastic随机震荡指标 (216)iWPR威廉指标 (217)Timeseries access时间序列图表数据 (218)iBars柱的数量 (218)iBarShift开始时间的柱 (218)iClose (219)iHigh (219)iHighest (220)iLow (221)iLowest (221)iOpen (222)iTime (222)iVolume (223)Trading functions交易函数 (225)Execution errors (225)OrderClose (228)OrderCloseBy (229)OrderClosePrice (229)OrderCloseTime (230)OrderComment (230)OrderCommission (231)OrderExpiration (232)OrderLots (232)OrderMagicNumber (232)OrderModify (233)OrderOpenPrice (234)OrderOpenTime (234)OrderPrint (235)OrderProfit (235)OrderSelect (236)OrderSend (237)OrdersHistoryTotal (238)OrderStopLoss (239)OrdersTotal (239)OrderSwap (240)OrderSymbol (240)OrderTakeProfit (241)OrderTicket (241)OrderType (241)Window functions窗口函数 (243)HideTestIndicators隐藏指标 (243)Period使用周期 (243)RefreshRates刷新预定义变量和系列数组的数据 (243)Symbol当前货币对 (245)WindowBarsPerChart可见柱总数 (245)WindowExpertName智能交易系统名称 (246)WindowFind返回名称 (246)WindowFirstVisibleBar第一个可见柱 (246)WindowHandle (247)WindowIsVisible图表在子窗口中可见 (247)WindowOnDropped (248)WindowPriceMax (248)WindowPriceMin (249)WindowPriceOnDropped (250)WindowRedraw (250)WindowScreenShot (251)WindowTimeOnDropped (252)WindowsTotal指标窗口数 (253)WindowXOnDropped (253)WindowYOnDropped (253)Obsolete functions过时的函数 (254)MetaQuotes Language 4 (MQL4) 是一种新的内置型程序用来编写交易策略。

MQL4命令中文详解手册

MQL4命令中文详解手册

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

MQL4命令中文详解手册

MQL4命令中文详解手册

MQL4命令中⽂详解⼿册MQL4 Reference MQL4命令⼿册(本⼿册采⽤Office2007编写)2010年2⽉⽬录MQL4 Reference (1)MQL4命令⼿册 (1)Basics基础 (18)Syntax语法 (18)Comments注释 (18)Identifiers标识符 (19)Reserved words保留字 (19)Data types数据类型 (20)Type casting类型转换 (20)Integer constants整数常量 (21)Literal constants字⾯常量 (21)Boolean constants布尔常量 (22)Floating-point number constants (double)浮点数常量(双精度) (22) String constants字符串常量 (23)Color constants颜⾊常数 (23)Datetime constants⽇期时间常数 (24)Operations & Expressions操作表达式 (25)Expressions表达式 (25)Arithmetical operations算术运算 (25)Assignment operation赋值操作 (26)Operations of relation操作关系 (27)Boolean operations布尔运算 (27)Bitwise operations位运算 (28)Other operations其他运算 (28)Precedence rules优先规则 (29)Operators操作符 (31)Compound operator复合操作符 (31)Expression operator表达式操作符 (32)Break operator终⽌操作符 (32)Continue operator继续操作符 (32)Return operator返回操作符 (33)Conditional operator if-else条件操作符 (34) Switch operator跳转操作符 (35)Cycle operator while循环操作符while (36) Cycle operator for循环操作符for (37) Functions函数 (38)Function call函数调⽤ (39)Special functions特殊函数 (40)Variables变量 (40)Local variables局部变量 (42)Formal parameters形式变量 (42)Static variables静态变量 (44)Global variables全局变量 (44)Defining extern variables外部定义变量 (45) Initialization of variables初始化变量 (45) External functions definition外部函数的定义 (46) Preprocessor预处理 (47)Constant declaration常量声明 (47) Controlling compilation编译控制 (48) Including of files包含⽂件 (49)Importing of functions导⼊功能 (49)Standard constants标准常数 (52)Series arrays系列数组 (52)Timeframes图表周期时间 (52)Trade operations交易操作 (53)Price constants价格常数 (53)MarketInfo市场信息识别符 (54)Drawing styles画线风格 (56)Arrow codes预定义箭头 (57)Wingdings宋体 (58)Web colors颜⾊常数 (59)Indicator lines指标线 (60)Ichimoku Kinko Hyo (61)Moving Average methods移动平均⽅法 (61) MessageBox信息箱 (62)Object types对象类型 (64)Object properties对象属性 (65)Object visibility (67)Uninitialize reason codes撤销初始化原因代码 (68) Special constants特别常数 (68)Error codes错误代码 (69)Predefined variables预定义变量 (74)Ask最新卖价 (74)Bars柱数 (75)Bid最新买价 (75)Close[]收盘价 (76)Digits汇率⼩数位 (76)High[]最⾼价 (77)Low[]最低价 (78)Open[]开盘价 (79)Point点值 (80)Time[]开盘时间 (80)Volume[]成交量 (81)Program Run程序运⾏ (83)Program Run程序运⾏ (83)Imported functions call输⼊函数调⽤ (84)Runtime errors运⾏错误 (85)Account information账户信息 (99)AccountBalance( )账户余额 (99)AccountCredit( )账户信⽤点数 (99) AccountCompany( )账户公司名 (99) AccountCurrency( )基本货币 (99)AccountEquity( )账户资产净值 (100) AccountFreeMargin( )账户免费保证⾦ (100) AccountFreeMarginCheck()账户当前价格⾃由保证⾦ (100) AccountFreeMarginMode( )账户免费保证⾦模式 (100) AccountLeverage( )账户杠杆 (101)AccountMargin( )账户保证⾦ (101)AccountNumber( )账户数字 (102)AccountProfit( )账户利润 (102)AccountServer( )账户连接服务器 (102) AccountStopoutLevel( )账户停⽌⽔平值 (102) AccountStopoutMode( )账户停⽌返回模式 (102) Array functions数组函数 (104)ArrayBsearch()数组搜索 (104)ArrayCopy()数组复制 (105)ArrayCopyRates()数组复制⾛势 (106) ArrayCopySeries()数组复制系列⾛势 (107) ArrayDimension()返回数组维数 (108) ArrayGetAsSeries()返回数组序列 (109) ArrayInitialize()数组初始化 (109)ArrayIsSeries()判断数组连续 (110) ArrayMaximum()数组最⼤值定位 (110) ArrayMinimum()数组最⼩值定位 (111) ArrayRange()返回数组指定维数数量 (111) ArrayResize()改变数组维数 (112) ArraySetAsSeries()设定系列数组 (112) ArraySize()返回数组项⽬数 (113)ArraySort()数组排序 (113)Checkup检查 (115)GetLastError( )返回最后错误 (115)IsConnected( )返回联机状态 (115) IsDllsAllowed( )返回dll允许调⽤ (116) IsExpertEnabled( )返回智能交易开启状态 (117) IsLibrariesAllowed( )返回数据库函数调⽤ (117) IsOptimization( )返回策略测试中优化模式 (118) IsStopped( )返回终⽌业务 (118)IsTesting( )返回测试模式状态 (118) IsTradeAllowed( )返回允许智能交易 (119) IsTradeContextBusy( )返回其他智能交易忙 (119) IsVisualMode( )返回智能交易“图⽚模式” (119) UninitializeReason( )返回智能交易初始化原因 (119) Client terminal客户端信息 (121) TerminalCompany( )返回客户端所属公司 (121) TerminalName( )返回客户端名称 (121)TerminalPath( )返回客户端⽂件路径 (121)Common functions常规命令函数 (122)Alert弹出警告窗⼝ (122)Comment显⽰信息在⾛势图左上⾓ (122) GetTickCount获取时间标记 (123)MarketInfo在市场观察窗⼝返回不同数据保证⾦列表 (123) MessageBox创建信息窗⼝ (124)PlaySound播放声⾳ (124)Print窗⼝中显⽰⽂本 (125)SendFTP设置FTP (126)SendMail设置Email (126)Sleep指定的时间间隔内暂停交易业务 (127) Conversion functions格式转换函数 (128)CharToStr字符转换成字符串 (128)DoubleToStr双精度浮点转换成字符串 (128) NormalizeDouble给出环绕浮点值的精确度 (129) StrToDouble字符串型转换成双精度浮点型 (129) StrToInteger字符串型转换成整型 (129)StrToTime字符串型转换成时间型 (130)TimeToStr时间类型转换为"yyyy.mm.dd hh:mi"格式 (130) Custom indicators⾃定义指标 (131) IndicatorBuffers (131)IndicatorCounted (132)IndicatorDigits (133)IndicatorShortName (134)SetIndexArrow (135)SetIndexBuffer (136)SetIndexDrawBegin (137)SetIndexEmptyValue (138)SetIndexLabel (139)SetIndexShift (141)SetIndexStyle (143)SetLevelStyle (143)SetLevelValue (144)Date & Time functions⽇期时间函数 (145)Day (145)DayOfWeek (145)DayOfYear (145)Hour (146)Minute (146)Month (146)Seconds (147)TimeCurrent (147)TimeDay (147)TimeDayOfWeek (148) TimeDayOfYear (148)TimeHour (148)TimeLocal (149)TimeMinute (149)TimeMonth (149)TimeSeconds (149)TimeYear (150)Year (150)⽂件函数 (151)关闭⽂件 (151)删除⽂件 (151)将缓存中的数据刷新到磁盘上去 (152)⽂件结尾 (153)(154)打开⽂件 (154)历史⽬录中打开⽂件 (155)将⼆进制⽂件读取到数组中 (156)从⽂件中读取浮点型数据 (157)从当前⼆进制⽂件读取整形型数据 (157) (158)从当前⽂件位置读取字串符 (159)⽂件指针移动 (159)⽂件⼤⼩ (160)⽂件指针的当前位置 (161)写⼊⽂件 (161)⼀个⼆进制⽂件写⼊数组 (162)⼀个⼆进制⽂件以浮动⼩数点写⼊双重值 (163)⼀个⼆进制⽂件写⼊整数值 (164)当前⽂件位置函数写⼊⼀个⼆进制⽂件字串符 (165) Global variables全局变量 (167) GlobalVariableCheck (167) GlobalVariableDel (167)GlobalVariableGet (168) GlobalVariableName (168) GlobalVariableSet (169) GlobalVariableSetOnCondition (169) GlobalVariablesDeleteAll (171) GlobalVariablesTotal (171)Math & Trig数学和三⾓函数 (172)MathAbs (172)MathArccos (172)MathArctan (173)MathCeil (174)MathCos (174)MathExp (175)MathFloor (175)MathLog (176)MathMax (176)MathMin (177)MathMod (177)MathPow (178)MathRand (178)MathRound (178)MathSin (179)MathSqrt (180)MathSrand (180)MathTan (181)Object functions⽬标函数 (182)ObjectCreate建⽴⽬标 (182)ObjectDelete删除⽬标 (183)ObjectDescription⽬标描述 (183)ObjectFind查找⽬标 (184)ObjectGet⽬标属性 (185) ObjectGetFiboDescription斐波纳契描述 (185) ObjectGetShiftByValue (186)ObjectMove移动⽬标 (187)ObjectName⽬标名 (187)ObjectsDeleteAll删除所有⽬标 (188)ObjectSet改变⽬标属性 (188) ObjectSetFiboDescription改变⽬标斐波纳契指标 (189) ObjectSetText改变⽬标说明 (190)ObjectsTotal返回⽬标总量 (190)ObjectType返回⽬标类型 (191)String functions字符串函数 (192) StringConcatenate字符串连接 (192)StringFind字符串搜索 (192)StringGetChar字符串指定位置代码 (193)StringLen字符串长度 (193)StringSetChar (194)StringSubstr提取⼦字符串 (194)StringTrimLeft (195)StringTrimRight (195)Technical indicators技术指标 (196)iAC⽐尔.威廉斯的加速器或减速箱振荡器 (196)iAD离散指标 (196)iAlligator⽐尔?威廉斯的鳄鱼指标 (197)iADX移动定向索引 (198)iATR平均真实范围 (198)iAO⽐尔.威廉斯的振荡器 (199)iBands保⼒加通道技术指标 (199) iBandsOnArray保⼒加通道指标 (200)iBullsPower⽜市指标 (201)iCCI商品通道索引指标 (201)iCCIOnArray商品通道索引指标 (202)iCustom指定的客户指标 (202)iDeMarker (203)iEnvelopes包络指标 (203) iEnvelopesOnArray包络指标 (204)iForce强⼒索引指标 (204)iFractals分形索引指标 (205)iGator随机震荡指标 (205)iIchimoku (206)iBWMFI⽐尔.威廉斯市场斐波纳契指标 (207) iMomentum动量索引指标 (207) iMomentumOnArray (208)iMFI资⾦流量索引指标 (208)iMA移动平均指标 (209)iMAOnArray (209)iOsMA移动振动平均震荡器指标 (210) iMACD移动平均数汇总/分离指标 (211) iOBV能量潮指标 (211)iSAR抛物线状⽌损和反转指标 (212)iRSI相对强弱索引指标 (212)iRVI相对活⼒索引指标 (213)iStdDev标准偏差指标 (214) iStdDevOnArray (214)iStochastic随机震荡指标 (215)iWPR威廉指标 (216)Timeseries access时间序列图表数据 (217) iBars柱的数量 (217)iBarShift开始时间的柱 (217)iClose (218)iHigh (218)iHighest (219)iLow (220)iLowest (220)iOpen (221)iTime (221)iVolume (222)Trading functions交易函数 (224)Execution errors (224)OrderClose (227)OrderCloseBy (228)OrderClosePrice (228)OrderCloseTime (229)OrderComment (229)OrderCommission (230)OrderExpiration (231)OrderLots (231)OrderMagicNumber (231)OrderModify (232)OrderOpenPrice (233)OrderOpenTime (233)OrderPrint (234)OrderProfit (234)OrderSelect (235)OrderSend (236)OrdersHistoryTotal (237)OrderStopLoss (238)OrdersTotal (238)OrderSwap (239)OrderSymbol (239)OrderTakeProfit (240)OrderTicket (240)OrderType (240)Window functions窗⼝函数 (242) HideTestIndicators隐藏指标 (242)Period使⽤周期 (242)RefreshRates刷新预定义变量和系列数组的数据 (242) Symbol当前货币对 (244) WindowBarsPerChart可见柱总数 (244) WindowExpertName智能交易系统名称 (245) WindowFind返回名称 (245) WindowFirstVisibleBar第⼀个可见柱 (245) WindowHandle (246)WindowIsVisible图表在⼦窗⼝中可见 (246)WindowOnDropped (247)WindowPriceMax (247)WindowPriceMin (248)WindowPriceOnDropped (249)WindowRedraw (249)WindowScreenShot (250)WindowTimeOnDropped (251)WindowsTotal指标窗⼝数 (251)WindowXOnDropped (252)WindowYOnDropped (252)Obsolete functions过时的函数 (253)MetaQuotes Language 4 (MQL4) 是⼀种新的内置型程序⽤来编写交易策略。

MQL4命令手册

MQL4命令手册

Basics 基础
MetaQuotes Language 4 (MQL4)是一种新型的交易策略内置语言。用来编写交易策略的程序 语言。 这种语言可以创建你自己的智能交易, 使自己的交易策略能够完全地自动执行。 程序 内包含了分析历史报价的必备函数, 以及一些基本的运算法和逻辑操作和一些基本的指标 和操作命令。 而且,MQL4 还能自定义自己的客户指标,脚本和数据库。
Data types 数据类型
所有的程序都依靠数据来运作,数据因目的不同可以有不同的类型 。比如,访问数组可以 用整型数据,价格可以用双精度的浮点型数据。在 MQL 4 中没有专门用来标记货币值的数 据类型。 不同的数据类型有不同的处理速度,整型数据是最快的。 双精度的数据处理需要额外的处 理器,所以处理浮点型数据比较复杂, 比处理整型数据慢一些。字符串是处理速度最慢的 因为它要存取动态内存。 主要的数据类型如下: 整型数据 (int) 布尔数据 (bool) 字符数据 (char) 字符串数据 (string) 浮点型数据 (double) 颜色数据 (color) 日期时间数据 (datetime) color 和 datetime 可以使我们更清楚的区分图表中的内容,在 expert advisor 和 indicator 中 经常使用这些数据类型。颜色和日期时间数据用整数来表示。int 和 double 都属于数值(数 字)型。
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 位的存储字符串缓冲区的地址。

MQL4关键函数学习

MQL4关键函数学习

MQL4关键函数学习一如何抓取价格数据1 如何获得本货币对的买价、卖价double ask = Ask; // Ask是关键字,表示本货币对买价;double bid = Bid; // Bid是关键字,表示本货币对卖价;2 如何获得任意货币对的买价、卖价double MarketInfo(string symbol, int type);MarketInfo("EURUSD", MODE_ASK); // 获得欧元的买价MarketInfo("EURUSD", MODE_BID); // 获得欧元的卖价3 如何获得本货币对,本时间周期,任意K线的开盘价、收盘价、最高价、最低价double Open[]; // 开盘价double Close[]; // 收盘价double High[]; // 最高价double Low[]; // 最低价// 序号从最后一根K线开始按照0、1、2编号。

4 如何获取任意货币对,任意时间周期,任意K线的开盘价、收盘价、最高价、最低价double iOpen(string symbol, int timeframe, int shift)double iClose(string symbol, int timeframe, int shift)double iHigh(string symbol, int timeframe, int shift)double iLow(string symbol, int timeframe, int shift)// symbol,货币对名称;// timeframe,时间周期;// shift,K线序号;二如何调用指标数据1 调用MT4自带指标直接调用函数字典“Technical indicators”里面系统自带的指标函数即可。

比如均线:double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift) 计算移动平均指标并返回它的值。

常量、变量、函数与表达式

常量、变量、函数与表达式

常量、变量、函数与表达式⒈常量常量(constant)是指在程序运行过程中保持不变的量,在V isual Basic中,常量一般分为数值常量与字符串常量两种。

⑴数值常量数值常量就是数学中说的常数,数值常量有整型常量和实型常量两种。

整型常量即整数,是指不带小数的数值,如1、0、-10、+107等都是合法的整数。

实型常量即实数,是指带小数的数值。

实型常量又分为定点数和浮点数两种。

定点数:3.14159 ,-6.8,1.997浮点数:2e6、1e5、88E-18浮点数对应的就是数学上的科学计数法,以幂数形式表示一个实数,例如1234.56可以表示为1.23456×103 。

由于程序中无法表示上标和下标,因此用英文字母"E"(或"e")表示底数10,则1.23456×103可表示为1.23456E3。

⑵字符串常量被一对双引号括起来的若干个合法的字符称为字符串常量。

例如"china"、"Visual Basic"、"18"、"3.14"等。

字符串常量指的是双引号中的字符,不包括双引号本身。

⑶符号常量如果程序中多次用到同一个常量,则可以用一个有意义的名字表示这个常量,称为符号常量,代表常量的符号称为"常量名",常量名的命名方法与后面的变量名一样。

例如,求圆的周长和面积的程序代码:Let r=5Let s=3.14159*r*rLet c=2*3.14159*rPrint "s=";s, "c=";c可以先用Const语句定义一个符号常量pi代替3.14159,形式如下:Const 常量名[As 类型]=表达式则可以写出如下的程序代码:Const pi As Single=3.14159Let r=5Let s=pi*r*rLet c=2*pi*rPrint "s=";s, "c=";c当常量需要改动时,仅需改动符号常量定义语句。

MQL4常用的常量及函数

MQL4常用的常量及函数

MQL4常⽤的常量及函数常⽤的量及函数Ask The latest known seller's price (ask price) for the current symbol. The RefreshRates() function must be used to update.Bid The latest known buyer's price (offer price, bid price) of the current symbol. The RefreshRates() function must be used to update MarketInfo Returns various data about securities listed in the "Market Watch" windowTo obtain the current market information there are several functions: SymbolInfoInteger(), SymbolInfoDouble() and SymbolInfoString(). The first parameter is the symbol name, the values of the second function parameter can be one of the identifiers ofENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE and ENUM_SYMBOL_INFO_STRING.Open[] Series array that contains open prices of each bar of the current chart.Close[] Series array that contains close prices for each bar of the current chart.High[] Series array that contains the highest prices of each bar of the current chart.Low[] Series array that contains the lowest prices of each bar of the current chart.iOpen Returns Open price value for the bar of specified symbol with timeframe and shift.double iOpen(string symbol, // symbolint timeframe, // timeframeint shift // shift);iClose Returns Close price value for the bar of specified symbol with timeframe and shift.double iClose(string symbol, // symbolint timeframe, // timeframeint shift // shift);iHigh Returns High price value for the bar of specified symbol with timeframe and shift.double iHigh(string symbol, // symbolint timeframe, // timeframeint shift // shift);iHighest Returns the shift of the maximum value over a specific number of bars depending on type.int iHighest(string symbol, // symbolint timeframe, // timeframeint type, // timeseriesint count, // contint start // start);iLowest Returns the shift of the lowest value over a specific number of bars depending on type.int iLowest(string symbol, // symbolint timeframe, // timeframeint type, // timeseries idint count, // countint start // starting index);⾃带指标的调⽤iMA Calculates the Moving Average indicator and returns its value.double iMA(string symbol, // symbolint timeframe, // timeframeint ma_period, // MA averaging periodint ma_shift, // MA shiftint ma_method, // averaging methodint applied_price, // applied priceint shift // shift);iCCI Calculates the Commodity Channel Index indicator and returns its valuedouble iCCI(string symbol, // symbolint timeframe, // timeframeint period, // averaging periodint applied_price, // applied priceint shift // shift);⾃定义指标的调⽤:iCustom Calculates the specified custom indicator and returns its valuedouble iCustom(string symbol, // symbolint timeframe, // timeframestring name, // path/name of the custom indicator compiled program ... // custom indicator input parameters (if necessary)int mode, // line indexint shift // shift);。

MQL4关键函数学习

MQL4关键函数学习
开盘价
double Close[]; // 收盘价
double High[]; // 最高价
double Low[]; // 最低价
// 序号从最后一根K线开始按照0、1、2编号。
4
如何获取任意货币对,任意时间周期,任意K线的开盘价、收盘价、最高价、最低价
double
iOpen(string symbol, int timeframe, int shift)
mode
- 索引行。
从0到7并且必须对应以其中一个使用的索引的 SetIndexBuffer 函数。打开数据窗口可以看到画线的列表,从0开始。
shift
-
K线索引序列(最后一根为0)。
三 如何调用下单、操作订单函数
1 如何下市价单及挂单
int OrderSend( string symbol, int cmd, double volume, double price,
下单类型:
OP_BUY 0 买仓
OP_SELL 1 卖仓
OP_BUYLIMIT 2 买挂单交易 (低价买入,常规的。)
OP_SELLLIMIT 3 卖挂单交易 (高价卖出,常规的。)
OP_BUYSTOP 4 买停挂单交易(高价买入)
OP_SELLSTOP 5 卖停挂单交易 (低价卖出)
示例:
// 市价买入
return(0);
}
2 如何调用订单函数
bool OrderSelect(int index, int
select, void pool) 函数选择定单。如果函数成功,返回的值为TRUE。如果函数失败,返回的值为FALSE。
// symbol,货币对名称;
// timeframe,时间周期;

零基础学MQL4编程

零基础学MQL4编程

零基础学MQL4编程特别说明:本文中主要内容来源于英文版MQL4 Reference 摘译,本人在MQL4 Reference基础上进行了摘译、整理,加入了部分通俗的文字说明和简明易懂的图片示例等,目的是更易于初学者上手。

如有侵权,请及时联系本人删除。

第一部分初识MQL4一、MQL4概述MetaQuotes Language 4(MQL4)是用于编程交易策略和或自定义指标等的内置语言。

该语言由MetaQuotes Software Corp根据其在创建在线交易平台方面的长期经验开发。

使用这种语言,您可以创建自己的智能交易系统,使交易管理自动化。

这非常适合实施您自己的交易策略。

此外,使用MQL4,您可以创建自己的技术指标(自定义指标),脚本和库。

MetaQuotes Language 4(MQL4)是面向对象的高级编程语言,用于编写自动交易策略,用于分析各种金融市场的自定义技术指标。

它不仅可以编写各种设计用于实时操作的专家系统,还可以创建自己的图形工具来帮助您做出交易决策。

MQL4基于流行编程语言C ++的概念。

该语言具有枚举,结构,类和事件处理。

通过增加嵌入式主类型的数量,MQL4中的可执行程序与其他应用程序之间通过dll的交互现在变得越来越简单。

MQL4语法类似于C ++的语法,可直接对C/C++语言的程序进行编译。

MQL4包含了分析当前和以前收到的报价所需的大量函数,并且具有用于管理交易订单并对其进行控制的内置基本指标和函数。

MetaEditor(文本编辑器)突出显示不同的MQL4语言结构,用于编写程序代码。

它可以帮助用户很容易地在专家系统(也叫智能交易系统)文本中定位自己。

简要指南包含函数、操作、保留字和其他语言结构,并将其分为不同的类别。

MetaQuotes Language 4可以编写具有不同功能和用途的程序:(一)、智能交易系统(EA) 这是连接到某个图表的机械交易系统。

当启动交易系统后,EA开始运行,处理以下事件:初始化事件和取消初始化事件,新的订单接收发送事件,计时器事件,市场变化事件深度,图表事件和自定义事件。

零基本学MQL4编程

零基本学MQL4编程

零基础学MQL4编程特别说明:本文中主要内容来源于英文版MQL4 Reference 摘译,本人在MQL4 Reference 基础上进行了摘译、整理,加入了部分通俗的文字说明和简明易懂的图片示例等,目的是更易于初学者上手。

如有侵权,请及时联系本人删除。

第一部分初识MQL4一、MQL4概述MetaQuotes Language 4(MQL4)是用于编程交易策略和或自定义指标等的内置语言。

该语言由MetaQuotes Software Corp根据其在创建在线交易平台方面的长期经验开发。

使用这种语言,您可以创建自己的智能交易系统,使交易管理自动化。

这非常适合实施您自己的交易策略。

此外,使用MQL4,您可以创建自己的技术指标(自定义指标),脚本和库。

MetaQuotes Language 4(MQL4)是面向对象的高级编程语言,用于编写自动交易策略,用于分析各种金融市场的自定义技术指标。

它不仅可以编写各种设计用于实时操作的专家系统,还可以创建自己的图形工具来帮助您做出交易决策。

MQL4基于流行编程语言C ++的概念。

该语言具有枚举,结构,类和事件处理。

通过增加嵌入式主类型的数量,MQL4中的可执行程序与其他应用程序之间通过dll的交互现在变得越来越简单。

MQL4语法类似于C ++的语法,可直接对C/C++语言的程序进行编译。

MQL4包含了分析当前和以前收到的报价所需的大量函数,并且具有用于管理交易订单并对其进行控制的内置基本指标和函数。

MetaEditor(文本编辑器)突出显示不同的MQL4语言结构,用于编写程序代码。

它可以帮助用户很容易地在专家系统(也叫智能交易系统)文本中定位自己。

简要指南包含函数、操作、保留字和其他语言结构,并将其分为不同的类别。

MetaQuotes Language 4可以编写具有不同功能和用途的程序:(一)、智能交易系统(EA) 这是连接到某个图表的机械交易系统。

当启动交易系统后,EA开始运行,处理以下事件:初始化事件和取消初始化事件,新的订单接收发送事件,计时器事件,市场变化事件深度,图表事件和自定义事件。

MQL4编程参考中文版

MQL4编程参考中文版

MQL4编程参考中⽂版MetaTrader 4 平台MetaQuotes Language 4 (MQL4)编程参考(简体中⽂第1版)严泽平修订前⾔MetaQuotes (迈达克)软件公司是全球外汇、CFD和期货在线交易软件的领导⼚商之⼀。

该公司⼀直致⼒于在线⾦融交易软件的研制和专业开发,MetaTrader 4交易平台(MT4)就是该公司在此领域多年研究成果,全球⾦融机构使⽤其开发的MT4交易平台可以为客户提供专业的、⾼质量的在线交易服务。

⽬前,全球有100余家经纪公司和银⾏采⽤了MT4交易平台向客户提供在线⾦融交易服务,国内民⽣银⾏也选⽤了 MT4作为外汇交易平台。

MT4交易平台是MetaQuotes公司专业开发的产品,它⽐世界上那些⼤型经纪公司或银⾏⾃研的⾯向普通客户的交易平台更专业、运⾏更稳定、功能更强悍, 深受朋友们喜爱、好评,特别是其内置的⾯向⾼端客户的MQL4编程语⾔,强⼤的编程能⼒⽆⼈能与之⽐肩,是MT4平台最⼤特⾊之⼀。

MetaQuotes Language 4 (MQL4)是MT4平台客户端程序内置的交易策略编程语⾔。

这种语⾔允许⽤户创建⾃⼰的智能交易程序(EA),使⾃⼰的交易操作能够⾃动地执⾏,此外,⽤户还可以使⽤MQL4创建⾃定义指标、脚本和库。

MQL4编程语⾔包含了⼤量可以分析当前数据及历史数据所必备的函数,像⼤多数计算机程序设计语⾔⼀样,它也包含了多种数据类型、各种运算符、预定义常量、数组、控制语句和丰富的数据处理函数,内置了⼀些基本的技术指标和⽤户定单管理命令等。

集成在客户端的MetaEditor 4(ME4⽂本编辑器)是编写MQL4程序源码的集成开发环境。

ME4⽀持语法⾼亮显⽰,带有在线帮助系统,⽤户可在客户端内利⽤历史数据模拟运⾏程序,⾃⾏评估程序运⾏效果。

鉴于MT4平台在国内已有应⽤,在国际上已有百余家公司采⽤,国内炒汇朋友不可避免要⽤到该平台,学习和应⽤MQL4语⾔就是⾼⼿们抢占先机、⾛向辉煌的必经之路。

mql4枚举函数使用

mql4枚举函数使用

mql4枚举函数使用在MQL4中,枚举(Enum)是一种用于定义一组常量的数据类型。

枚举类型可以将一组相关的常量集合在一起,使得代码更易读、更易维护。

以下是MQL4中使用枚举函数的基本用法示例:```mql4/定义一个枚举类型enum Colors{Red,Green,Blue};/ 在函数中使用枚举类型作为参数或返回值int GetColor(Colors color){switch (color){case Red:return 255;case Green:return 0;case Blue:return 0;}return 0;}/调用函数并使用枚举值int colorValue = GetColor(Green);Print("Green color value: ", colorValue);```在上述示例中,我们首先定义了一个名为"Colors"的枚举类型,包含了三个常量:Red、Green、Blue。

然后,我们在一个函数中使用枚举类型作为参数进行逻辑处理,返回对应的颜色值。

在最后的调用中,我们传入Green作为参数,并打印输出对应的颜色值。

枚举类型提供了一种便于编程的方式来明确表示一组相关的常量。

你可以根据需要在枚举类型中定义更多的常量,并根据常量的意义在代码中进行处理。

此外,MQL4中还提供了一些特殊的枚举类型,如时间单位(ENUM_TIMEFRAMES)、订单类型(ENUM_ORDER_TYPE)等,可用于更方便地定义和处理相关的常量。

如果需要使用这些特殊的枚举类型,请参考相关的MQL4文档和示例。

MQL4系统和编程指南

MQL4系统和编程指南

一:MQL语言的主要程序类型1.共三种分别是:指标,EA(Expert, Advisors,智能交易系统),脚本(自动交易程序,只能执行一次),它们之间的区别。

2.怎么运行3.加载的问题4.作用运行原理5.其它: 效率测试实用性改进性回撤怎么运行EA:把.ex4的files放入MT4\experts\...把dll 文件放入MT4\experts\libraries\...点击导航器选中程序拖入货币对window.,在程序右上角出现X符号,说明EA没启动.点智能交易出现笑脸符号.说明EA可正常运行.怎么运行指标: 把.ex4的files放入MT4\experts\indicators…点击导航器\自定义指标选中程序拖入货币对怎么运行脚本: 把.ex4的files放入MT4\experts\scripts脚本无参数.作用:指标Indicator 主图,附图脚本Script 下单平仓一次性工作EA Expert 条件进去场资金管理仓位管理运行原理:指标:加载后从历史最左边的K线开始计算,计算完成,在当前动态K线,每一个Tick(报价)到来的时候,计算一次那些情况下会重新计算一次:1.第一次加载到图表2.改动参数3.重新编译4.重新打开加载有指标的K线图表5.切换K线周期指标计算要考虑效率,通过优化减少计算量EA:由五部分组成:1.变量定义2.EA init()3.EA deinit()4.EA 执行proaram , int start()5.自定变量指标:与EA不同之处:变量定义增加了所在的窗口,主副定义指标显示物件的模型执行时只计算输出变量,不能进行平仓,修改等。

二:MQL4编程核心:价格数据,调用指标数据,调用下单,操作定单function1.price function:货币对,buy,sell,time.open,close,high,low2.调用MT4的指标,和自定义.3.下单,操作定单functionEA框架由五部分组成:1.变量预定义:定义程序中使用的公共变量2.EA初始化程序:EA调入到图表后执行一次,之后不再执行,用来…定义…模型3.EA结束程序:EA退出图表时执行一次,用来删除图表中的….4.EA执行程序:每过来一个报价就执行一次5.自定义变量:用来编定一些自定义函数指标框架由五部分组成:1.在变量预定义里增加了指标所在窗口的语句,限定指标在主图或附图里显示2定义指标显示….的模型,如线型,颜色,输出变量名称等,3同上4增加:计算输出变量,不能进行开仓,平仓,修改止赢,止损等操作5同上.坐标系:定位:时间,价格,开仓量.横坐标:可以是时间,可以是K线序号,通常使用K线序号;开仓量通常在风险控制中考虑因此:编程的重点在时间和价格二维内置变量与函数整数相除的方法:double i=(1*0.01)/(3*0.01)市场函数:定义最低价变量myLow,并获取最低价。

MQL4自定义指标编写相关函数(二)

MQL4自定义指标编写相关函数(二)

MQL4自定义指标编写相关函数(二)MQL4自定义指标编写相关函数(二)(1)iCustom(函数iCustom(函数用于将自定义指标输出到图表中,并返回当前的值。

语法:double iCustom(string symbol,string name,int mode,int shift参数说明:参数类型描述symbol string 要获取的报价数据的品种名称。

name string 指标名称。

mode int 指标值计算模式,可以使用MODE_MAIN(0)代表指标的主要值,MODE_SIGNAL(1)代表指标的辅助信号值。

shift int 指标数据偏移。

返回值:函数会返回指标当前值。

实例:例如,想要在图表中显示指标RSI,可以使用以下代码:rsi = iCustom("EURUSD",PERIOD_H1,"RSI",MODE_MAIN,0);(2)iMA(函数iMA(函数用于计算移动平均线,将其输出到图表中,并返回当前的值。

语法:double iMA(string symbol,int ma_period,int ma_shift,int ma_method,int applied_price,int shift参数说明:参数类型描述symbol string 要获取的报价数据的品种名称。

ma_period int 移动平均线的周期。

ma_shift int 移动平均线的偏移。

ma_method int 移动平均线的计算方式(MA_METHOD_SMA,MA_METHOD_EMA,MA_METHOD_SMMA,MA_METHOD_LWMA等)。

applied_price int 数据的价格类型(PRICE_OPEN,PRICE_HIGH,PRICE_LOW,PRICE_CLOSE,PRICE_MEDIAN,PRICE_TYPICAL,PRICE_WEIGHTED等)。

3.MQL4语言基本语法讲解(上)

3.MQL4语言基本语法讲解(上)

-----主讲人:赵越(瞬间的光辉)第三课:MQL4语言基本语法讲解(上)1.MQL4语言介绍,MQL4和MT4的关系。

ex4文件和mq4文件的区别2.注释符:单行注释“//”、多行注释“/* */”3.MQL4的变量有哪些数据类型?日期类型特别说明.颜色数据(color) 代表RGB 颜色;例:color a= C'0x44,0xB9,0xE6';//其中0x44,0xB9,0xE6 三个16位整数分别代表R,G,B的值。

日期时间数据(datetime) 是起始时间从1979年1月上午0.00开始以秒数计算。

例:datetime a= a=D'2004.01.01 00:00';//表示2004年1月1日00:00点。

也可以表示从1970年1月1日上午0.00开始到2004年1月1日00:00点所经过的秒数。

4.如何定义数组?在mql4编程中数组有着巨大的作用!int a[50]; // 定义了50整数的一维数组注意:数组第一个元素是a[0],最后元素为a[49 ]。

大家都知道MT4图标中最基本的单位是K线,对于mql4编程语言来说这一根一根K线是有顺序的,它就是以数组来存储的。

如上图:最右边的一根K线是0号,往右一根K线是1号。

MQL4内置了很多数组例如:Open[],Close[],High[],Low[]。

这些数组你不用声明就可以使用,它们的序号就是图上我标注的序号:如上图想得到最右边的那根K线的开盘价就等于Open[0],收盘价就等于Close[0],最高价就等于High[0],最低价就等于Low[0]。

5.全局变量,局部变量,可供外部修改的变量的区别?全局变量是在程序最开始的地方定义的,可提供程序中的所有函数访问。

局部变量是在函数内部定义的,它的使用周期是这个函数的运行完毕。

可供外部修改的变量就是程序一开始用extern修饰符定义的变量,它是一种特殊的全局变量,它有全局变量所有特性和功能,它的特殊性就是可供外部修改变量的值。

MQL4经典入门第2课

MQL4经典入门第2课

MQL4经典⼊门第2课MQL4 经典⼊门第2课By coders’ guru欢迎来到MQL4课程的第三课。

回顾下上⼀课的内容:你可以使⽤什么格式来书写MQL4代码?怎样通过注释使你的程序更加完善?什么是标识符?选择他们有什么规则?什么是MQL4的保留字?现在,让我们享受本课的乐趣“DATA TYPES”(数据类型)数据类型是什么意思?任何程序语⾔都有⼀套数据的内存表⽰的名称。

例如,如果内存保留⼀个-2147483648 到2147483647之间的数,那么⼤多数的程序语⾔将命名这个数据为“整型数据”(Integer)。

变量?变量是被提交到内存中的数据的名称。

你可以设想内存是连续的、⼤⼩不同的盒⼦。

●为了使⽤⼀个盒⼦存储数据,这个盒⼦必须被赋予⼀个名称,这个过程被称为“声明”。

●在“声明”过程,你⽤⼀个词告诉计算机你想使⽤的盒⼦类型和⼤⼩,这个词被称为“关键字”。

●你还可以给这个盒⼦起⼀个好记的或者跟存储数据有关系的名字,这可以⽅便你以后找到这个数据。

这个名字就叫“变量名”。

●通过“赋值”,可以把数据放进盒⼦⾥。

●我们可以在“声明”变量的同时就给它⼀个值,这个过程被称为“初始化”。

例如下⾯的这⾏代码:int MyVaraible=0;int ?关键字int ?整型数据类型int ?声明MyVaraible ?变量名=0 ?初始化MQL4包括以下数据类型:■整型数据(int)⼗进制: 数字0 - 9 ,包括负数。

⼗六进制: 数字0 - 9 , 字⾯ a - f 或者A - F 代表10 - 15; 以0x 或者0X 开头。

整型数据占⽤4 字节的空间,其数值范围介于-2147483648 ~2147483647 之间。

如果超出这个范围,则视为⽆效。

例如:int intInteger = 0;int intAnotherIntger = -100;int intHexIntger=0x12;■布尔数据(bool)Boolean ⽤来表⽰是和否, 还可以⽤数字1 和0 进⾏表⽰。

MQL4自定义指标编写相关函数(二)

MQL4自定义指标编写相关函数(二)

MQL4自定义指标编写相关函数(二)2020-02-26 16:45:12本组函数用于设计和编写自定义指标。

这些函数不能用在智能交易和脚本中。

•IndicatorBuffers() –指标数据缓冲区•IndicatorCounted() –指标计数•IndicatorDigits() –设置指标精度•IndicatorShortName() –设置指标简称•SetIndexArrow() –设置指标箭头符号•SetIndexBuffer() –设置指标缓冲区位置•SetIndexDrawBegin() –设置指标线起始位置•SetIndexEmptyValue() –设置图表画线空值•SetIndexLabel() –设置指标线标签•SetIndexShift() –设置指标线偏移值•SetIndexStyle() –设置指标线样式•SetLevelStyle() –设置水平线样式•SetLevelValue() –设置水平线值SetIndexDrawBegin() –设置指标线起始位置void SetIndexDrawBegin(int index, int begin)设置开始绘制指标线的柱体(指标线从什么位置开始绘制)。

指标线从左边绘制到右边,已给出的柱子左边的数组值不会显示在图表或数据窗口中。

设置0作为默认值,所有数据将被绘出。

参数:index - 指标线。

必须在0至7之间。

begin - 开始绘制指标线的柱体编号。

示例:int init() {//----使用2个额外的缓冲区用于计算。

IndicatorBuffers(3);//----画线设置SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);SetIndexDrawBegin(0,SignalSMA);IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);//---- 设置 3 个指标缓冲区位置SetIndexBuffer(0,ind_buffer1); SetIndexBuffer(1,ind_buffer2); SetIndexBuffer(2,ind_buffer3);//---- DataWindow 和自定义子窗口标签名称IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+Sig nalSMA+")");//---- 初始化完成 return(0); } SetIndexEmptyValue() –设置图表画线空值void SetIndexEmptyValue(int index, double value)设置图表画线空值。

【MQL4】MQL4常用自定义函数

【MQL4】MQL4常用自定义函数

【MQL4】MQL4常用自定义函数索引1、在屏幕上显示文字标签void iDisplayInfo(string LableName,string LableDoc,int Corner,int LableX,int LableY,int DocSize,string DocStyle,color DocColor);2、金额转换手数double iFundsToHands(string mySymbol,double myFunds);3、订单净值转换点数int iOrderEquitToPoint(int myTicket);4、显示错误信息string iGetErrorInfo(int myErrorNum);5、交易繁忙,程序等待,更新缓存数据void iWait(int myDelayTime);6、有效时间段bool iValidTime(string myStartTime,string myEndTime,bool myServerTime);7、计算特定条件的订单int iOrdersSort(int myOrderType,int myOrderSort,int myMaxMin,int myMagicNum);8、持仓单数量统计int iOrderStatistics(int myOrderType,int myMagicNum);9、物件颜色color iObjectColor(double myInput);10、持仓单开仓量总计int iGroupLots(int myOrderType,int myMagicNum);11、持仓单净值总计double iGroupEquity(int myOrderType,int myMagicNum);12、开仓量整形double iLotsFormat(double myLots);13、批量清仓void iBatchClose(int myType,double myLots,int myMagicNum);14、标注符号和画线、文字void iDrawSign(string myType,int myBarPos,double myPrice,color myColor,int mySymbol,string myString,int myDocSize);15、时间周期转换字符string iTimeFrameT oString(int myTimeFrame);16、文件操作void iFileOperation(string myFileName,string myString,int myFileType,int myFileMode);void iFileOperation(string myFileName,int myFileType,int myFileMode,string myFileString){int myHandle; //文件序列号if (myFileMode==0 && myFileString=="") //新建文件{if (myFileType==0) myHandle=FileOpen(myFileName,FILE_BIN|FILE_WRITE);if (myFileType==1) myHandle=FileOpen(myFileName,FILE_CSV|FILE_WRITE,";");FileClose(myHandle);}if (myFileMode==1 && myFileString!="") //创建写入字符串{if (myFileType==0) myHandle=FileOpen(myFileName,FILE_BIN|FILE_WRITE);if (myFileType==1)myHandle=FileOpen(myFileName,FILE_CSV|FILE_WRITE,";");FileWrite(myHandle,myFileString);FileClose(myHandle);}if (myFileMode==2 && myFileString!="") //追加写入字符串{if (myFileType==0){myHandle=FileOpen(myFileName,FILE_BIN|FILE_READ|FILE_ WRITE);FileSeek(myHandle,0,SEEK_END);FileWrite(myHandle,myFileString);FileClose(myHandle);}if (myFileType==1){myHandle=FileOpen(myFileName,FILE_CSV|FILE_READ|FILE_ WRITE,";");FileSeek(myHandle,SEEK_SET,SEEK_END);FileWrite(myHandle,myFileString);FileClose(myHandle);}}return(0);}string iTimeFrameT oString(int myTimeFrame){switch(myTimeFrame){case 1:return("M1");break;case 5:return("M5");break;case 15:return("M15");break;case 30:return("M30");break;case 60:return("H1");break;case 240:return("H4");break;case 1440:return("D1");break;case 10080:return("W1");break;case 43200:return("MN1");break;}}void iDrawSign(string myType,int myBarPos,double myPrice,color myColor,int mySymbol,string myString,intmyDocSize){if (myType=="Text"){string TextBarString=myType+Time[myBarPos];ObjectCreate(TextBarString,OBJ_TEXT,0,Time[myBarPos],my Price);ObjectSet(TextBarString,OBJPROP_COLOR,myColor);//颜色ObjectSet(TextBarString,OBJPROP_FONTSIZE,myDocSize);//大小ObjectSetText(TextBarString,myString);//文字内容ObjectSet(TextBarString,OBJPROP_BACK,false);}if (myType=="Dot"){string DotBarString=myType+Time[myBarPos];ObjectCreate(DotBarString,OBJ_ARROW,0,Time[myBarPos], myPrice);ObjectSet(DotBarString,OBJPROP_COLOR,myColor);ObjectSet(DotBarString,OBJPROP_ARROWCODE,mySymbol);ObjectSet(DotBarString,OBJPROP_BACK,false);}if (myType=="HLine"){string HLineBarString=myType+Time[myBarPos];ObjectCreate(HLineBarString,OBJ_HLINE,0,Time[myBarPos], myPrice);ObjectSet(HLineBarString,OBJPROP_COLOR,myColor);ObjectSet(HLineBarString,OBJPROP_BACK,false);}if (myType=="VLine"){string VLineBarString=myType+Time[myBarPos];ObjectCreate(VLineBarString,OBJ_VLINE,0,Time[myBarPos], myPrice);ObjectSet(VLineBarString,OBJPROP_COLOR,myColor);ObjectSet(VLineBarString,OBJPROP_BACK,false);}}void iBatchClose(int myType,double myLots,int myMagicNum){for (int cnt=0;cnt{if (OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES) && OrderMagicNumber()==myMagicNum && OrderSymbol()==Symbol()){iWait(1000);if ((myType==OP_BUY || (myType==9 && OrderType()==OP_BUY)) && (myLots==0 || myLots>OrderLots())) {myLots=OrderLots();OrderClose(OrderTicket(),myLots,Bid,0);}if ((myType==OP_SELL || (myType==9 && OrderType()==OP_SELL)) && (myLots==0 || myLots>OrderLots())){myLots=OrderLots();OrderClose(OrderTicket(),myLots,Ask,0);}if (myType==OP_BUYLIMIT || myType==OP_SELLLIMIT || myType==OP_BUYSTOP || myType==OP_SELLSTOP|| (myType==9 && (OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP))){OrderDelete(OrderTicket());}}}return(0);}double iLotsFormat(double myLots){myLots=MathRound(myLots/MarketInfo(Symbol(),MODE_MINLOT))*MarketInfo(Symbol(), MODE_MINLOT);//开仓量整形return(myLots);}double iGroupEquity(int myOrderType,int myMagicNum){double myReturn;if (OrdersTotal()==0) return(0);for (int cnt=0;cnt{if (OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)&& OrderMagicNumber()==myMagicNum && OrderSymbol()==Symbol() && OrderType()==myOrderType){myReturn=myReturn+OrderProfit();}}return(myReturn);}double iGroupLots(int myOrderType,int myMagicNum){double myReturn;if (OrdersTotal()==0) return(0);for (int cnt=0;cnt{if (OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)&& OrderMagicNumber()==myMagicNum && OrderSymbol()==Symbol() && OrderType()==myOrderType) {myReturn=myReturn+OrderLots();}}return(myReturn);}color iObjectColor(double myInput){color myColor;if (myInput > 0)myColor = Green; //正数颜色为绿色if (myInput < 0)myColor = Red; //负数颜色为红色if (myInput == 0)myColor = DarkGray; //0颜色为灰色return(myColor);}int iOrderStatistics(int myOrderType,int myMagicNum){int myReturn;if (OrdersTotal()==0) return(0);for (int cnt=0;cnt{if (OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)&& OrderMagicNumber()==myMagicNum && OrderSymbol()==Symbol() && OrderType()==myOrderType) {myReturn=myReturn+1;}}return(myReturn);}int iOrdersSort(int myOrderType,int myOrderSort,int myMaxMin,int myMagicNum){int myReturn,myArrayRange,cnt,i,j;if (OrdersTotal()<=0) return(myReturn);myArrayRange=OrdersTotal();//持仓订单基本信息:0订单号,1开仓时间,2订单利润,3订单类型,4开仓量,5开仓价,// 6止损价,7止赢价,8订单特征码,9订单佣金,10掉期,11挂单有效日期double myOrdersArray[][12]; //定义订单数组,第1维:订单序号;第2维:订单信息ArrayResize(myOrdersArray,myArrayRange); //重新界定订单数组ArrayInitialize(myOrdersArray, 0.0); //初始化订单数组//订单数组赋值for (cnt=0; cnt{//选中当前货币对相关持仓订单if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) && OrderSymbol()==Symbol() && OrderMagicNumber()==myMagicNum){myOrdersArray[cnt][0]=OrderTicket();//0订单号myOrdersArray[cnt][1]=OrderOpenTime();//1开仓时间myOrdersArray[cnt][2]=OrderProfit();//2订单利润myOrdersArray[cnt][3]=OrderType();//3订单类型myOrdersArray[cnt][4]=OrderLots();//4开仓量myOrdersArray[cnt][5]=OrderOpenPrice();//5开仓价myOrdersArray[cnt][6]=OrderStopLoss();//6止损价myOrdersArray[cnt][7]=OrderTakeProfit();//7止赢价myOrdersArray[cnt][8]=OrderMagicNumber();//8订单特征码myOrdersArray[cnt][9]=OrderCommission();//9订单佣金myOrdersArray[cnt][10]=OrderSwap();//10掉期myOrdersArray[cnt][11]=OrderExpiration();//11挂单有效日期}}double myTempArray[12]; //定义临时数组//ArrayResize(myT empArray,myArrayRange); //重新界定临时数组ArrayInitialize(myT empArray, 0.0); //初始化临时数组//开始按条件排序//---- 按时间降序排列数组,原始数组重新排序if (myOrderSort==0){for (i=0;i<=myArrayRange;i++){for (j=myArrayRange;j>i;j--){if (myOrdersArray[j][1]>myOrdersArray[j-1][1]) {myTempArray[0]=myOrdersArray[j-1][0]; myTempArray[1]=myOrdersArray[j-1][1]; myTempArray[2]=myOrdersArray[j-1][2]; myTempArray[3]=myOrdersArray[j-1][3]; myTempArray[4]=myOrdersArray[j-1][4]; myTempArray[5]=myOrdersArray[j-1][5]; myTempArray[6]=myOrdersArray[j-1][6]; myTempArray[7]=myOrdersArray[j-1][7]; myTempArray[8]=myOrdersArray[j-1][8]; myTempArray[9]=myOrdersArray[j-1][9]; myTempArray[10]=myOrdersArray[j-1][10]; myTempArray[11]=myOrdersArray[j-1][11]; myOrdersArray[j-1][0]=myOrdersArray[j][0]; myOrdersArray[j-1][1]=myOrdersArray[j][1]; myOrdersArray[j-1][2]=myOrdersArray[j][2]; myOrdersArray[j-1][3]=myOrdersArray[j][3]; myOrdersArray[j-1][4]=myOrdersArray[j][4]; myOrdersArray[j-1][5]=myOrdersArray[j][5]; myOrdersArray[j-1][6]=myOrdersArray[j][6]; myOrdersArray[j-1][7]=myOrdersArray[j][7]; myOrdersArray[j-1][8]=myOrdersArray[j][8]; myOrdersArray[j-1][9]=myOrdersArray[j][9];myOrdersArray[j-1][10]=myOrdersArray[j][10];myOrdersArray[j-1][11]=myOrdersArray[j][11];myOrdersArray[j][0]=myTempArray[0];myOrdersArray[j][1]=myTempArray[1];myOrdersArray[j][2]=myTempArray[2];myOrdersArray[j][3]=myTempArray[3];myOrdersArray[j][4]=myTempArray[4];myOrdersArray[j][5]=myTempArray[5];myOrdersArray[j][6]=myTempArray[6];myOrdersArray[j][7]=myTempArray[7];myOrdersArray[j][8]=myTempArray[8];myOrdersArray[j][9]=myTempArray[9];myOrdersArray[j][10]=myTempArray[10];myOrdersArray[j][11]=myTempArray[11];}}}if (myMaxMin==0) //x,0,0{for (cnt=myArrayRange;cnt>=0;cnt--){if (myOrdersArray[cnt][0]!=0 && myOrderType==NormalizeDouble(myOrdersArray[cnt][3],0)) {myReturn=NormalizeDouble(myOrdersArray[cnt][0],0);break;}}}if (myMaxMin==1) //x,0,1{for (cnt=0;cnt{if (myOrdersArray[cnt][0]!=0 && myOrderType==NormalizeDouble(myOrdersArray[cnt][3],0)) {myReturn=NormalizeDouble(myOrdersArray[cnt][0],0);break;}}}}//---- 按订单净值降序排列数组,原始数组重新排序if (myOrderSort==1 || myOrderSort==2){ArrayInitialize(myT empArray, 0.0); //初始化临时数组for (i=0;i<=myArrayRange;i++){for (j=myArrayRange-1;j>i;j--){if (myOrdersArray[j][2]>myOrdersArray[j-1][2]){myTempArray[0]=myOrdersArray[j-1][0];myTempArray[1]=myOrdersArray[j-1][1];myTempArray[2]=myOrdersArray[j-1][2];myTempArray[3]=myOrdersArray[j-1][3];myTempArray[4]=myOrdersArray[j-1][4];myTempArray[5]=myOrdersArray[j-1][5];myTempArray[6]=myOrdersArray[j-1][6];myTempArray[7]=myOrdersArray[j-1][7];myTempArray[8]=myOrdersArray[j-1][8]; myTempArray[9]=myOrdersArray[j-1][9]; myTempArray[10]=myOrdersArray[j-1][10]; myTempArray[11]=myOrdersArray[j-1][11]; myOrdersArray[j-1][0]=myOrdersArray[j][0]; myOrdersArray[j-1][1]=myOrdersArray[j][1]; myOrdersArray[j-1][2]=myOrdersArray[j][2]; myOrdersArray[j-1][3]=myOrdersArray[j][3]; myOrdersArray[j-1][4]=myOrdersArray[j][4]; myOrdersArray[j-1][5]=myOrdersArray[j][5]; myOrdersArray[j-1][6]=myOrdersArray[j][6]; myOrdersArray[j-1][7]=myOrdersArray[j][7]; myOrdersArray[j-1][8]=myOrdersArray[j][8]; myOrdersArray[j-1][9]=myOrdersArray[j][9]; myOrdersArray[j-1][10]=myOrdersArray[j][10]; myOrdersArray[j-1][11]=myOrdersArray[j][11]; myOrdersArray[j][0]=myTempArray[0]; myOrdersArray[j][1]=myTempArray[1]; myOrdersArray[j][2]=myTempArray[2]; myOrdersArray[j][3]=myTempArray[3]; myOrdersArray[j][4]=myTempArray[4]; myOrdersArray[j][5]=myTempArray[5]; myOrdersArray[j][6]=myTempArray[6]; myOrdersArray[j][7]=myTempArray[7]; myOrdersArray[j][8]=myTempArray[8]; myOrdersArray[j][9]=myTempArray[9]; myOrdersArray[j][10]=myTempArray[10]; myOrdersArray[j][11]=myTempArray[11];}}if (myOrderSort==1 && myMaxMin==1) //x,1,1{for (cnt=myArrayRange;cnt>=0;cnt--){if (myOrdersArray[cnt][0]!=0 && myOrderType==NormalizeDouble(myOrdersArray[cnt][3],0) && myOrdersArray[cnt][2]>0){myReturn=NormalizeDouble(myOrdersArray[cnt][0],0);break;}}}if (myOrderSort==1 && myMaxMin==0) //x,1,0{for (cnt=0;cnt{if (myOrdersArray[cnt][0]!=0 && myOrderType==NormalizeDouble(myOrdersArray[cnt][3],0) && myOrdersArray[cnt][2]>0){myReturn=NormalizeDouble(myOrdersArray[cnt][0],0);break;}}}if (myOrderSort==2 && myMaxMin==0) //x,2,1{for (cnt=myArrayRange;cnt>=0;cnt--)if (myOrdersArray[cnt][0]!=0 && myOrderType==NormalizeDouble(myOrdersArray[cnt][3],0) && myOrdersArray[cnt][2]<0){myReturn=NormalizeDouble(myOrdersArray[cnt][0],0);break;}}}if (myOrderSort==2 && myMaxMin==1) //x,2,0{for (cnt=0;cnt{if (myOrdersArray[cnt][0]!=0 && myOrderType==NormalizeDouble(myOrdersArray[cnt][3],0) && myOrdersArray[cnt][2]<0){myReturn=NormalizeDouble(myOrdersArray[cnt][0],0);break;}}}}//---- 按开仓价降序排列数组,原始数组重新排序if (myOrderSort==3){for (i=0;i<=myArrayRange;i++){for (j=myArrayRange;j>i;j--)if (myOrdersArray[j][5]>myOrdersArray[j-1][5]) {myTempArray[0]=myOrdersArray[j-1][0]; myTempArray[1]=myOrdersArray[j-1][1]; myTempArray[2]=myOrdersArray[j-1][2]; myTempArray[3]=myOrdersArray[j-1][3]; myTempArray[4]=myOrdersArray[j-1][4]; myTempArray[5]=myOrdersArray[j-1][5]; myTempArray[6]=myOrdersArray[j-1][6]; myTempArray[7]=myOrdersArray[j-1][7]; myTempArray[8]=myOrdersArray[j-1][8]; myTempArray[9]=myOrdersArray[j-1][9]; myTempArray[10]=myOrdersArray[j-1][10]; myTempArray[11]=myOrdersArray[j-1][11]; myOrdersArray[j-1][0]=myOrdersArray[j][0]; myOrdersArray[j-1][1]=myOrdersArray[j][1]; myOrdersArray[j-1][2]=myOrdersArray[j][2]; myOrdersArray[j-1][3]=myOrdersArray[j][3]; myOrdersArray[j-1][4]=myOrdersArray[j][4]; myOrdersArray[j-1][5]=myOrdersArray[j][5]; myOrdersArray[j-1][6]=myOrdersArray[j][6]; myOrdersArray[j-1][7]=myOrdersArray[j][7]; myOrdersArray[j-1][8]=myOrdersArray[j][8]; myOrdersArray[j-1][9]=myOrdersArray[j][9]; myOrdersArray[j-1][10]=myOrdersArray[j][10]; myOrdersArray[j-1][11]=myOrdersArray[j][11]; myOrdersArray[j][0]=myTempArray[0]; myOrdersArray[j][1]=myTempArray[1]; myOrdersArray[j][2]=myTempArray[2];myOrdersArray[j][3]=myTempArray[3];myOrdersArray[j][4]=myTempArray[4];myOrdersArray[j][5]=myTempArray[5];myOrdersArray[j][6]=myTempArray[6];myOrdersArray[j][7]=myTempArray[7];myOrdersArray[j][8]=myTempArray[8];myOrdersArray[j][9]=myTempArray[9];myOrdersArray[j][10]=myTempArray[10];myOrdersArray[j][11]=myTempArray[11];}}}if (myMaxMin==1) //x,3,0{for (cnt=myArrayRange;cnt>=0;cnt--){if (myOrdersArray[cnt][0]!=0 && myOrderType==NormalizeDouble(myOrdersArray[cnt][3],0) && myOrdersArray[cnt][5]>0){myReturn=NormalizeDouble(myOrdersArray[cnt][0],0);break;}}}if (myMaxMin==0) //x,3,1{for (cnt=0;cnt{if (myOrdersArray[cnt][0]!=0 &&myOrderType==NormalizeDouble(myOrdersArray[cnt][3],0) && myOrdersArray[cnt][5]>0){myReturn=NormalizeDouble(myOrdersArray[cnt][0],0);break;}}}}return(myReturn);}bool iValidTime(string myStartTime,string myEndTime,bool myServerTime){bool myValue=false;int myST,myET;if (myServerTime==true){myST=StrT oTime(Year()+"."+Month()+"."+Day()+""+myStartTime);myET=StrT oTime(Year()+"."+Month()+"."+Day()+""+myEndTime);}if (myServerTime==false){myST=StrT oTime(myStartTime);myET=StrT oTime(myEndTime);}if (myST>myET) myET=myET+1440*60;if (TimeCurrent()>myST && TimeCurrent(){myValue=true;}if (TimeLocal()>myST && TimeLocal(){myValue=true;}if (myST==myET) myValue=true;return(myValue);}void iWait(int myDelayTime){while (!IsTradeAllowed() || IsTradeContextBusy()) Sleep(myDelayTime);RefreshRates();return(0);}string iGetErrorInfo(int myErrorNum){string myLastErrorStr;if(myErrorNum>=0){switch (myErrorNum){case 0:myLastErrorStr="错误代码:"+0+"-没有错误返回";break;case 1:myLastErrorStr="错误代码:"+1+"-没有错误返回但结果不明";break;case 2:myLastErrorStr="错误代码:"+2+"-一般错误";break;case 3:myLastErrorStr="错误代码:"+3+"-无效交易参量";break;case 4:myLastErrorStr="错误代码:"+4+"-交易服务器繁忙";break;case 5:myLastErrorStr="错误代码:"+5+"-客户终端旧版本";break;case 6:myLastErrorStr="错误代码:"+6+"-没有连接服务器";break;case 7:myLastErrorStr="错误代码:"+7+"-没有权限";break;case 8:myLastErrorStr="错误代码:"+8+"-请求过于频繁";break;case 9:myLastErrorStr="错误代码:"+9+"-交易运行故障";break;case 64:myLastErrorStr="错误代码:"+64+"-账户禁止";break;case 65:myLastErrorStr="错误代码:"+65+"-无效账户";break;case 128:myLastErrorStr="错误代码:"+128+"-交易超时";break;case 129:myLastErrorStr="错误代码:"+129+"-无效价格";break;case 130:myLastErrorStr="错误代码:"+130+"-无效停止";break;case 131:myLastErrorStr="错误代码:"+131+"-无效交易量";break;case 132:myLastErrorStr="错误代码:"+132+"-市场关闭";break;case 133:myLastErrorStr="错误代码:"+133+"-交易被禁止";break;case 134:myLastErrorStr="错误代码:"+134+"-资金不足";break;case 135:myLastErrorStr="错误代码:"+135+"-价格改变";break;case 136:myLastErrorStr="错误代码:"+136+"-开价";break;case 137:myLastErrorStr="错误代码:"+137+"-经纪繁忙";break;case 138:myLastErrorStr="错误代码:"+138+"-重新开价";break;case 139:myLastErrorStr="错误代码:"+139+"-定单被锁定";break;case 140:myLastErrorStr="错误代码:"+140+"-只允许看涨仓位";break;case 141:myLastErrorStr="错误代码:"+141+"-过多请求";break;case 145:myLastErrorStr="错误代码:"+145+"-因为过于接近市场,修改无效";break;case 146:myLastErrorStr="错误代码:"+146+"-交易文本已满";break;case 147:myLastErrorStr="错误代码:"+147+"-时间周期被经纪否定";break;case 148:myLastErrorStr="错误代码:"+148+"-开单和挂单总数已被经纪限定";break;case 149:myLastErrorStr="错误代码:"+149+"-当对冲被拒绝时,打开相对于现有的一个单量";break;case 150:myLastErrorStr="错误代码:"+150+"-把为反FIFO规定的单子平掉";break;case 4000:myLastErrorStr="错误代码:"+4000+"-没有错误";break;case 4001:myLastErrorStr="错误代码:"+4001+"-错误函数指示";break;case 4002:myLastErrorStr="错误代码:"+4002+"-数组索引超出范围";break;case 4003:myLastErrorStr="错误代码:"+4003+"-对于调用堆栈储存器函数没有足够内存";break;case 4004:myLastErrorStr="错误代码:"+4004+"-循环堆栈储存器溢出";break;case 4005:myLastErrorStr="错误代码:"+4005+"-对于堆栈储存器参量没有内存";break;case 4006:myLastErrorStr="错误代码:"+4006+"-对于字行参量没有足够内存";break;case 4007:myLastErrorStr="错误代码:"+4007+"-对于字行没有足够内存";break;case 4008:myLastErrorStr="错误代码:"+4008+"-没有初始字行";break;case 4009:myLastErrorStr="错误代码:"+4009+"-在数组中没有初始字串符";break;case 4010:myLastErrorStr="错误代码:"+4010+"-对于数组没有内存";break;case 4011:myLastErrorStr="错误代码:"+4011+"-字行过长";break;case 4012:myLastErrorStr="错误代码:"+4012+"-余数划分为零";break;case 4013:myLastErrorStr="错误代码:"+4013+"-零划分";break;case 4014:myLastErrorStr="错误代码:"+4014+"-不明命令";break;case 4015:myLastErrorStr="错误代码:"+4015+"-错误转换(没有常规错误)";break;case 4016:myLastErrorStr="错误代码:"+4016+"-没有初始数组";break;case 4017:myLastErrorStr="错误代码:"+4017+"-禁止调用DLL ";break;case 4018:myLastErrorStr="错误代码:"+4018+"-数据库不能下载";break;case 4019:myLastErrorStr="错误代码:"+4019+"-不能调用函数";break;case 4020:myLastErrorStr="错误代码:"+4020+"-禁止调用智能交易函数";break;case 4021:myLastErrorStr="错误代码:"+4021+"-对于来自函数的字行没有足够内存";break;case 4022:myLastErrorStr="错误代码:"+4022+"-系统繁忙(没有常规错误)";break;case 4050:myLastErrorStr="错误代码:"+4050+"-无效计数参量函数";break;case 4051:myLastErrorStr="错误代码:"+4051+"-无效开仓量";break;case 4052:myLastErrorStr="错误代码:"+4052+"-字行函数内部错误";break;case 4053:myLastErrorStr="错误代码:"+4053+"-一些数组错误";break;case 4054:myLastErrorStr="错误代码:"+4054+"-应用不正确数组";break;case 4055:myLastErrorStr="错误代码:"+4055+"-自定义指标错误";break;case 4056:myLastErrorStr="错误代码:"+4056+"-不协调数组";break;case 4057:myLastErrorStr="错误代码:"+4057+"-整体变量过程错误";break;case 4058:myLastErrorStr="错误代码:"+4058+"-整体变量未找到";break;case 4059:myLastErrorStr="错误代码:"+4059+"-测试模式函数禁止";break;case 4060:myLastErrorStr="错误代码:"+4060+"-没有确认函数";break;case 4061:myLastErrorStr="错误代码:"+4061+"-发送邮件错误";break;case 4062:myLastErrorStr="错误代码:"+4062+"-字行预计参量";break;case 4063:myLastErrorStr="错误代码:"+4063+"-整数预计参量";break;case 4064:myLastErrorStr="错误代码:"+4064+"-双预计参量";break;case 4065:myLastErrorStr="错误代码:"+4065+"-数组作为预计参量";break;case 4066:myLastErrorStr="错误代码:"+4066+"-刷新状态请求历史数据";break;case 4067:myLastErrorStr="错误代码:"+4067+"-交易函数错误";break;case 4099:myLastErrorStr="错误代码:"+4099+"-文件结束";break;case 4100:myLastErrorStr="错误代码:"+4100+"-一些文件错误";break;case 4101:myLastErrorStr="错误代码:"+4101+"-错误文件名称";break;case 4102:myLastErrorStr="错误代码:"+4102+"-打开文件过多";break;case 4103:myLastErrorStr="错误代码:"+4103+"-不能打开文件";break;case 4104:myLastErrorStr="错误代码:"+4104+"-不协调文件";break;case 4105:myLastErrorStr="错误代码:"+4105+"-没有选择定单";break;case 4106:myLastErrorStr="错误代码:"+4106+"-不明货币对";break;case 4107:myLastErrorStr="错误代码:"+4107+"-无效价格";break;case 4108:myLastErrorStr="错误代码:"+4108+"-无效定单编码";break;case 4109:myLastErrorStr="错误代码:"+4109+"-不允许交易";break;case 4110:myLastErrorStr="错误代码:"+4110+"-不允许长期";break;case 4111:myLastErrorStr="错误代码:"+4111+"-不允许短期";break;case 4200:myLastErrorStr="错误代码:"+4200+"-定单已经存在";break;case 4201:myLastErrorStr="错误代码:"+4201+"-不明定单属性";break;case 4202:myLastErrorStr="错误代码:"+4202+"-定单不存在";break;case 4203:myLastErrorStr="错误代码:"+4203+"-不明定单类型";break;case 4204:myLastErrorStr="错误代码:"+4204+"-没有定单名称";break;case 4205:myLastErrorStr="错误代码:"+4205+"-定单坐标错误";break;case 4206:myLastErrorStr="错误代码:"+4206+"-没有指定子窗口";break;case 4207:myLastErrorStr="错误代码:"+4207+"-定单一些函数错误";break;case 4250:myLastErrorStr="错误代码:"+4250+"-错误设定发送通知到队列中";break;case 4251:myLastErrorStr="错误代码:"+4251+"-无效参量- 空字符串传递到SendNotification()函数";break;case 4252:myLastErrorStr="错误代码:"+4252+"-无效设置发送通知(未指定ID或未启用通知)";break;case 4253:myLastErrorStr="错误代码:"+4253+"-通知发送过于频繁";break;}}return(myLastErrorStr);}int iOrderEquitToPoint(int myTicket){int myPoint=0;if (OrderSelect(myTicket,SELECT_BY_TICKET,MODE_TRADES)){if (OrderType()==OP_BUY){myPoint=(Bid-OrderOpenPrice())/Point;}if (OrderType()==OP_SELL){myPoint=(OrderOpenPrice()-Ask)/Point;}}return(myPoint);}double iFundsToHands(string mySymbol,double myFunds) {double myLots=myFunds/MarketInfo(mySymbol, MODE_MARGINREQUIRED);//换算可开仓手数myLots=MathRound(myLots/MarketInfo(mySymbol, MODE_MINLOT))*MarketInfo(Symbol(), MODE_MINLOT);//手数整形return(myLots);}void iDisplayInfo(string LableName,string LableDoc,int Corner,int LableX,int LableY,int DocSize,string DocStyle,color DocColor){if (Corner == -1) return(0);ObjectCreate(LableName, OBJ_LABEL, 0, 0, 0);ObjectSetText(LableName, LableDoc, DocSize, DocStyle,DocColor);ObjectSet(LableName, OBJPROP_CORNER, Corner);ObjectSet(LableName, OBJPROP_XDISTANCE, LableX); ObjectSet(LableName, OBJPROP_YDISTANCE, LableY); }。

MQL4程序的常见错误以及如何避免它们

MQL4程序的常见错误以及如何避免它们

MQL4程序的常见错误以及如何避免它们介绍一些较旧的程序可能在新版本的MQL4编译器中返回错误。

为了避免关键的程序完成,以前版本的编译器在运行环境中处理了许多错误。

例如,除数为零或数组越界都是严重错误,并通常会导致应用程序崩溃。

这些错误只在一些状态下针对某些变量值而发生。

阅读这篇文章了解如何处理这样的情况。

新的编译器可以检测实际或潜在的错误源并提高代码质量。

在这篇文章中,我们讨论了旧程序编译过程中检测到的可能出现的错误,以及解决这些问题的方法。

1.编译错误2.▪ 1.1. 与关键字一致的标识▪ 1.2. 变量和函数名的特殊字符▪ 1.3. 使用switch操作符的错误▪ 1.4. 函数返回值▪ 1.5. 函数参数数组3.运行时间错误4.▪ 2.1. 数组越界▪ 2.2. 除数为零▪ 2.3. 当前字符用0替代NULL▪ 2.4. Unicode格式字符串和它们在DLL中的使用▪ 2.5. 文件共享▪ 2.6. 日期时间转换5.编译器警告▪ 3.1. 全局和局部变量名称一致▪ 3.2. 类型不匹配▪ 3.3. 未使用的变量1编译错误如果程序代码中包含错误,则它不能被编译。

要完全控制所有的错误,建议使用严谨的编译模式,它通过以下指令来设置:这种模式大大简化了故障排除。

1.1. 与关键字一致的标识编译器会返回一个错误信息:图1. 错误“unexpected token(非预期标记)”和“name expected(预期名称)”要解决这个错误,您需要使用变量或函数的正确名称。

1.2. 变量和函数名的特殊字符如果变量或函数名称中包含特殊字符($,@,点):编译器会返回一个错误信息:图 2. 错误“unknown symbol(未知交易品种)”与“semicolon expected(预期分号)”要解决这个错误,您需要使用正确的函数或变量名。

1.3. 使用switch操作符的错误在旧版本的编译器中,您可以在switch操作符的表达式和常量中使用任何值:在新的编译器中,switch操作符的常量和表达式必须是整数,所以当您尝试使用这样的结构时会发生错误:图3. 错误“illegal switch expression type(非法switch表达式类型)”和“constant expression is not integral(常量表??达式不是整数)”在这种情况下,您可以使用明确的数值比较,例如:1.4. 函数返回值除了空值外的所有函数都应该返回声明的类型值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Str
指定精度格
式的指定数
值的文本字
符串
ChartGetInteger
返回指定图 图表操作
表的整数值
属性
ChartGetString
返回指定图 图表操作
表的字符串
值属性
ChartID
返回当前图 图表操作
表的ID
ChartIndicatorDelete
从指定图表 图表操作
窗口移除一 个指定名称 的指标
动的搜索
FileFlus 将输入/输 文件函数
h
出文件缓冲
区的所有数
据写入磁盘
FileGetI 获得文件的 文件函数 nteger 整型属性
FileIsEn 读取过程中 文件函数
ding
定义文件末

FileIsEx 检测文件存 文件函数
ist
在性
FileIsLi 读取过程中 文件函数 neEnding 定义文本行
如最后得知
的服务器时
间的月份日
DayOfWee 返回最后得 日期和时
k
知的服务器 间
时间的当前
周零起点日
DayOfYea 返回当前的 日期和时
r
年份日,例 间
如最后得知
的服务器时
间的年份日
DebugBre 程序断点调 普通函数
ak

Digits
返回决定当 检查
前图表交易
品种价格值
的精确性的
小数位数
DoubleTo 返回转换到 函数转换
检测是否数组是时序列 数组函数
搜索元素的最大值
数组函数
ArrayMinimum
搜索元素的最小值
数组函数
ArrayRange
在数组的指定维度返回 数组函数
元素数量
ArrayResize ArraySetAsSeries
在数组的第一维尺寸设 数组函数
定新大小
指明数组标引的导向 数组函数
ArraySize ArraySort asin atan Bars
通过指定方 普通函数
式变换来自
数组的数据
E
函数
功能
章节
EnumToSt 将任何类型 函数转换
ring
的枚举值转
换为字符串
EventCha 为指定图表 工作事件 rtCustom 生成自定义
事件
EventKil 依据当前图 工作事件 lTimer 表定时器停
止事件生成

EventSet 为当前图表 工作事件 Millisec 启动周期少 ondTimer 于1秒的高
末端
FileMove 移动或者重 文件函数
命名文件
FileOpen 打开指定名 文件函数
字和标记的 文件
FileOpen 在当前历史 文件函数 History 目录或其子
文件夹打开
文件
FileRead 读取除了 文件函数
Array
BIN类型文 件字符串外
的任何类型
数组
FileRead 读取CSV类 文件函数
Number 文件读取当
前位置字符
串直到定界
符(或者直
到文本行末
端)并且转
换读取字符
串到双精度

FileRead 在文件中文 文件函数
String 件指针当前
位置读取字
符串
FileRead 文件指针当 文件函数 Struct 前位置读取
二进制文件 内容到作为 参量传递的 结构
FileSeek 根据指定位 文件函数
将指定交易 时间序列 品种收盘价 和指标访 格柱的历史 问
数据和周期 放在数组中
将指定交易 时间序列 品种最大价 和指标访 格柱的历史 问
数据和周期 放在数组中
将指定交易 时间序列 品种最小价 和指标访 格柱的历史 问
数据和周期 放在数组中
将指定交易 时间序列 品种开盘价 和指标访 格柱的历史 问
数据和周期 放在数组中
以gif格式 图表操作
提供图表当 前状态屏幕 截图
设置指定图 图表操作
表相关属性 的双精度值
ChartSetInteger ChartSetString
设置指定图 图表操作
表相关属性 的整数值 (日期时 间,整型, 颜色,布尔 或者字符 型)
设置指定图 图表操作
表相关属性 的字符串值
ChartSetSymbolPeriod
ArrayCopy
复制一组数组到另一组 数组函数
ArrayCopyRates ArrayCopySeries
从RateInfo图表数组到二 数组函数
维数组的复制率返回复 制柱形量
一系列数组复制到另一 数组函数
系列数组并返回复制元 素的计数
ArrayDimension ArrayFill ArrayFree
返回当前账户的净值 账户信息
AccountFreeMargin
返回当前账户的可用预 账户信息
付款值
AccountFreeMarginCheck 返回当前账户当前价格 账户信息
打开指定持仓后保留的 可用预付款
AccountFreeMarginMode 当前账户允许打开订单 账户信息
的可用预付款计算模式
MQL4 函数列表
函数
AccountBalance
A
功能
章节
返回当前账户的结余值 账户信息
AccountCompany AccountCredit
返回当前账户注册时的 账户信息
经纪公司名称
返回当前账户的信用值 账户信息
AccountCurrency
返回当前账户的货币名 账户信息
AccountEquity
AccountInfoDouble
返回对应账户属性双精 账户信息
度值
AccountInfoInteger
返回相应账户属性的整 账户信息
数类型值(布尔,整型
或者长整型)
AccountInfoString
返回对应账户属性的字 账户信息
符串类型值
AccountLeverage
返回当前账户的杠杆 账户信息
AccountMargin
分辨率计时 器的事件生 成器
EventSet 用当前图表 工作事件 Timer 指定周期启
动定时器事 件生成器exp返回数字指 数学函数数
函数
fabs
F
功能
章节
返回指定数 数学函数
值的绝对值
(绝对值)
FileClos 关闭之前打 文件函数
e
开的文件
FileCopy 从本地或者 文件函数
共享文件夹 复制原文件 到另一个文 件
ChartIndicatorName
返回指定图 图表操作
表窗口的指 标列表的指 标缩略名数 量
ChartIndicatorsTotal ChartNavigate ChartNext
返回应用到 图表操作
指定图表窗 口全部指标 数量。
通过指定关 图表操作
系柱形数执 行指定图表 到图表中的 指定持仓的 转换
转换符号代 函数转换
码(ansi) 到一个交易 品种数组
在图表中应 图表操作
用指定文件 中的特定模 板。
关闭指定图 图表操作

ChartFirst ChartGetDouble
返回客户端 图表操作
第一图表的 ID
返回指定图 图表操作
表的双精度 值属性
C
函数
功能
章节
Day
返回当前的 日期和时
月份日,例 间
AccountStopoutMode
返回止损离场水平的计 账户信息
算模式
acos
返回x弧度的反余弦
数学函数
Alert
在独立窗口中显示消息 普通函数
ArrayBsearch ArrayCompare
返回在第一数组维度第 数组函数
一发现元素的索引
返回比较简单类型 或无 数组函数
复杂对象的自定义结构 的两种数组的结果
FileDele 删除指定文 文件函数
te

FileFind 结束搜索程 文件函数 Close 序
FileFind 依照指定过 文件函数
First
滤器启动目 录中的文件
搜索
ExpertRe 停止EA交 普通函数
move
易并从图表
中卸载
FileFind 继续通过 文件函数
Next
FileFindFirs t()函数启
返回当前账户的预付款 账户信息

AccountName
返回当前账户名称
账户信息
AccountNumber AccountProfit
返回当前账号
账户信息
返回当前账户的利润值 账户信息
AccountServer
返回连接的服务器名称 账户信息
AccountStopoutLevel
返回止损离场水平值 账户信息
将指定交 时间序列 易品种比 和指标访 率 结构 问 的历史数 据和周期 放在数组 中 指定交易品 时间序列 种订单交易 和指标访 量历史数据 问
和周期放在 数组中
将指定交易 时间序列 品种开盘时 和指标访 间柱的历史 问
数据和周期 放在数组中
返回数字余 数学函数

执行数组数 普通函数
据逆转换
CryptEncode
返回数组中元素的数量 数组函数
通过第一维度排列数值 数组函数
数组
返回x弧度的反正弦
数学函数
返回x弧度的反正切
数学函数
返回规定交易品种和周 时间序列和
期的历史柱形数量
相关文档
最新文档