请观看如何免费下载自动交易

有趣的脚本?
因此发布一个链接 -
让其他人评价

喜欢这个脚本? 在MetaTrader 5客户端尝试它

程序库

垂直柱形图构造器 - MetaTrader 5程序库

Sergey Pavlov | Chinese English Русский Español Deutsch 日本語 Português

显示:
538
等级:
投票: 18
已发布:
2017.01.25 09:00
\MQL5\Include\
Histogram.mqh (30.65 KB)预览
\MQL5\Indicators\

柱形图是频率的柱形图表,一个轴表示变量的值,而另一个轴 — 这些数据出现的频率。每个柱的高度显示了数值的频率(数量),分别属于对应的间隔,等于栏位的宽度。这样的图表通常是水平显示的,也就是说,变量值位于水平轴,而频率在纵轴上。

在这个开发库中,我们将重点放在订单分布的垂直柱形图:分析参数的价格数值位于垂直轴,按照上升的顺序,而频率则位于水平轴上。到来的价格数据分布和分组在当前柱上,可以同时显示它相对所在轴距离左方,右方或者双方的距离。

图 1. 买家报价和卖家报价分布的垂直柱形图。

图 1. 买家报价和卖家报价分布的垂直柱形图。

垂直柱形图构造器是基于CHistogram类的,它所有方法的实现都是基于使用了所谓的"图形"内存。

方法: 类构造函数 CHistogram

初始化一个类的实例。

void CHistogram(
   string name,                     // 唯一的名称前缀
   int    hsize,                    // 图表缩放
   int    width,                    // 柱形图柱形的宽度
   color  active,                   // 活动柱形的颜色
   color  passive,                  // 非活动柱形的颜色
   bool   Left_Right=true,          // left=false 或者 right=true
   bool   relative_frequency=false, // 相对或者绝对柱形图
   int    sub_win=0                 // 用于绘制柱形图的窗口的索引
   );

参数:

name

   [in] 柱形图柱形的唯一名称前缀。

hsize

   [in] 柱形图显示的缩放。

width

   [in] 柱形图柱的宽度。

active

   [in] 柱形图当前更新柱的颜色。

passive

   [in] 柱形图当前不更新柱的颜色。

Left_Right=true

   [in] 柱形图显示的方向。false — 柱形图左边是当前柱, true — 右边是当前柱。

relative_frequency=false

   [in] 计算频率值的方法。false — 绝对频率值, true — 相对频率值。

sub_win=0

   [in] 绘制柱形图窗口的索引。0 — 主图表窗口。

返回值:

   没有返回值。如果成功,它就使用指定的参数创建类的实例。

方法: 柱形图的显示 DrawHistogram

显示柱形图的柱: 创建新柱;编辑已有柱;把频率值保存到图形内存;在当前柱显示柱形图。

void DrawHistogram(
   double price,  // 变量值
   datetime time  // 当前柱的时间
   );

参数:

price

   [in] 研究的市场典型价格变量的数值。

time

   [in] 当前柱的时间。这个柱将是柱形图的轴。

返回值:

   没有返回值。如果成功,创建新的或者调整已有柱。如果出现了新柱,柱形就产生偏移,这样轴就能在当前柱上。

方法: 计算柱形图的典型值 HistogramCharacteristics.

返回 sVseries 类型的变量,其中含有订单统计所计算的典型价格。

sVseries HistogramCharacteristics();

参数:

   没有输入参数。

返回值:

   如果成功,它返回 sVseries 类型变量的值。

用于取得当前柱形图特征值 (sVseries) 的结构。

用于保存过往统计分布中的特征值。设计用于取得订单统计中所请求的信息。

struct sVseries
  {
   long     N;    // 观察的总数
   double   Na;   // 频率的平均值
   double   Vmax; // 变量的最大值
   double   Vmin; // 变量的最小值
   double   A;    // 订单统计中的幅度
   double   Mean; // 有权重的算术平均
   double   D;    // 变数
   double   SD;   // 标准偏差
  };
sVseries 类型使得可以取得订单统计中的所有主要特征,并通过单次调用 HistogramCharacteristics() 函数取得显示的柱形图。

方法: 可视化平均值 DrawMean

在图表上显示订单统计中加权算术平均值。

void DrawMean(
   double coord,     // 加权算术平均值的值
   datetime time,    // 当前柱的时间
   bool marker=false,// 是否显示标记
   bool save=false   // 是否把数值保存到历史中
   );

参数:

coord

   [in] 加权算术平均的值。

time

   [in] 当前柱的时间。将在这个柱上计算加权算术平均值。

marker=false

   [in] 是否在图表上显示标记。false — 不显示标记, true — 在图表上显示标记。

save=false

   [in]  把加权算术平均值保存到历史中。false — 不显示, true — 在图表上显示数值。

返回值:

   如果成功,就会在图表上显示一条水平线,对应着加权算术平均的数值。

方法: 可视化标准偏差 DrawSD.

以长方形的形式显示标准差的值,长方形的宽度与平均频率匹配,而它的高度与标准偏差匹配,并且画出了加权算术平均的高低值。

void DrawSD(
   sVseries &coord,        // sVseries 类型的变量
   datetime time,          // 当前柱的时间
   double deviation=1.0,   // 偏差
   color clr=clrYellow     // 显示的颜色
   );

参数:

coord

   [in] sVseries 类型的值。

time

   [in] 当前柱的时间。

deviation=1.0

   [in] 增加标准偏差值的系数。

clr=clrYellow

   [in] 可视化标准偏差的长方形的颜色。

返回值:

   如果成功,在图表上显示一个长方形,表示了加权算术平均的标准差,


类的功能在视频中有演示,测试的代码在附件中,

提供的代码展示了如何调用类中的特定方法(函数)。


提示:

  • 最好在较小的时段中使用这个类。

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
官方代码: https://www.mql5.com/ru/code/16365

Exp_AFL_WinnerV2 Exp_AFL_WinnerV2

Exp_AFL_WinnerV2 EA交易使用了 AFL_WinnerV2 指标。

AFL_WinnerV2_HTF AFL_WinnerV2_HTF

在输入参数中带有时段选择选项的 AFL_WinnerV2 指标。

JSatl_Digit_System JSatl_Digit_System

本指标实现了一个突破系统,它使用了基于 JSatl_Digit 算法处理的最高价和最低价的序列形成的通道。

Exp_JSatl_Digit_System Exp_JSatl_Digit_System

基于 JSatl_Digit_System 指标信号的交易系统。