条件扫描仪 - MetaTrader 4脚本


状态扫描仪 (cs)
演示扫描仪的功能:
所有扫描通用的代码:
PP(Power Pro)策略具体的代码:
MAX(移动平均线交叉)策略的具体代码:
id以csXXXX开头的代码:
我如何针对新条件进行编码:
我决定策略标识符(例如 pinbars 的 PB)。
我按照上面的“演示扫描仪的功能”设置了窗口,删除了任何现有的指示器。
如果我的新扫描依赖于图表指标,我会使用 csXXXX_0.mq4 作为模式来构建它们。我记得“另存为...”csPB_0.mq4。我将自定义指标应用于左侧图表。
如果我需要一个单独的窗口指示器,我也会构建它。我记得“另存为...”csPB_1.mq4。我将其应用于左手图表。
我构建自定义指标而不是使用标准指标,以便我可以使用 iCustom 函数在其他地方引用它们。这样,如果我改变了我的策略的基本参数(例如移动平均法)的想法,我只需更改我的自定义指标。如果我使用标准指标,我将不得不更改它们,然后深入研究代码的内部以适应我的想法变化。
我获取 csXXXX_Chart.mq4,将“XXXX”的所有实例替换为我的策略标识符“PB”,并将代码保存为 csPB_Chart.mq4。它还无法编译,因为还有一些“包含”代码需要编写。
现在提供“包含”代码。
如果我想要测试的条件非常简单,我只需使用“包含”文件 csXXXX_GetBarFlag.mqh,编写我想要的内容,然后“另存为...”csPB_GetBarFlag.mqh。但如果编码很棘手,我会返回到之前创建的 csPB_Chart.mq4,注释掉现在显示为“#include
现在可以编译“csPB_Chart.mq4”文件并将其应用于左侧图表。
此时,我将左侧图表的模板保存为 csPB-CHART.tpl。它包含任何图表上的自定义指标、单独窗口自定义指标以及应用于当前图表的结果图
我加载文件“csXXXX_Panel.mq4”,将“XXXX”的所有实例替换为“PB”,然后“另存为...”“csPB_Panel.mq4”。最后一个文件被编译并应用于右侧图表。首次应用时运行可能会有点慢,但运行时不会使用太多资源。
我将 csPB_panel.tpl 存储为右侧图表的模板。
然后我通常会将 csPB 存储为配置文件。
笔记:当构建自定义指标并使用 iCustom 函数引用它们时,我会注意名称完全正确。如果 iCustom 引用不存在的指标,您不会收到警告。
笔记:可能存在一个错误,当首次加载面板指标时,它会产生与显示的特定图表上的结果不一致的结果。我发现如果我更改面板窗口上的时间刻度(从而强制重新计算),一切都会正确。如果有人能指导我解决这个问题,我将不胜感激。
笔记:在您自己开发的 ...GetBarFlag.mqh 代码中,您可以将任何整数返回到调用程序以进行显示。正如代码所示,零表示“无结果”,并导致显示灰色翼形,指示测试了哪个条。返回负整数将导致红色显示,而返回正整数将导致绿色显示。
该软件的一些方面:
该代码被编写为指标,以便当显示面板并且您想要查看特定货币对和时间范围时,您只需从“市场观察”窗口中选择该货币对,将其拖放到当前图表空间并更改时间范围以适应。模板负责其余部分。
为了减少计算机过载,我做了两件事。
首先,在处理时间序列数组时,我大多只返回 200 个柱。
其次,面板显示软件不会每次都测试用户的状况。它使用计时器机制,仅当 bar[0] 形成 90% 时才对 bar[0] 进行测试,否则对 bar[1] 进行测试。如果 bar[1] 具有焦点(即 bar[0] 形成率小于 90%),则测试一次并计算切换到 bar[0] 的时间。对于到达转换时间之前出现的每个后续蜱虫,什么也不会发生。我还不能 100% 确定我已经正确编码了,但它似乎工作得很好。
附件下载
Source: MQL5 #11135
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
