好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

MQL5关键知识点总结(二).pdf

14页
  • 卖家[上传人]:赵**
  • 文档编号:341165410
  • 上传时间:2022-12-06
  • 文档格式:PDF
  • 文档大小:938.90KB
  • 文本预览
  • 下载提示
  • 常见问题
    • MQL5 关键知识点总结(二)薛辉原创薛辉原创知识点颜色说明:01、不同字体表示一般级别的知识点0202、加加黑字条表示中等级别的知识点黑字条表示中等级别的知识点03、红色字体表示高级别知识点0404、红红色加黑字条表示极其重要、易出错知识点色加黑字条表示极其重要、易出错知识点0201、OnStart()函数就是启动事件处理程序,运行脚本时自动生成0202、OnInit()函数是初始化事件处理程序0203、必须是空型或者整型,无参数0204、初始化事件处理程序在 EA 交易或者指标下载后即时生成;它不生成脚本0205、OnInit()函数用于初始化如果 OnInit()返回值为整型,非零结果意味着初始化失败,生成初始化失败原因代码REASON_INITFAILED0206、OnDeinit()函数称为失败初始化,是初始化失败事件处理程序0207、必须是空型且有一个包括初始化失败原因代码的常量整型参数0208、如果声明不同类型,编译程序会发出警告,但函数不可调用0209、对于脚本来说不会生成初始化失败事件,因此 OnDeinit()函数不用于脚本0210、仅仅 EA 交易依附的图表中,交易品种收到新订单号时EA 交易会生成新订单号事件。

      0211、自定义指标或者脚本中确定 OnTick()函数是无效的,因为订单号事件不为它们而生0212、订单号事件只为 EA 交易而生,但是却不意味着 EA 交易需要 OnTick()函数,因为 EA 交易不仅需要生成订单号,也需要生成计时器,预定事件和图表事件0213、计时器事件发生时调用OnTimer()函数,由系统计时器生成仅用于EA 交易-不能用于脚本或者指标0214、函数 EventSetTimer()接收事件,当同意该事件声明时,设置事件发生频率0215、可以用函数 EventKillTimer()为特殊 EA 交易注销计时器事件0216、函数必须为空值,没有参数word 文档 可自由复制编辑0217、建议在 OnInit()函数中调用 EventSetTimer()函数0218、而 EventKillTimer()函数可以在 OnDeinit()中调用0219、每个 EA 交易,每个指标都有其独自的计时器且仅通过它来接收事件0220、如果创建了计时器但没有用EventKillTimer()函数禁止,那么一旦MQL5 程序停止,计时器被强制破坏0221、OnTrade()OnTrade()交易发生时调用这个函数,改变下订单和持仓列表,订单历史记录和交易交易发生时调用这个函数,改变下订单和持仓列表,订单历史记录和交易历史记录时会出现。

      历史记录时会出现0222、当交易活动执行挂单,持仓/平仓,停止设置,启动挂单等等,订单和交易历史记录或者仓位和当前订单列表也会相应改变0223、接到这个事件时(需要交易策略状态)用户必须独自确认交易账户状态0224、如果函数 OrderSend()成功调用,且返回了真实值,意味着交易服务器已经提交订单并确定了订单号0225、服务器一旦处理这个订单,交易事件就生成了0226、如果用户记住了订单号值,OnTrade()函数执行时,用这个值可以看到订单情况0227、函数 OnTester()是外部 EA 交易历史测试结束后自动生成的测试事件处理程序0228、这个函数在 OnDeinit()之前调用,且有同样的双精度型返回值0229、只在 EA 交易测试时使用 OnTester()0230、其主要作用是计算某个值,该值用作遗传最优化自定义标准0231、遗传优化中,生成结果用降序,例如从优化标准查看点,最佳结果是那些最大值(OnTester函数带进账户的最大自定义优化标准值)0232、这种情况下:最差值放在最后或者排除不参与下一步生成0233、若要接收任一交易品种的BookEvent,需要事先同意用函数MarketBookAdd()接收这个交易品种的 BookEvent。

      0234、如果不同接收某个特定交易品种的BookEvent,可以调用 MarketBookRelease()0235、与其他事件不同的是BookEvent是直播word 文档 可自由复制编辑0236、意味着如果 EA 交易同意用 MarketBookAdd 接收 BookEvent,其他有 OnBookEvent()处理程序的 EA 交易也会收到这个事件0237、因此分析交易品种名称是必须的,可以 const string&symbol 参数传到处理程序0238、OnChartEvent()是 ChartEvent 的处理程序:0239、CHARTEVENT_KEYDOWN 击键,图表窗口定格;0240、CHARTEVENT_OBJECT_CREATE 创建图解物件;0241、CHARTEVENT_OBJECT_CHANGE 通过属性对话框改变物件属性;0242、CHARTEVENT_OBJECT_DELETE 删除图解物件;0243、CHARTEVENT_CLICK 鼠标单击图表;0244、CHARTEVENT_OBJECT_CLICK 鼠标单击属于图表的图解物件;0245、CHARTEVENT_OBJECT_DRAG 用鼠标移动图解物件;0246、CHARTEVENT_OBJECT_ENDEDIT 图解物件标签编辑输入框中完成文本编辑;0247、CHARTEVENT_CUSTOM+n 用户 ID,0-65535 之间范围。

      0248、CHARTEVENT_CUSTOM_LAST 自定义(CHARTEVENT_CUSTOM+65535)接受的最后一个ID0249、OnCalculate()函数只在自定义指标中调用,通过 Calculate 计算指标值是必须的0250、通常在接到指标计算的交易品种新订单号时发生0251、这个指标不需要附在交易品种的价格图表上0252、OnCalculate()函数有个返回值 int0253、有两个可能定义一个指标中不可以有两个函数版本一种是用于单数据缓冲中计算的指标0254、在函数内可变量的声明是局部的0255、局部变量在声明的部分里是被限定的0256、局部变量可以由任意一个表达式结果初始化word 文档 可自由复制编辑0257、每次函数的运行只可以初始化一个局部变量0258、局部变量储存在相应的存储器上0259、变量范围是涉及变量的模块部分0260、模块中声明的变量(内部),有模块规定其范围0261、如果变量声明的范围是在启动模块,则以终止程序结束0262、通过函数的变量是局部的范围是在作用块内0263、在作用之内正式变量的名称必须不同于其他外部定义变量和函数变量0264、作用块内的正式变量值已经被赋予。

      0265、如果正式参数以常量修饰符声明,其值在函数中不能改变0266、静止存储类变量被称为静态变量0267、静态变量在数据类型之前指定静态修饰符:static0268、静态变量可以通过相关的常量和常量表达式初始化0269、静态变量存在于程序执行期,在特别函数 OnInit()调用前初始化0270、如果未指定初始化值,静态变量为零初始化值0271、关键字 static声明的局部变量通过函数使用期保留值0272、下次调用函数时,局部变量会包含上次调用的值0273、任何变量,除了函数的形式参数,都称为静态变量0274、如果局部变量声明不是静态,变量内存会在程序中自动分配0275、全局变量通过函数外部描述声明而创建0276、全局变量作为函数被定义在相同水平0277、全局变量的范围是整个程序0278、全局变量在所有程序内是被定义的word 文档 可自由复制编辑0279、如果它的值没有被定义,初始化值为零0280、全局变量只对于相应的常数初始化0281、全局变量只可以在程序载入客户端以后初始化0282、注解:变量在全局变量的水平位上不能够与客户端 GlobalVariable.()函数混淆0283、关键字关键字 externextern用来声明变量标识符,作为全局使用期的静态存储标识符。

      用来声明变量标识符,作为全局使用期的静态存储标识符0284、从程序启动,这些变量即存在,其内存会在程序启动后即时分配和初始化0285、创建多源文件程序,这个情况下直接使用预处理#include0286、外部声明的同一类型和标识符的变量位于一个项目中的不同源文件0287、编译整个项目时,所有同型同标识符的外部变量与全局变量池相连0288、外部变量用来分离编译源文件0289、外部变量可以初始化,只能一次禁止几个同型同标识符外部变量初始化0290、#define 直接用来指定常量助记名0291、#define identifier token_string在编译阶段直接替换0292、#define ABC100#define PI3.14#define COMPANY_NAMEMetaQuotes Software Corp.0293、每个 mql5-程序都允许指定额外的名为#property 的特殊参数0294、有助于客户端不用启动程序就能够提供定制的互联网服务0295、程序属性设置的格式为:#property identifier value0296word 文档 可自由复制编辑、0297、0298、word 文档 可自由复制编辑0299、0300、#include 命令可以放置到程序的任意部分,但是通常所有文件的源代码被统一放置。

      0301、#include 在系统目录下查找包含文件include file_name在指定目录下查找包含文件0302、Mql 的日期时间量:word 文档 可自由复制编辑0303、Mql 比率:0304、word 文档 可自由复制编辑0305、在向服务器发送交易操作要求时,推荐进行一下检测0306、该检测使用该检测使用 OrderCheck()OrderCheck()函数执行函数执行0307、检测要求和检测要求和 MqlTradeCheckResultMqlTradeCheckResult结构体变量已传递,检测结果会记录该变量结构体变量已传递,检测结果会记录该变量0308、这个结构体主要用于向服务器发出信息,检测能否成交0309、在 MQL4 实战中我们也发现,很多时候账户情况复杂word 文档 可自由复制编辑0310、可能遇到:保证金不足,可能无法一次选中某些订单,可能连接服务器超时,可能可能遇到:保证金不足,可能无法一次选中某些订单,可能连接服务器超时,可能发送数据到服务器处理时服务器未及时响应发送数据到服务器处理时服务器未及时响应0311、MQL5 提供的这些细致的功能为精确把握程序流程提供给了依据。

      0312、返回当前交易品价格的结构体:0313、对于每个可执行的MQL5 程序的有一套变量都是支持的这就是预定义变量0314、可以通过 MQL5 程序获得当前即时价格(EA 交易、脚本或者自定义指标)0315、预先定义变量的值在预先定义变量的值在 MQL5MQL5 程序启动之前通过客户端建立程序启动之前通过客户端建立0316、预先定义变量是不变的,也不会通过预先定义变量是不变的,也不会通过 MQL5MQL5 程序转变程序转变0317、例外是:特殊变量_LastError,通过ResetLastError 函数重设至 00318、_Digits 变量保留小数点后几位它定义了当前图表交易品种的价格精确度0319、可以使用 Digits()函数0320、_Point 变量包括货币报价中当前交易品种的点数信息0321、可以使用 Point()函数0322、_LastError 变量包括最后一个错误的代码0323、在 MQL5 程序运行中发生,使用ResetLastError()值能重设成 00324、获得最后错误代码,使用GetL。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.