//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 17.05.2008 |//| Описание : Возвращает значение максимального элемента массива. |//+----------------------------------------------------------------------------+//| Параметры: |//| x - массив значений числового ряда |//+----------------------------------------------------------------------------+double ArrayMax(double& x[]) {
if (ArraySize(x)>0) return(x[ArrayMaximum(x)]);
else {
Print("ArrayMax(): Массив пуст!");
return(0);
}
}
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recountedif(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd counted in the 1-st bufferfor(int i=0; i<limit; i++)
MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- signal line counted in the 2-nd bufferfor(i=0; i<limit; i++)
SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- donereturn(0);
}
看看 这篇文章,它并不像听起来那么简单,一般来说,它是相当有用的。
我看了一下。我需要一个星期的时间来详细研究。但更糟糕的是,我找不到任何与我的任务有关的地方。我不给指标着色,也不以任何方式修改它们。我只想在最后n个柱子上找到高点和低点。在RSI_Extremums_Sample.mq4 有一丝相似之处 ,但我不能做那个代码。有许多不必要的东西,指标的绘制....而且我不需要它...
我看了看。我需要一个星期来详细研究它。但更糟糕的是,我找不到任何与我的任务有关的地方。我不给指标上色,也不以任何方式修改它们。我只想在最后n个柱子上找到最大值和最小值。在RSI_Extremums_Sample.mq4 有一丝相似之处 ,但我不能处理这个代码。它太多余了,指标DRAWNS ....而且我不需要它...
是否可以用 "ArrayMaximum "函数来计算一个自定义指标的最近最大值?
还是我需要其他功能来实现?
我曾这样试过。
而且什么都没有出来。大师们,你们能告诉我怎么做吗?我唯一不明白的是,如何计算MACD指标的极值,而不是计算N个时期的价格极值?
我想我需要把关键区块中的HIGH和LOW改为MACD...但我不明白......我所有的胡闹尝试都以无效告终。
我知道我需要创建一个MACD阵列...
双MACDBuffer[]。
我也在其他专家顾问系统中看到过这样的字符串
但我不能只在另一个上测量...
请告知如何做到这一点?
文章.
在Kim的文章中发现了类似的内容
问题:我如何创建一个指标值的数组?
在Kim的文章中发现了类似的内容
问题:如何创建一个指标值的数组?
我重新读了问的内容,我一开始就搞错了 (
为了获得指标数据的缓冲区,你可以
1) 运行一个循环,收集缓冲区 内的iMACD值
2)从MACD中获取源代码,那里有一个缓冲区。
重新读了一下问题,一开始就弄错了(
要获得一个指标数据的缓冲区,你可以。
1) 运行一个循环,收集缓冲区内的iMACD值
2)从缓冲区所在的MACD中获取源代码
我如何将缓冲区可视化,否则我不明白该如何处理....
Print(MACDBuffer[1]); ? ? 它打印的是0......为什么?理论上它应该是第一个bar.... 的值。
还有一件事...当有一个直接的函数iMACD时,为什么要用MA计算MACD?
我怎样才能使缓冲区可视化,否则我不知道该怎么做....。
Print(MACDBuffer[1]); ? ? 它打印的是0...为什么?它应该是第一条的值....。
还有一件事...为什么要用MA计算MACD,因为有一个直接的函数iMACD?
请告诉我你需要什么。
但它应该更清楚,这样即使是一个哑巴也能理解。
请告诉我你想要什么。
但要以清晰的方式,让哑巴也能理解。
我需要确定MACD指标 在给定条数下的最小值(如图片上)和最大值。(本例中为20)。
我找到了为价格做这件事的代码,并愚蠢地试图用MACD替换HIGH LOW。但没有任何效果....。
赋予一个好的故事是DC的工作。他们很懒惰,总是责怪主持人。
谢谢你!
我需要确定给定条数的最小(如图所示)和最大MACD指标值。(本例中为20)。
我找到了一个对价格进行处理的代码,并愚蠢地尝试用MACD替换HIGH LOW。但没有任何效果....。
PS.虽然这更正确,也更好。