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

每小时缓冲区(二进制)和 0-23 小时缓冲区 - 用于数据收集目的 - MetaTrader 5脚本

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

Buffers for each hour (binary) and an hour buffer from 0-23 - for data collection purposes - indicator for MetaTrader 5

Buffers for each hour (binary) and an hour buffer from 0-23 - for data collection purposes - indicator for MetaTrader 5

用户可以收集数据进行建模。时间虚拟变量经常用于经济建模。下面的简单指标可以轻松扩展,以二进制缓冲区数组向量的形式提供每小时。最终的缓冲区数组向量存储小时本身。

例如,如果将其他指标的数据收集到 CSV 中,例如使用CopyBuffer 函数,该指标允许收集该小时的虚拟列作为附加数据。

浏览代码

#财产指标图表窗口
#财产指标缓冲区 25
#财产指标图 25

缓冲液标记

#财产指标标签1  “00 点”
#财产指标标签2  “01 点”
#财产指标标签3  《02 点》
#财产指标标签4  “03 点”
#财产指标标签5  “04 点”
#财产指标标签6  “05 点”
#财产指标标签7  “06 点”
#财产指标标签8  “07 点”
#财产指标标签9  “08 点”
#财产指标标签10 “09 点”
#财产指标标签11 《10 点》
#财产指标标签12 “11点”
#财产指标标签13 “12点”
#财产指标标签14 《13 点》
#财产指标标签15 《14 点》
#财产指标标签16 《15 点》
#财产指标标签17《16 点》
#财产指标标签18《17 点》
#财产指标标签19《18 点》
#财产指标标签20《19 点》
#财产指标标签21《20 点》
#财产指标标签22《21 点》
#财产指标标签23《22 点》
#财产指标标签24《23 小时》
#财产指标标签25“小时”

缓冲区声明

双倍的hourBuffer0[];双倍的hourBuffer1[];双倍的hourBuffer2[];双倍的hourBuffer3[];双倍的hourBuffer4[];双倍的hourBuffer5[];双倍的hourBuffer6[];双倍的hourBuffer7[];双倍的hourBuffer8[];双倍的hourBuffer9[];双倍的hourBuffer10[];双倍的hourBuffer11[];双倍的hourBuffer12[];双倍的hourBuffer13[];双倍的hourBuffer14[];双倍的hourBuffer15[];双倍的hourBuffer16[];双倍的hourBuffer17[];双倍的hourBuffer18[];双倍的hourBuffer19[];双倍的hourBuffer20[];双倍的hourBuffer21[];双倍的hourBuffer22[];双倍的hourBuffer23[];双倍的小时缓冲区[];整数酒吧小时;

索引和绘图

将所有缓冲区的索引设置为数据,并使用循环关闭绘图(尝试使用循环进行索引会出现一个错误,您无法通过 SetIndexBuffer 传递例如 hourBuffer[q],因此一一执行此操作;但循环似乎适用于 PlotIndexSetInteger,很有帮助)。

  // 将缓冲区分配给索引,从图表中隐藏,在数据窗口中显示  设置索引缓冲区0,  hourBuffer0,  INDICATOR_DATA); 
  设置索引缓冲区1,  hourBuffer1,  INDICATOR_DATA); 
  设置索引缓冲区2,  hourBuffer2,  INDICATOR_DATA); 
  设置索引缓冲区3,  hourBuffer3,  INDICATOR_DATA); 
  设置索引缓冲区4,  hourBuffer4,  INDICATOR_DATA); 
  设置索引缓冲区5,  hourBuffer5,  INDICATOR_DATA); 
  设置索引缓冲区6,  hourBuffer6,  INDICATOR_DATA); 
  设置索引缓冲区7,  hourBuffer7,  INDICATOR_DATA); 
  设置索引缓冲区8,  hourBuffer8,  INDICATOR_DATA); 
  设置索引缓冲区9,  hourBuffer9,  INDICATOR_DATA); 
  设置索引缓冲区10, 小时缓冲区10,INDICATOR_DATA); 
  设置索引缓冲区11, hourBuffer11,INDICATOR_DATA); 
  设置索引缓冲区12, hourBuffer12,INDICATOR_DATA); 
  设置索引缓冲区13, hourBuffer13,INDICATOR_DATA); 
  设置索引缓冲区14, hourBuffer14,INDICATOR_DATA); 
  设置索引缓冲区15, hourBuffer15,INDICATOR_DATA); 
  设置索引缓冲区16, hourBuffer16,INDICATOR_DATA); 
  设置索引缓冲区17 号, hourBuffer17,INDICATOR_DATA); 
  设置索引缓冲区18, hourBuffer18,INDICATOR_DATA); 
  设置索引缓冲区19, hourBuffer19,INDICATOR_DATA); 
  设置索引缓冲区20, 小时缓冲区20,INDICATOR_DATA); 
  设置索引缓冲区21, hourBuffer21,INDICATOR_DATA); 
  设置索引缓冲区22, hourBuffer22,INDICATOR_DATA); 
  设置索引缓冲区23, hourBuffer23,INDICATOR_DATA);
  设置索引缓冲区24, 小时缓冲区,INDICATOR_DATA);

  为了整数我=0;我 <24;我++)
   {
      绘图索引集整数(我,绘图类型,DRAW_NONE);
      绘图索引集整数(我,绘图显示数据,真的);
   }

  返回初始化成功);
}

OnCalculate 函数循环和程序

    如果(费率_总计 <=0)
        返回0);

    // 我们将从第一个未处理的柱重新计算    整数开始=(先前计算>0?先前计算的 -10);

    为了整数我=开始;我// 计算柱 i 的小时 (0..23)       酒吧小时 = (整数)((时间[i]%86400)/3600);
      

      // 1) 将第 i 条的所有 24 个缓冲区设置为 0       hourBuffer0[i] =0.0;
       hourBuffer1[i] =0.0;
       hourBuffer2[i] =0.0;
       hourBuffer3[i] =0.0;
       hourBuffer4[i] =0.0;
       hourBuffer5[i] =0.0;
       hourBuffer6[i] =0.0;
       hourBuffer7[i] =0.0;
       hourBuffer8[i] =0.0;
       hourBuffer9[i] =0.0;
       hourBuffer10[i] =0.0;
       hourBuffer11[i] =0.0;
       hourBuffer12[i] =0.0;
       hourBuffer13[i] =0.0;
       hourBuffer14[i] =0.0;
       hourBuffer15[i] =0.0;
       hourBuffer16[i] =0.0;
       hourBuffer17[i] =0.0;
       hourBuffer18[i] =0.0;
       hourBuffer19[i] =0.0;
       hourBuffer20[i] =0.0;
       hourBuffer21[i] =0.0;
       hourBuffer22[i] =0.0;
       hourBuffer23[i] =0.0;
       小时缓冲区[i] =空_VALUE;

      // 2) 现在仅将匹配缓冲区设置为 1      转变(酒吧小时)
       {
        案件 0:  hourBuffer0[i]  =1.0; hourBuffer[i] = bar_hour;休息;
        案件 1:  hourBuffer1[i]  =1.0; hourBuffer[i] = bar_hour;休息;
        案件 2:  hourBuffer2[i]  =1.0; hourBuffer[i] = bar_hour;休息;
        案件 3:  hourBuffer3[i]  =1.0; hourBuffer[i] = bar_hour;休息;
        案件 4:  hourBuffer4[i]  =1.0; hourBuffer[i] = bar_hour;休息;
        案件 5:  hourBuffer5[i]  =1.0; hourBuffer[i] = bar_hour;休息;
        案件 6:  hourBuffer6[i]  =1.0; hourBuffer[i] = bar_hour;休息;
        案件 7:  hourBuffer7[i]  =1.0; hourBuffer[i] = bar_hour;休息;
        案件 8:  hourBuffer8[i]  =1.0; hourBuffer[i] = bar_hour;休息;
        案件 9:  hourBuffer9[i]  =1.0; hourBuffer[i] = bar_hour;休息;
        案件 10: hourBuffer10[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 11: hourBuffer11[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 12: hourBuffer12[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 13: hourBuffer13[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 14: hourBuffer14[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 15: hourBuffer15[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 16: hourBuffer16[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 17 号: hourBuffer17[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 18: hourBuffer18[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 19: hourBuffer19[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 20: hourBuffer20[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 21: hourBuffer21[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 22: hourBuffer22[i] =1.0; hourBuffer[i] = bar_hour;休息;
        案件 23: hourBuffer23[i] =1.0; hourBuffer[i] = bar_hour;休息;
       }
       
      细绳localHourText = HourToText(bar_hour);
      评论“时间是:”,本地时间文本);
    }

    // 返回已处理的柱数    返回(费率_总计);

为评论添加风味的功能

细绳小时到文本(整数乙){细绳文本时间;转变(bh)
{
  案件 0:
      文本时间 =“上午 12 点”;// 12 小时格式的午夜时间      休息;

  案件 1:
      文本时间 =“凌晨 1 点”;
      休息;

  案件 2:
      文本时间 =“凌晨 2 点”;
      休息;

  案件 3:
      文本时间 =“凌晨 3 点”;
      休息;

  案件 4:
      文本时间 =“凌晨 4 点”;
      休息;

  案件 5:
      文本时间 =“早上 5 点”;
      休息;

  案件 6:
      文本时间 =“早上 6 点”;
      休息;

  案件 7:
      文本时间 =“早上七点”;
      休息;

  案件 8:
      文本时间 =“上午 8 点”;
      休息;

  案件 9:
      文本时间 =“上午 9 点”;
      休息;

  案件 10:
      文本时间 =“上午 10 点”;
      休息;

  案件 11:
      文本时间 =“上午 11 点”;
      休息;

  案件 12:
      文本时间 =“中午 12 点”;// 12 小时格式的中午时间      休息;

  案件 13:
      文本时间 =“下午 1 点”;
      休息;

  案件 14:
      文本时间 =“下午 2 点”;
      休息;

  案件 15:
      文本时间 =“下午 3 点”;
      休息;

  案件 16:
      文本时间 =“下午 4 点”;
      休息;

  案件 17 号:
      文本时间 =“下午 5 点”;
      休息;

  案件 18:
      文本时间 =“下午 6 点”;
      休息;

  案件 19:
      文本时间 =“晚上七点”;
      休息;

  案件 20:
      文本时间 =“晚上八点”;
      休息;

  案件 21:
      文本时间 =“晚上九点”;
      休息;

  案件 22:
      文本时间 =“晚上 10 点”;
      休息;

  案件 23:
      文本时间 =“晚上 11 点”;
      休息;

  默认:
      // 以防万一 'bh' 超出范围 (0..23)      文本时间 =“未知”;
      休息;
}返回文本时间;

请注意,目前仅通过数据窗口显示。

Buffers for each hour (binary) and an hour buffer from 0-23 - for data collection purposes - indicator for MetaTrader 5

祝大家圣诞快乐,2025 年新年快乐。


附件下载

📎 thehour_screenshot.png (78.75 KB)

📎 thehour2.mq5 (9.33 KB)

Source: MQL5 #54446

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