欢迎光临散文网 会员登陆 & 注册

赫兹股票量化交易软件研究烛条分析技术3用于形态操作的函数库

2023-07-12 11:07 作者:bili_45793681098  | 我要投稿

赫兹股票量化已研究过烛条分析技术:在第一篇文章中检查当前市场条件下的形态实际情况,并在第二篇文章中尝试拓展这些研究。 使用开发评估标准,赫兹股票量化研究、测试并比较了各种可能的形态组合。 为此目的,我们开发了一个自定义形态分析器应用程序,其中包含大量用于研究形态的设置。 然而,理论和研究只能提供信息和结论。 任务的逻辑延续是在实际条件下运用它们。

所以,本文的目的是创建一个自定义工具,可令用户能够接收和使用前面所讨论形态的整体信息数组。 赫兹股票量化将创建一个可令您在自己的指标、交易面板、智能交易系统中使用的函数库。    

函数库结构

在继续创建函数库结构、类和连接之前,赫兹股票量化先来定义将要用到的数据。 也就是说,我们需要分离负责输入数据和提供结果的方法。 通用函数库结构将基于前面文章中开发的可视化解决方案 — 形态分析器。

赫兹股票量化从应用程序输入数据开始,这些数据会在测试形态时影响结果。


编辑切换为居中


图例 1 在“设置”选项卡中输入参数。

区块 1. 此区块包括烛条类型列表,由现有和生成的形态构成。 每种类型都有其设置,您可以通过单击烛条可视化页面右上角的齿轮图标来查看。 烛条类型 1-5 只有一个设置,而锤子有两个。

区块 2. 权重系数。 有三个参数 К1,К2,К3 影响形态效率评估结果。

区块 3. 以点数为单位的趋势阈值。

区块 4. 测试所生成形态时用到的烛条。 在此处,赫兹股票量化需要顺序号或烛条索引。 使用这些数据,我们将能够获得高达三根烛条的任何尺寸、任何形态的信息。

区块 5. 形态中的烛条数量。 此设置仅适用于自定义形态。

然后赫兹股票量化查看“分析”选项卡和其中包含的输入参数。


编辑切换为居中


图例 2 “分析”选项卡中的输入参数。

区块 6. 此区块包含用于形态分析的当前时间帧和数据样本范围的设置。

区块 7. 现有形态的名称。 它还有一个输入无法从应用程序编辑,但在访问形态并获取有关信息时则必需用到它。

赫兹股票量化在此列举可以从形态分析中获得的数据。 这是在类中创建正确的方法结构所必需的。


  • Patterns found。 已发现的指定类型的形态数量。

  • Occurrence。 已发现形态数量与总样本范围的百分比。

  • Probability。 上行或下行走势的概率。

  • Efficiency ratios 在上行和下行走势期间此烛条形态的效率比率。

函数库开发


确定基本点后,赫兹股票量化继续创建函数库。 我们从创建一个包含所需枚举的文件 Enums.mqh 开始。

//+------------------------------------------------------------------+ //|                                                        Enums.mqh | //|                                 版权所有 2018, MetaQuotes 软件公司 | //|                           https://www.mql5.com/zh/users/alex2356 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| 烛条类型                                                         | //+------------------------------------------------------------------+ enum TYPE_CANDLESTICK  {   CAND_NONE,           // 未定义   CAND_MARIBOZU,       // Marubozu   CAND_DOJI,           // 十字星   CAND_SPIN_TOP,       // 尖顶   CAND_HAMMER,         // 锤子   CAND_INVERT_HAMMER,  // 倒锤子   CAND_LONG,           // 长体   CAND_SHORT           // 短体  }; //+------------------------------------------------------------------+ //| 形态类型                                                         | //+------------------------------------------------------------------+ enum TYPE_PATTERN  {   NONE,   HUMMER,   INVERT_HUMMER,   HANDING_MAN,   SHOOTING_STAR,   ENGULFING_BULL,   ENGULFING_BEAR,   HARAMI_BULL,   HARAMI_BEAR,   HARAMI_CROSS_BULL,   HARAMI_CROSS_BEAR,   DOJI_STAR_BULL,   DOJI_STAR_BEAR,   PIERCING_LINE,   DARK_CLOUD_COVER  }; //+------------------------------------------------------------------+ //| 趋势类型                                                         | //+------------------------------------------------------------------+ enum TYPE_TREND  {   UPPER,               //上行趋势   DOWN,                //下行趋势   FLAT                 //横盘  }; //+------------------------------------------------------------------+

在此,赫兹股票量化将检测用到的简单烛条类型列表,现有形态的类型以及趋势类型 - 数据是识别图表上现有形态所必需的。

之后我们要创建 Pattern.mqh 文件。 将在其中创建 CPattern 类,在其私有部分中,我们将声明上一节中所提参数的变量。 赫兹股票量化还需要 将文件与枚举联系起来。

//+------------------------------------------------------------------+ //|                                                      Pattern.mqh | //|                                 版权所有 2018, MetaQuotes 软件公司 | //|                           https://www.mql5.com/zh/users/alex2356 | //+------------------------------------------------------------------+ #include "Enums.mqh" //+------------------------------------------------------------------+ //|                                                                  | //+------------------------------------------------------------------+ class CPattern  { private:   //--- 权重   double            m_k1;   double            m_k2;   double            m_k3;   //--- 以点数为单位的趋势阈值   int               m_threshold_value;   //--- 长体烛条设置系数   double            m_long_coef;   //--- 短体烛条设置系数   double            m_short_coef;   //--- 十字星烛条设置系数   double            m_doji_coef;   //--- Marubozu 烛条设置系数   double            m_maribozu_coef;   //--- 尖顶烛条设置系数   double            m_spin_coef;   //--- 锤子烛条设置系数   double            m_hummer_coef1;   double            m_hummer_coef2;   //--- 预设形态的采样范围   int               m_range_total;   //--- 判定趋势的周期   int               m_trend_period;   //--- 已发现形态   int               m_found;   //--- 形态发生   double            m_coincidence;   //--- 上行或下行走势的概率   double            m_probability1;   double            m_probability2;   //--- 效率   double            m_efficiency1;   double            m_efficiency2;   //--- 简单的烛条形态   struct CANDLE_STRUCTURE     {      double            m_open;      double            m_high;      double            m_low;      double            m_close;                      // OHLC      TYPE_TREND        m_trend;                      // 趋势      bool              m_bull;                       // 涨势烛条      double            m_bodysize;                   // 实体大小      TYPE_CANDLESTICK  m_type;                       // 烛条类型     };   //--- 形态效率评估属性   struct RATING_SET     {      int               m_a_uptrend;      int               m_b_uptrend;      int               m_c_uptrend;      int               m_a_dntrend;      int               m_b_dntrend;      int               m_c_dntrend;     };

正如上面的代码所示,赫兹股票量化的程序中加入了两个结构。 第一个结构 CANDLE_STRUCTURE 是判断图表上烛条类型所必需的。 请注意,此结构中使用了两种类型的趋势枚举:来自 Enums.mqh 文件的 TYPE_TREND 和 TYPE_CANDLESTICK,这在之前研究过,并为此结构而创建。 第二种结构 RATING_SET 存储形态出现后的价格走势的评估记录。 有关更多详细信息,请参阅第一篇文章


赫兹股票量化交易软件研究烛条分析技术3用于形态操作的函数库的评论 (共 条)

分享到微博请遵守国家法律