2025-05-04 08:03
Jkel

  在所有需要显示宽度控件组中 w_Period 参数输入字段的情况下2025/5/4大的外汇自动交易正在以前的作品里曾描画过欺骗图形界面创修通用振荡器。正在本文中, 咱们创修了一个出格风趣、容易和有效的目标, 能够大大简化并加快图证实白。除振荡器外, 又有其它类型的本领明白目标, 也与振荡器一律风趣。它们蕴涵趋向、振动率和贸易量目标, 以及可划分为区别种别的其它目标。正在本文中, 咱们将琢磨通用通道目标的创修。

  我以前公布的相闭通用振荡器的作品相当庞杂, 它们是针对有体验的序次员而非初学者。因为本文的核心方向创修通用振荡器, 于是咱们正在此不会赘述通常题目。咱们将正在通用振荡器的基本上创修一个通用通道。以是, 即使序次员新人也能够通过编削所供应的素材来创修其通用目标, 而无需明白欺骗图形界面创修通用目标的完全轻微之处。

  只管通用目标似乎, 但仍存正在强大的根底分别。完全通道目标显示为三条线, 蕴涵核心, 顶部和底部线。核心线的画图道理与搬动均匀线似乎, 而搬动均线目标首要用于绘制通道。顶部线和底部线的地位距核心线隔绝相称。隔绝具体定能够遵守点为单元, 行为价钱百分比 (包络目标), 操纵模范偏向值 (布林带) 或ATR值 (Keltner 通道)。以是, 通道目标将操纵两个独立的模块构修:

  有种种区别类型的通道, 如 Donchian 通道 (价钱通道)。经常它以创修畛域线 (价钱鸿沟) 出手, 之后揣度核心线的数值 (正在鸿沟中心)。然而, 此通道也能够通过上述计划来构修: 即起初咱们绘制一条核心线, 这条核心线被界说为价钱区间的中心价, 然后咱们正在等于价钱鸿沟一半的隔绝上绘制通道畛域。当然, 这比经常通道须要更众的揣度。然而, 因为本文的首要方针是创修一个通用目标, 咱们能够许诺少少各异, 而此法子将扩大核心线与畛域的或许组合的数目。比方, 咱们将不妨创修一个正在价钱通道中带有核心线的目标, 畛域位于模范偏向的隔绝, 如布林带等。

  咱们来看一下何如正在变量 m_name 和 mlabel1 中酿成字符串。正在子窗口中绘制的目标的名称(m_name 变量) 显示正在子窗口的左上角。通道将显示正在价钱图外上, 其名称弗成睹, 以是咱们将为 m_label 变量分拨与 m_name 变量一致的周密名称, 以容易咱们将鼠标悬浮正在主题通道上时显示正在弹出框里。

  创修完全其它模范目标的类都似乎于 iMA。一个各异是价钱通道。因为价钱通道不蕴涵正在模范终端目标集结中, 咱们须要揣度它。有两种或许的抉择:

  两个选项能够一致操纵。正在第一种环境下, 作品中创修的目标将依赖较少的文献, 但一致的揣度须要众次实行 (起初咱们确定通道畛域以便揣度核心线, 然后咱们再次确定通道畛域以便判决通道宽度)。正在第二种环境下, 不会反复揣度。其它, 咱们还能够得到特殊的、可独立操纵的完全价钱通道目标。

  以下附件包罗 CUniChannel.mqh 文献, 此中包罗完全其它目标的子类和 iPriceChannel 目标。iPriceChannel 目标的核心线 中。借使有人须要进一步编削类用于任何其它目标, 其所需数据位于非零缓冲区, 则须要创修另一个 Calculate 子类或为基类中的缓冲区索引创修一个变量, 并正在子类的构制函数中为它分拨所需的数值。

  让咱们再次操纵 CUniChannel 行为咱们基类的基本。保管目标核心线数值的缓冲区和两个保管通道畛域的缓冲区将正在法子顶用揣度出的数值填充, 并将被传达给 Calculate 类的法子。与 CUniChannel 比照, 此处咱们将诀别为每个畛域揣度选项创修 Calculate 子类。这些子类将加载目标, 并正在此中酿成目标温存冲区的名称。咱们还须要稍微编削基类: 为通道宽度增加一个变量 变量的值将通过子类构制函数创立。

  咱们来将 CUniChannel.mqh 文献保管为 CUniChannelWidth.mqh 并对其实行编削。起初咱们删除完全的子类, 只剩下基类和 Calculate。将 CChannelUni 重定名为 CChannelUniWidth (不要遗忘子类中的构制函数, 析构函数和父类名称也须要更改)。结果文献如下:

  咱们将 CChannelUni_Calculate 类重定名为 CChannelUni_Calculate_ATR, 并向其内增加一个构制函数。构制函数能够从通用振荡器的 COscUni_ATR 类中获取, 然则咱们须要从头定名它, 将宽度参数增加其内。又有哪些须要编削的: 咱们须要增加目标温存冲区名称天生。结尾, 基于 ATR 揣度畛域的类如下:

  核心线类型的罗列称为 ECType, 通道宽度类型的罗列是 EWType。将含有罗列的文献和两个先前创修的含类文献衔尾到目标:

  咱们来声明两个变量, 这些变量现正在将是内部的, 且自此将正在带有图形界面的目标版本的属性窗口中显示:

  这些变量的方针正在相闭通用振荡器的作品中有周密描画: UseDefault 变量启用每个新抉择的目标以省缺创立加载形式, 而且 KeepPrev 变量启用切换目标时保存参数的形式。正在没有图形界面的目标版本中, 目标隶属性窗口加载参数, 以是 UseDefault 值为 false。KeepPrev 也被创立为 false, 由于图形界面不存正在, 且没有目标切换。

  正在目标初始化光阴须要盘算参数。就像正在通用振荡器中一律, 咱们将正在一个孤单的 PrepareParameters() 函数中盘算参数, 但起初咱们将创修完全外部变量的副本:

  正在这一点上, 咱们能够假设没有图形界面的目标是完全的。它能够用于测试完全的类和参数的操作, 之后咱们能够接续创修一个图形界面。

  正在测试中, 暴显示目标操作中的少少未便之处。此中一个毛病是孤单打点核心线周期和宽度揣度周期。当然, 这种掌管能够扩充目标的或许性, 然则正在某些环境下, 或许须要操纵单个参数同时掌管两个周期。咱们来做一个轻微的变革, 令通道宽度周期等于核心线的三个周期之一。操纵罗列 (位于 UniChannelDefines.mqh 文献) 落选择四个可用选项之一:

  ELockTo{ LockTo_Off, LockTo_Period1, LockTo_Period2, LockTo_Period3 };

  当抉择 LockTo_Off 选项时, 孤单调节周期。正在完全其它环境下, w_Period 参数的值等于核心线的相应周期。咱们正在 w_Period 变量之后当即声明一个类型为 ELockTo 的变量:

  咱们正在 PrepareParameters() 函数的底部增加以下代码:

  LockTo_Period1: _w_Period=_c_Period1;

  另一个毛病是闭于参数合法性的音尘显示正在 智能体例 选项卡的一行中, 此中一个别不会显示正在较窄的屏幕上。咱们编削代码以便正在一列中显示音信。代替 Print, 咱们将操纵咱们己方的 PrintColl() 函数。两个参数传达给这个函数: 题目和一个助助字符串。正在此函数中, 助助字符串切分为几个别, 孤单打印:

  现正在目标已一律停当, 附件中的文献名是 iUniChanhel。现正在咱们来创修图形界面。

  图形界面将基于通用振荡器的图形界面。将 UniOsc / UniOscGUI.mqh 复制到 UniChannel 文献夹, 并将其名称更改为 UniChannelGUI.mqh。通用通道的图形界面与通用振荡器的界面区别很大, 于是咱们须要正在这里做良众劳动。

  首要区别正在于通用通道须要独立抉择两个目标 (核心线和畛域), 于是该当有两个首要目标抉择列外。第一个列外应随同控件来打点核心线参数。然新进入针对畛域参数的第二个列外和控件。以是, 第二个列外没有固定的坐标, 它们必必要原委揣度。除了两品种型抉择列外以外, 外单应永远有两个用于偏移值的输入字段。字段的坐标也不是固定的。另一个核心是抉择与 w_LockPeriod 参数对应的变量的列外。正在完全须要显示宽度控件组中 w_Period 参数输入字段的环境下, 应显示一个特殊的下拉列外。

  起初, 咱们正在 UniChannelGUI.mqh 文献中实行通常编削:

  3. 增加 m_last_y 变量, 此中将记实组中结尾一个控件的 Y 坐标。增加一个吸收该变量值的法子 — GetLastY()。咱们不再须要 FormHeight() 法子, 于是咱们删除它。代之, 咱们须要增加 ControlsCount() 法子, 返回子类中的控件数目。该数字将用于揣度外单的高度。

  仅当 locked 变量设为 false, 才会将省缺值分拨给 ma_period。函数LoadWidth() 相应刷新。正在函数伊始揣度 Locked 的值:

  就像正在通用振荡器中所做的, 正在此咱们扩大了变革配色计划的才具, 并正在更改时刻帧时供应目标参数的保管。咱们不会辩论配色计划的操纵, 由于正在创修通用振荡器时曾经琢磨过。咱们来供应目标参数的保管。

  正在目标的 OnDeinit() 函数中, 借使因为图外变革而实行了逆初始化, 则咱们操纵参数值创修图形对象。咱们正在图外可睹性以外创修这些图形对象:

  正在此函数中, 实行这些对象是否存正在的查验。借使它们确实存正在, 则操纵这些对象的值, 且函数返回 true。借使函数返回 true, 那么该当操纵 false 参数挪用 LoadCentral() 和 LoadWidth() 函数 (以预防创立省缺参数)。OnInit() 函数的片断:

  ChartCange=LoadSavedParameters(); LoadCentral(!ChartCange);

  只管通用振荡器操纵了巨额的现成代码, 但通用通道的创修仍旧须要巨额特殊的劳动。与通用振荡器的首要区别是存正在两个独立的单位: 核心线和通道畛域。这一贫窭使劳动量扩大了近两倍。通用通道蕴涵更庞杂的参数改观算法, 而这些是与周期锁定函数相连的。新目标的加载也变得加倍庞杂, 由于现正在操纵了两个目标。咱们还扩大了新的功效 — 正在切换时刻帧时保管参数。行为结果, 咱们缔造了一个有益且容易的目标。别的, 这个目标明显地扩展了通道思绪的功效, 由于现正在您能够孤单抉择核心线以及构修通道畛域的法子。这就供应了大鸿沟的或许组合。通过操纵图形界面扩大目标操纵的速率, 可直观地明白完全这些组合。

  本文附带所需文献的可下载存档。文献应置于准确的文献夹中。它们应被保管到终端的一致文献夹中。

  免责声明:本文系转载自搜集,如有进攻,请接洽咱们当即删除,另:本文仅代外作家局部见解,与迈投财经无闭。其原创性以及文中陈述文字和实质未经本站说明,对本文以及此中总共或者个别实质、文字具体凿性、完全性、实时性本站不作任何包管或准许,请读者仅作参考,并请自行核实干系实质。

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

  现货黄金贸易战略:预期通胀增速放缓,黄金再攀七个月新高,后市剑指1920?

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

  4月28日财经早餐:特朗普议论随时改观,令金价振动加大,本周聚焦非农+乌克兰条约能否实现

FXCG 相关资讯

mt4外汇最重要的是根据自
xm开户与文章“片头”存
cxm外汇平台官网文中AO
再次感谢您对公司的关注
会弹出文件下载提示框,
杨曙光简历很多的白标提
它具有很高的透明度咨询
mt4交易平台指标能够在瞬
(责任单位:市交通运输
外汇mt4下载安装如英国的