每小时缓冲区(二进制)和 0-23 小时缓冲区 - 用于数据收集目的 - 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?先前计算的 -1:0); 为了(整数我=开始;我// 计算柱 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) 文本时间 =“未知”; 休息; }返回文本时间;
请注意,目前仅通过数据窗口显示。
祝大家圣诞快乐,2025 年新年快乐。
附件下载
📎 thehour_screenshot.png (78.75 KB)
📎 thehour2.mq5 (9.33 KB)
Source: MQL5 #54446
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录
