Язык программирования MQL5 позволяет решать задачи на совершенно новом уровне. Даже те задачи, которые уже вроде имеют решения, благодаря объектно-ориентированному программированию могут подняться на качественно новый уровень. В данной статье специально взят простой пример проверки появления нового бара на графике, который был преобразован в достаточно мощный и универсальный инструмент. Какой? Читайте в статье.
谢谢你,人类先生。
"长 "和 "短 "信号从何而来,是你自己在代码中写的吗?
假设我们找到了最频繁的模式,这个模式告诉我们什么?我们接下来应该做什么,买入还是卖出?
如果不分为买入和卖出,就不可能计算出模式的总数,从而计算出平均数。
在这种情况下,我更容易用代码来回答。
有一个家伙只是一个侧影。
在我的案例中,只有两个数组(arr_buy和arr_sell) 被用来存储所有模式信息。
在专家顾问强制重启的情况下,这些数据容易保存,所以我们不会丢失统计数据。
在你的案例中,除了一个单一的数组Pattern[index],还有 几个静态变量,你不能没有。
例如,静态int Element[]。
static int PrevIndex = -1;
最初,我也开始用一个阵列写作,但后来我放弃了。
关于识别模式和删除指标的问题:我还没有理解你的代码(没有注释的话就比较复杂)。
PS。我的理解是,你没有可能考虑完全没有信号(没有模式),应该是一直有信号?
理想情况下应该有4个:买入/卖出/未决定/未知(之前未见过),但实际上实施这样的计划并不可行,3个就足够了。
我不明白这个问题,你说的自行开药是什么意思?你是如何想象解释这些模式的?
Arraystatic int Element[] 这样声明只是为了方便,而不是在每次函数调用时为其分配内存。也就是说,静态元素可以被删除。
所有的描述都在这里 给出。这就是为什么,特别是代码中没有注释。
信号,确实一直存在(如你的情况)。但翻转只发生在门槛处。在信号不确定的时刻关闭,因为你有。
我没有这样做。必须有至少3个领域的市场条件(买入/卖出/未定)。也就是说,有两个区域是可以明确识别的,还有一个区域是未定义的状态所属的。
理想情况下应该有4个:买入/卖出/未定义/未知(以前未见过),但在实践中,实施这样的计划并不实际,3个就足够了。
在上述EA代码中,大致是这样做的。有4个状态被写在两个一维数组中,可以以任何方式进一步解释。
1.买入=0,卖出=0,-没有信号
2.买入=1,卖出=0,-买入
3.买入=0,卖出=1,-出售
4.买入=1,卖出=1,--不确定性,有可能买入和卖出,或者保持围观,等待确定性(随你喜欢)。
自己如何解释还不清楚。
说实话,我还没有解析过这些代码。这就是为什么我用简单的话问:写的是什么模式,它们是什么,二进制信号来自哪里,来自历史?这一点并不清楚。
Potterns被记录下来,在每个新的小节 上,有10比特长(如果需要可以添加)。这就产生了1024种不同的信号组合。
图案的每一位都是可供选择的简单(二进制)信号之一(到目前为止已经做了17种,第一个想到的就是这个)。
比如说。
等...
当然,从历史上看,还能从哪里得到,未来是未知的。
输入参数的一些选择。
当然,不好的是,即使2.5岁的TS在市场上不断出现。但这不是问题的关键。
等。