欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

PriceChannel - MetaTrader 5 库

author emer | 329 人阅读 | 0 人评论 |

PriceChannel - library for MetaTrader 5

PriceChannel 所选期间内的最高和最低价格。

这个跨平台库允许计算 PriceChannel,而无需将其归因于标准柱,即按价格变动。

因此,PriceChannel 可以在任何时间范围内计算,包括一秒时间范围。它也可以作为逐笔报价的通道。

// PriceChannel库操作示例

输入 整数期间 =1;            // 通道周期
输入 布尔值价格渠道 =真的;// 启用/禁用通过库计算 PriceChannel

#定义PRICECHANNEL_LOW_PRICE 出价  // 最低价柱的出价/要价/最后价
#包括//https://www.mql5.com/en/code/23418

// 最后 iPeriod 柱的最高价格
双倍的获得高(常量 整数i 期间 )
{
  静止的 双倍的高点[];

  高复制_象征,PERIOD_CURRENT,0、 iPeriod、高点);

  返回(高点[数组最大值(高)]);
}// 最后一个 iPeriod 柱的最低价格
双倍的降低(常量 整数i 期间 )
{
  静止的 双倍的低点[];

  低拷贝_象征,PERIOD_CURRENT,0、iPeriod、低点);

  返回(低点[数组最小化(低)]);
}双倍的总和=0;空白 勾选()
{
  静止的 常量 整数条形间隔 =周期秒数PERIOD_CURRENT);
  静止的PRICECHANNEL PriceChannel(inPeriod);// 创建一个具有预定义周期的 PriceChannel 对象  静止的 整数条形计数 =0;
  静止的 日期时间上一个时间 =0;

  如果(在价格频道)
    PriceChannel.NewTick();// 考虑新的刻度  如果时间当前() / BarInterval != PrevTime / BarInterval)// 新栏    计数条++;

  如果(柱数 > MAX_BARS)// 当相关历史记录累积完毕后开始计算    总和 += inPriceChannel ? PriceChannel.GetHigh() - PriceChannel.GetLow()// 通过库计算 PriceChannel                          :   GetHigh(inPeriod) - GetLow(inPeriod);        // 通过标准方法计算PriceChannel  上一个时间 =时间当前();
}双倍的 测试仪()
{
  返回(和);
}

该 EA 将在测试器中显示相同的结果:标准结果和通过库得到的结果。

标准计算

优化完成,总通过次数200优化完成于6分钟55秒
最短路径00001.061, 最长传球00003.432, 平均通过率0:0002.066


通过图书馆

优化完成,总通过次数200优化完成于2分钟57秒
最短路径0:00:00.764, 最长传球000:01.982, 平均通过率00000.862



附件下载

📎 pricest_base.mqh (1.2 KB)

📎 pricest.mqh (5.67 KB)

📎 pricest_copy.mqh (5.67 KB)

📎 highest.mqh (0.33 KB)

📎 lowest.mqh (0.34 KB)

📎 pricechannel.mqh (2.51 KB)

📎 pricechannel_example.mq5 (1.52 KB)

Source: MQL5 #23418

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录