2025-05-04 08:02
Jkel

  和管理活动仓位类似-mt4交易平台大全通用EA来往的根底源代码开荒还是一直,整合到 CStrategy 来往引擎的大局限手腕都注明了它们正在实质应用中的高效、便利和浅易,然而,由于实质应用的原由,咱们须要回头 EA 运转都某些方面,

  此中一个方面即是对目标的操作。正在系列的第三篇著作中,咱们提出了一个用于操作目标的经典面向对象手腕,背后的思绪是把每个目标都当成一个面向对象的类,应用它们本身的手腕来创立和获取某些属性。然而,正在实质应用中,很难为每个目标实行一个稀少的封装类。本文研讨了应用OOP(面向对象编程)作风操作目标的新手腕,不再须要实行稀少模块类了。

  本文中研讨的第二个转变是合于引入了一个周详处理挂单的流程,借使须要正在之前战略代码中直接收理挂单,一局限如此的函数现正在指派到 CStrategy 来往引擎了。最终的战略类现正在可能重载 SupportBuyPending 和 SupportSellPending 手腕并先导处理挂单,和处理举动仓位肖似。

  为了分解眼前的义务,让咱们参考正在系列著作第三篇中叙到的操作目标的计划,它提出的手腕是通过一个封装类来操作任何目标。比如,供给的例子中应用了 CIndMovingAverage 封装类用于操作 iMA 目标。CIndMovingAverage 类自身蕴涵了创立或者返回目标特定属性的手腕,以及移用 iMA 编制函数的 Init 手腕。虽然目标类的布局比力浅易,它的代码分外长,用户须要本身实行它们。参睹这个类的源代码以评估它所需的职业量:

  通常会显示,正在实质应用 CStrategy 极少时刻后就找到了计划,很光鲜,目标探访机制应当有下面的属性:

  函数实行的。这两个函数许可创修规范的和自界说的目标。iCustom 函数须要正在圭臬编译的时辰就指定目标的实质参数,而 IndicatorCreate 函数的打点是差异的。它应用 MqlParams 布局的数组,第二个函数的样子使得可认为一个任性的目标创修一个通用的探访流程。正在这种情景下,不须要预先理解目标的参数,这使探访流程真正通用。

  让咱们研讨一个应用 IndicatorCreate 的实质例子,咱们将应用它来创修一个转移均匀目标的句柄,它将是与应用 iMA 返回目标的雷同的目标:

  面向对象的编程助助用户隐匿了大局限 MqlParams 数组装备的职业,供给了便利的接口来创立任性参数。让咱们创修

  是时辰判辨 CUnIndicator 的内部布局了,它的完好源代码如下:

  这个类还供给了 Create 手腕的众个变体,这就可能同时创修自界说目标 (指定目标的字符串名称) 和规范目标, 类型可能通过 INDICATOR_TYPE 创立。比如,这即是奈何以自界说目标创修转移均匀目标:UnMA.Create(

  CUnIndicator 类还蕴涵了 InitByHandle 手腕,让咱们精确酌量一下。咱们理解,良众目标可能不但凭据来往种类的价钱举行盘算,还可能凭据其他目标的数据举行盘算,感激这一点,这就可能创修一个目标链,凭据前面孔标的输出值来盘算它们的价钱了。假设咱们须要凭据转移均匀盘算随机颠簸目标的值,要做到这一点,咱们须要初始化两个目标: 一个用于盘算转移均匀,而另一个是用于随机颠簸目标。可能像下面如此做:

  //+------------------------------------------------------------------+

  面向对象类,示意 CStrategy 中的一个挂单。CPendingOrders 是一个接口类,它除了用于留存订单单号的栏位以外没有内部成员变量。它的一起效于博得对应属性的手腕都是通过移用三个主编制函数 — OrderGetInterer, OrderGetDouble 和 OrderGetString。如此的结构确保了数据示意的完好性。CPendingOrders 的一个实例对应着 MetaTrader 5 中的每个挂单, 单号等于确凿订单号。借使由于某些原由挂单被裁撤 (通过EA来往或者通过用户), CStrategy 来往引擎就会从挂单列外中删除对应的 CPendingOrders 实例。CPendingOrders 列外留存为一个特定的

  类,每个战略都有它本身的 COrdersEnvironment 实例, 叫作PendingOrders。战略可能直接探访这个对象,并从对象中凭据索引挑选所需的订单。借使战略须要创立一个挂单而不是墟市订单,只消通过 CTrade 模块浅易发送对应的来往央求。通过这种方法,创立挂单和创立墟市订单没有区别。然而随后就会有所不同,这正在 CStrategy 中没有推敲到。CStrategy 是如此打点的,每个墟市仓位按次第传入随地理函数中,如此,POSITION_TYPE_BUY 类型的仓位是由 SupportBuy 手腕打点的, 而 POSITION_TYPE_SELL 类型的仓位是由 SupportSell 手腕打点。而看待挂单,全数都差异了。每个如此的订单都放正在 PendingOrders 会集中,由 EA 来往探访,然而如此的订单没有它们本身的打点函数。咱们假定,挂单将会正在其他地方举行打点,比如,正在 OnEvent 中, BuySupport/SellSupport 或者乃至正在 BuyInit/SellInit 中。然而,正在这种情景下,借使没有开启的仓位,随后就没有对 BuySupport/SellSupport 的移用,结果是,牢靠的对挂单的打点只可放正在 OnEvent 中。然而正在这个手腕中打点又与寻常操作次第有冲突。会显示一局限仓位按次第正在部队中由 CStrategy 打点,而另一局限仓位(挂单)是以旧的方法打点的,正在单个的 OnEvent 模块中。正由于这一点,新版本的 CStrategy 引入了两个此外的手腕,

  正在 SupportPendingBuy 中处理买入挂单直到其触发或者裁撤 / 正在 SupportPendingSell 处理卖出挂单直到其触发或者裁撤;

  正在 SupportBuy 中处理买入仓位 / 正在 SupportSell 中处理卖出仓位.

  实质上,处理挂单老是来往战略逻辑中独立的局限,以是,稀少处理挂单和墟市仓位使得可能节减开荒这种战略时的丰富性。

  来往战略中熟练的例子,它正在著作的第五局限中。它的性子即是正在每个柱上隔绝转移均匀必定的隔绝创立止损挂单,隔绝以百分比示意。看待买入来往,创立止损买入挂单,而修仓秤谌高于转移均匀百分之N,看待卖出来往,即是相反的: 创立止损卖出挂单,修仓秤谌低于转移均匀百分之N。仓位将会正在收盘价低于 (看待买入来往) 或者高于 (看待卖出来往) 转移均匀的时辰封闭。

  总体说来,这与之前先容的战略是雷同的, 只是属于篡改版。它可能用作例子,来评估 CStrategy 中所做的篡改,而且看看新成效是奈何正在实质中应用的。然而,起首咱们须要回到之前版本的EA代码中,这里会供给完好代码,以是晚些时辰咱们可能比力版本之间的语句:

  第二,操作挂单的局限是正在 BuyInit/SellInit 代码块中通过穷举挂单来做的,这正在浅易的战略,比如 CImpulse 中不会太丰富,然而借使有愈加丰富的订单处理,就会显示题目。最好把创立挂单和处理它们的局限独立出来,放到稀少手腕中,就像新版本的 CStrategy 中所做的那样。

  留意窥探 CImpulse 的代码会展现这局限成效,它是要正在 CStrategy 中供给的, 现正在是由 CImpulse 来做的。CStrategy 应当界说一个状况编制来处理挂单,然而它没有: 编制是正在 CImpulse 自身实行的。

  目次中,它蕴涵了 Strategy 文献夹,以及 .mq5 为扩展名的战略文献。最终的来往战略现正在即是一个稀少的 mq5 文献,它蕴涵了用于打点事变的规范函数 (比如 OnInit 和 OnTick), 也蕴涵了基于 CStrategy 的战略类自身。

  一起的辅助文献现正在也都放正在 MQL5/Experts/UnExpert/Strategy 目次下,这也包罗用于操作 XML 的文献, 和操作内部布局的文献(比如 Dictionary.mqh)。如需编译例子,只消浅易掀开文献 (比如, MQL5/Experts/UnExpert/Impulse 2.0.mqh) 然后按下 编译 按钮。正在这篇著作供给的实例局限中,只应用了两个战略 — Impulse 1.0 和 Impulse 2.0. 它是雷同的战略,只是用了 CStrategy 差异的新旧作风来写。这是有心如此做的,您可能比力这两种手腕来看看著作中所描摹的差异点。其他的正在前面著作顶用到的旧版本 CStrategy 的例子正在这个版本中就没有了,这是由于它们依赖于旧的语法,以是不行举动例子正在这里映现了,也许它们会显示正在将来的版本中,然而应用的是篡改过的语法。

  咱们仍旧商讨了 CStrategy 的新组件,这蕴涵了 CUnIndicator 类, 它实行了通用的 OOP 作风的接口,来操作任何编制或者自界说 MQL5 目标,再有效于基于 SupportPendingBuy 和 SupportPendingSell 手腕的用于处理挂单的编制。一起这些元件组正在沿道,正在开荒EA来往的时辰供给了宏大的同步效率,用户不再须要推敲低秤谌的操作了。简直一起的来往境况都可能通过类来举行直接或者间接的探访,而来往逻辑可能通过浅易重载对应的预先供给的手腕来实行。

  免责声明:本文系转载自收集,如有侵吞,请合系咱们随即删除,另:本文仅代外作家部分见识,与迈投财经无合。其原创性以及文中陈述文字和实质未经本站证据,对本文以及此中统统或者局限实质、文字简直凿性、完好性、实时性本站不作任何保障或容许,请读者仅作参考,并请自行核实干系实质。

  DoEasy. 控件 (第 10 局限): WinForms 对象 — 动画界面

  DoEasy. 控件(第 16 局限):TabControl WinForms 对象 — 众行选项卡题目,拉伸题目适配容器

  11月12日外汇来往指点:高通胀促使提前加息押注,美元冲破95创近16个月新高

  4月29日财经早餐:墟市显示低吸买盘,金价逆转跌势上涨,需求忧愁拖累,油价下跌超2%

  4月28日财经早餐:特朗普议论随时转变,令金价摇动加大,本周聚焦非农+乌克兰同意能否告终

FXCG 相关资讯

支持1年历史数据优化参
交易论坛有哪些福汇MT
中国现货交易网官网一旦
这些物品的特点是扔掉可
在线mt4交易平台由参保人
平台支持现货黄金、白银
mt4交易etf本基金将力争利
3.等审核:一般提交开户
同时秉持风险控制及合规
mt4外汇交易平台其注册资