double MACDBuffer[];
double SignalBuffer[];
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,12,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,26,0,MODE_EMA,PRICE_CLOSE,i);
//---- signal line counted in the 2-nd bufferfor(i=0; i<limit; i++)
SignalBuffer[i]=iMAOnArray(MACDBuffer,Bars,9,0,MODE_SMA,i);
//t=MACDBuffer[0];//Print(t*10000);//---- doneint max,min;
staticdouble maxlast,minlast;
max = ArrayMaximum(MACDBuffer,20,1);
min = ArrayMinimum(MACDBuffer,20,1);
if (MACDBuffer[max]!=maxlast){
maxlast=MACDBuffer[max];
ObjectDelete ("highline");
ObjectCreate ("highline",1,WindowOnDropped( ) ,0,MACDBuffer[max],0,0);
}
if (MACDBuffer[min]!=minlast){
minlast=MACDBuffer[min];
ObjectDelete ("lowline");
ObjectCreate ("lowline",1,WindowOnDropped( ) ,0,MACDBuffer[min],0,0);
Print(min,max);
}
return(0);
}
我需要确定给定条数的最小(如图所示)和最大MACD指标值。(本例中为20)。
我找到了一个对价格进行处理的代码,并愚蠢地尝试用MACD替换HIGH LOW。但没有任何效果....。
将你需要的MACD数据复制到massMACD[20]数组中,并在该数组中找到最小ArrayMinimum(massMACD);和
最大ArrayMaximum(massMACD);值。
在自定义macdac的末尾插入。
P.S. 虽然它更真实,更好。
如果是这样的话,它就不起作用了....
将你需要的MACD数据复制到数组massMACD[20],并在该数组中找到
最小值 ArrayMinimum(massMACD);和
最大 ArrayMaximum(massMACD); values.
很好。
唯一的问题是他们如何将数据复制到阵列中?
还是像这样?
如果是这样的话,它就不起作用了....
在 自定义 MACD的最后。
导航器 ==>自定义指标==> MACD ==> PCM(鼠标右键) ==> 编辑 ==>
伟大的。
唯一的问题是他们如何将数据复制到阵列中?
还是像这样?
人,这是同一件事,只是调用iMACD 需要和它的源代码一样多的资源,这不是事实。
iMACD和所有的iCostums都返回一个数组成员的值,所以你需要循环浏览并将它们收集到一个缓冲区,以便进一步操作。
不对,因为你只得到一个值,而你需要20个,所以用一个循环。
在 自定义 MACD的最后。
导航器 ==> 自定义指标 ==> MACD ==> PCM(鼠标右键) ==> 编辑 ==>
它的作用:)
只是它肯定做不到我需要它做的事,但我会试着利用它作为一个例子。
谢谢
让我们从头开始。
这足以将20(19个什么)个指标值复制到一个数组中吗?
让我们从头开始。
把20(19什么的)个指标值复制到一个数组中就可以了吗?
我们要清楚,如果有人需要什么,而我知道什么--我很乐意尝试帮助那个人。
但我不会在他每次放屁后给他擦屁股。
是的,如果你声明静态数组 doubleMACDBuffer[20] 就够了 , 如果你声明动态数组 doubleMACDBuffer[] 就不够了。
artmedia70 告诉你。
我们要清楚,如果有人需要什么,而我知道什么,我很乐意尝试帮助那个人。
但我不会在每次放完屁后给他擦屁股。
是的,如果你声明静态数组 doubleMACDBuffer[20] 就够了 , 如果你声明动态数组 doubleMACDBuffer[] 就不够。
artmedia70 告诉你。
好吧,让我们把它变成静态的。
为什么打印19__0?
好吧,让它成为静态的。
为什么打印19__0?
因为它工作得很好。还有什么事吗?