//+-------------------------------------------------------------------------------------+//| Расчитываем количество идущих один за одним баров одного признака |//+-------------------------------------------------------------------------------------+int LastCandlesType(int directionMA)
{
int cntUp, // Счётчик идущих друг за другом свечей с..
cntDn; // .. требуемыми признакамиfor (int i=i_AnyBarsToHistory; i>=1; i--)
{
if (directionMA == CROSS_UP)
{
if ((Open[i] - Close[i]) >= i_sizeOfSequentialCorrectionBar * pt) // Если бар соответствует требуемым признакам..
cntDn++; // .. прибавим 1 к счётчикуif ((Close[i] - Open[i]) >= i_sizeOfTrandBar * pt) // Если бар, не соответствует основному признаку..
cntDn = 0; // .. счётчик обнуляемif (cntDn == i_sequentBarsСount) // Если cnt баров в подряд медвежьи..return (REQUIRED_SEQUENTIAL_BEARS_GOT); // .. Выходим из функции
}
if (directionMA == CROSS_DN)
{
if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt) // Если бар соответствует требуемым признакам..
cntUp++; // .. прибавим 1 к счётчикуif ((Open[i] - Close[i]) >= i_sizeOfTrandBar * pt) // Если бар, не соответствует основному признаку..
cntUp = 0; // .. счётчик обнуляемif (cntUp == i_sequentBarsСount) // Если cnt баров в подряд бычьи..return (REQUIRED_SEQUENTIAL_BULLS_GOT); // .. Выходим из функции
}
}
}
总之,我需要帮助,为我的TS(第3点)写一个平仓的函数,并将现有的代码改编为函数。
请看这里。;)
但有一点。在那里,无论如何,表达式输出的一个变化都不会解决问题。毕竟,在发生归零的时候,开盘价和收盘价必须被 "调换 "出来。
你似乎搞错了。毕竟,+(a-b)=a-b,-(a-b)=-a-(-b)=-a+b=b-a。随着标志的改变,他们确实改变了位置。
Vadim 前段时间写道,把一个函数放在一个循环里,会使代码的执行速度降低一个数量级。
就我对Vadim的理解,他是指在一个循环中调用一个用户函数。
也许你应该开设你自己的分支机构。为什么需要 "新手的分支"?
我使cntUp 和cntDn 计数器不同,因为它可能一次有一个值,然后在通过计算条的循环进行计算时有另一个值。 而计数器可以对一个数值进行求和,并继续对另一个数值进行求和。而如果有一个变量,一个属性的条数将被添加到另一个属性的条数计数器中。
那里的柜台是不同的。如果蜡烛图向相反的方向发展,计数器就会按公式重新设置。也许我没有理解你。唯一的问题是,它可能工作得更慢。当我有机会时,我会测试它。
现在,如果我可以简单地包裹幂函数,如果下一个权重比上一个权重更重要,我为什么要取最后一个权重呢?我甚至不问为什么要使用递归,因为递归后的最终权重可以通过一个公式得出(见F(n,x)和y(n,x))。
去吧,去开一个类似 "EMA问题 "的主题,并附上一个matkad文件。你的帖子只会在这里消失。在另一个主题中,数学大师们应该能把它分解开来。
你可能是指问题的答案会丢失。好吧,我开一个主题,编辑那个帖子,我就写动了。
看这个。;)
嗯,谢谢。这些是优化的结果吗?
你似乎搞错了。因为+(a-b)=a-b,-(a-b)=-a-(-b)=-a+b=b-a。随着标志的改变,他们确实改变了位置。
因此,从数学上我们知道,减去负数就能得到正数。而加号到减号则是减号。但这是我第一次听说变量互换的情况。
就我对Vadim的理解而言,他是指在循环中调用用户函数。
我在那里有一个用户功能。这里是初始函数本身未被缩短的形式,因为它暂时不能像我希望的那样工作,所以我决定不使它通用。
在循环内部,从一个接收普通信号的函数中,这个变量得到它的值并通过参数传递。
int directionMA = GetStateOfMA();
嗯,是的,为什么新手需要了解挥舞机的解剖和时期呢)))我和初学者没有什么不同,也许只是因为我是文盲,所以我在努力用我的大脑去了解一切。
你错了。事实上,不存在文盲的问题。你在这里有这样的想法,很多新手都不理解......
那里有一个不同的柜台。如果蜡烛走到另一个方向,公式会重置计数器。还是我误解了你的意思。唯一的问题是,它可能工作得更慢。我有机会的话会测试一下。
是的,但是我们有一个计数器,其数值是按照从索引为i_AnyBarsToHistory 的柱子到索引为1 的柱子出现 的顺序计算的。由此可见,如果条件将在指数30 到指数15 的条形上得到满足。
然后,例如在cnt=2 时,条件将得到满足。
然后cnt将被递增到之前的值。如果我们有2,新的条件将以1递增,然后cnt=3,我们将以值3退出函数。你明白我的意思吗?仔细看看,这里的逻辑基本上是很明显的。
下午好。
有没有人有在EA中 改变指标 参数的经验?
取决于波动性(如MA参数) ?
或者你可以给我一个链接来阅读
下午好。
有没有人有在EA中改变指标参数的经验?
取决于波动性(如MA参数) ?
或者你可以给我一个链接来阅读
如果你了解什么是muving,这种问题就会自行消失。
如果你了解什么是muving,这种问题就会自己消失。
适应性MA