Ho bisogno di determinare il valore minimo (come mostrato nell'immagine) e massimo dell'indicatore MACD per un dato numero di barre. (20 in questo caso).
Ho trovato un codice che fa questo per il prezzo, e stupidamente ho provato a sostituire HIGH LOW con MACD. ma niente ha funzionato....
Copia i dati MACD che ti servono nell'array massMACD[20] e trova i valori minimi ArrayMinimum(massMACD); e massimi ArrayMaximum(massMACD); in quell'array.
ALXIMIKS: Inserire alla fine del macdac personalizzato.
P.S. Anche se è più corretto e migliore:
se è così, non funziona....
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);
}
artmedia70: Copiate i vostri dati MACD richiesti nell'array massMACD[20] e trovate in questo array minimo ArrayMinimum(massMACD); e il massimo ArrayMaximum(massMACD); valori.
amico, è la stessa cosa, solo che non è il fatto che chiamare iMACD richiede tante risorse quanto il suo codice sorgente.
iMACD e tutti gli iCostum restituiscono il valore di un membro dell'array, quindi è necessario eseguire un ciclo e raccoglierli in un buffer per ulteriori operazioni
Ho bisogno di determinare il valore minimo (come mostrato nell'immagine) e massimo dell'indicatore MACD per un dato numero di barre. (20 in questo caso).
Ho trovato un codice che fa questo per il prezzo, e stupidamente ho provato a sostituire HIGH LOW con MACD. ma niente ha funzionato....
Copia i dati MACD che ti servono nell'array massMACD[20] e trova i valori minimi ArrayMinimum(massMACD); e
massimi ArrayMaximum(massMACD); in quell'array.
Inserire alla fine del macdac personalizzato.
P.S. Anche se è più corretto e migliore:
se è così, non funziona....
Copiate i vostri dati MACD richiesti nell'array massMACD[20] e trovate in questo array
minimo ArrayMinimum(massMACD); e
il massimo ArrayMaximum(massMACD); valori.
bene.
l'unica domanda è COME copiano i dati nell'array?
o come questo?
se è così, non funziona....
Alla fine del MACD personalizzato:
Navigator ==> Indicatori personalizzati ==> MACD ==> PCM (tasto destro del mouse) ==> Modifica ==>
grande.
l'unica domanda è COME copiano i dati nell'array?
o come questo?
amico, è la stessa cosa, solo che non è il fatto che chiamare iMACD richiede tante risorse quanto il suo codice sorgente.
iMACD e tutti gli iCostum restituiscono il valore di un membro dell'array, quindi è necessario eseguire un ciclo e raccoglierli in un buffer per ulteriori operazioni
non è vero, perché si ottiene solo un valore e ne servono 20, quindi usate un ciclo:
Alla fine del MACD personalizzato:
Navigator ==> Indicatori personalizzati ==> MACD ==> PCM (tasto destro del mouse) ==> Modifica ==>
funziona :)
Solo che certamente non fa quello che mi serve, ma cercherò di usarlo come esempio.
grazie
Cominciamo dall'inizio.
è sufficiente per copiare 20(19 qualsiasi) valori di indicatori in un array?
Cominciamo dall'inizio.
è sufficiente copiare 20(19 qualsiasi) valori di indicatori in un array?
Siamo chiari, se qualcuno ha bisogno di qualcosa e io so qualcosa - sono felice di provare ad aiutare quella persona,
ma non ho intenzione di pulirgli il culo dopo ogni scoreggia.
Sì, è sufficiente se avete dichiarato array statico doppio MACDBuffer[20] e non è sufficiente se avete dichiarato array dinamico doppio MACDBuffer[].
artmedia70 te l'ha detto .
Siamo chiari, se qualcuno ha bisogno di qualcosa e io so qualcosa, sono felice di provare ad aiutare quella persona,
Ma non ho intenzione di pulirgli il culo dopo ogni scoreggia.
Sì, è sufficiente se avete dichiarato array statico doppio MACDBuffer[20] e non è sufficiente se avete dichiarato array dinamico doppio MACDBuffer[].
artmedia70 te l'ha detto .
Ok, rendiamolo statico.
perché stampa 19__0?
Ok, che sia statico.
perché stampa 19__0?
perché funziona bene. C'è altro?