Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
我在写一个指标:... int handle; double indicatorBuffer[]; ...。 int OnInit() { ...。handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA,AppPrice); ... }
int OnCalculate (const int rates_total, //size of array price[] const int prev_calculated, // processed bars at previous call const int begin, // where significant data start const double& price[] ) // array for calculation { .做点什么
该顾问使用
从第0个条形图中取值,它的指标缓冲区的值在每一个刻度上都会改变,直到蜡烛收盘。是的,我做了实验,但实质上并没有解决主要问题,即如何使EA不仅在要求的条形上,而且在几个条形上重新计算指标缓冲区
一个解决方案可能已经被发现了!其中之一是...
然而,为此,你必须制作一个特殊版本的指标。
先生们。
我在写一个指标:...
int handle;
double indicatorBuffer[];
...。
int OnInit()
{
...。handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA,AppPrice);
...
}
int OnCalculate (const int rates_total, //size of array price[]
const int prev_calculated, // processed bars at previous call
const int begin, // where significant data start
const double& price[] ) // array for calculation
{
.做点什么
问题是--如何让handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA, AppPrice)知道什么是AppPrice?
,或者如何从参数 标签中提取Apply to: 以在代码中使用?
提前感谢...
先生们。
问题是 - 如何让handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA, AppPrice)知道什么是AppPrice?
或者如何从参数 标签中提取Apply to: 用于代码中?
提前谢谢你...
见OnCalculate()。
用户在 "参数 "选项卡中启动指标时,可选择必要的时间序列或指标作为价格[]阵列。要做到这一点,你应该在 "应用于 "领域的下拉列表中指定必要的项目。

为了从其他mql5程序中接收自定义指标的值,使用了iCustom() 函数,它返回指标句柄用于后续操作。你也可以指定 适当的价格[]数组或其他指标的句柄。 该参数应在 自定义指标的输入变量列表中最后 传递。见OnCalculate()。
Rosh 谢谢,但我的问题正是如此。我应该在操作员中指定什么
handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA, AppPrice)
作为AppPrice?
我正在非常仔细地阅读现有的帮助。也许高温已经造成了损失,但是......。
Rosh 谢谢,但我的问题正是如此。我应该在声明中说明什么
handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA, AppPrice)
作为AppPrice?
我非常仔细地阅读了现有的帮助。也许高温已经造成了损失,但是......。
Rosh 谢谢,但我的问题正是如此。我应该在声明中说明什么
handleMA = iMA(_Symbol, _Period, periodMA, shiftMA, MODE_SMA, AppPrice)
作为AppPrice?
我非常仔细地阅读了现有的帮助。也许高温已经造成了损失,但是......。
热量。你应该指定ENUM_APPLIED_PRICE 为AppPrice)
斯旺,谢谢你的关注。但如果你用
输入ENUM_APPLIED_PRICE AppPrice=PRICE_CLOSE;而第一个表格
int OnCalculate (const int rates_total, // size of array price[] )。
const int prev_calculated, // 在上一次调用时处理过的条形图
const int begin, //重要数据从哪里开始
const double& price[]) // 用于计算的数组
我们在编译时得到一个警告信息:有两个OnCalculate函数被定义。将使用价格数据函数NameIndicator.mq5 (pg)。
和price[]数组仍然与AppPrice没有任何联系,除非它与第三个标签 "参数 "中的Apply to: 相同。
事实上,问题是,如果price[]数组以某种方式被使用,是否可以使用内置的单缓冲区指标,如iMA()和第一个intCalculate()表格。
计算中使用的。
如果你想在另一个指标的数据上进行计算,请指定指标手柄。或将计算指标的价格类型。
我们(不如说是我)有一些误解。
事实上,问题是我们是否可以使用内置的单缓冲区指标,如iMA()和intOnCalculate() 的第一种形式,如果price[]数组以某种方式在计算中使用
。
我们(不如说是我)有一些误解。
事实上,问题是,如果价格[]数组以某种方式出现,人们是否可以使用iMA()类型的内置单缓冲器指标和第一种形式的int OnCalculate()。
计算中使用的。
你的AppPrice 参数与OnCalculate()没有关系。
你可以给它一个价格常数 的值(选项1)或其他指标的柄(选项2)。然后你就可以。
第1种变体。
第二种变体。