Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ciao Mladen!
Penso che la chiamata del mio iCustom sia giusta, perché in test e normale (esportazione di dati o uso come indi)
funziona bene finora. Penso che il problema sia come hai menzionato il valore double/array.
Quando ora uso un
doppio mom1[];
mom1 = iCustom(NULL,0, "myIndi",0,i);
e che un -> mom(mom1,Bars,20,i);
-> "mom" - parametro conversazione non consentito
Come faccio a scrivere questo correttamente?
Grazie mille e ciao, ATProva così :
Also, change the mom function to be like this :
[PHP]double Mom(double& series[], int period, int totcount, int index) { if (totcount<1 || period<1) return (EMPTY_VALUE); if (indextotcount-1) return (EMPTY_VALUE); return (series-series); }Ciao Mladen!
Grazie per il tuo aiuto!
Il mio problema è che ho bisogno del "const" perché altre parti del programma ne hanno bisogno...
Scrivere "tutto" nuovo è troppo lavoro, quindi la domanda è: posso fare il contrario?
in modo che il mom1 funzioni con la sottofunzione?
Grazie mille e ciao, AT
Ciao Mladen!
Grazie per il vostro aiuto!
Il mio problema è che ho bisogno del "const" perché altre parti del programma ne hanno bisogno...
Scrivere "tutto" nuovo è troppo lavoro, quindi la domanda è: posso fare il contrario?
in modo che il mom1 funzioni con la sottofunzione?
Grazie mille e ciao, ATPuoi usare la funzione mom così com'è (e il resto)
Basta cambiare il mom(mom1,Bars,20,i); in mom(mom1,Bars,20,i);
poi ottengo l'errore:
-> "mom1" - parametro conversazione non consentito
amico questo è complicato... qualche altra idea?
Grazie e ciao, AT
poi ottengo l'errore:
-> "mom1" - parametro conversazione non consentito
amico questo è complicato... qualche altra idea?
Grazie e ciao, ATNon ottengo questo errore
Vedi l'esempio :
double buffer[];
int init() { SetIndexBuffer(0,buffer); return(0); }
int deinit() { return(0); }
int start()
{
double mom = Mom(buffer,10,50,0);
return(0);
}
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}Compila senza alcun errore
Ciao Mladen!
Forse è a causa di una funzione for {}? (per ottenere le barre?) o a causa di...
l'altro punto è: mom1 è un indice personalizzato... mom1 = iCustom(NULL,0, "myIndi",0,i);
che chiamo qui: mom(mom1,Bars,20,i);
Grazie per il tuo aiuto!
Ciao, AT
Ciao Mladen!
Forse è a causa di una funzione for {}? (per ottenere le barre?) o a causa di...
l'altro punto è: mom1 è un indice personalizzato... mom1 = iCustom(NULL,0, "myIndi",0,i);
che chiamo qui: mom(mom1,Bars,20,i);
Grazie per il vostro aiuto!
Ciao, ATNo, non può essere questa la causa
Vedi questo esempio:
double buffer[];
int init() { SetIndexBuffer(0,buffer); return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
buffer = iCustom(NULL,0,"custom name",0,i);
double mom = Mom(buffer,10,50,i);
}
return(0);
}
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}Inoltre, nessun errore del compilatore
Ciao Mladen!
Forse perché il mio codice è più simile a questo, e c'è un "errore"... :-/
#property indicator_chart_window
double buffer[];
int init() { SetIndexBuffer(0,buffer); return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
double mom1;
mom1 = iCustom(NULL,0,"custom name",0,i);
buffer = (
Mom(mom1,10,Bars,i);
);
}
return(0);
}
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
);Grazie e ciao, AT
Ciao Mladen!
Forse perché il mio codice è più simile a questo, e c'è un "errore"... :-/
#property indicator_chart_window
double buffer[];
int init() { SetIndexBuffer(0,buffer); return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
double mom1;
mom1 = iCustom(NULL,0,"custom name",0,i);
buffer = (
Mom(mom1,10,Bars,i);
);
}
return(0);
}
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
);a120
Nel tuo codice mom1 è definito come doppio (semplice variabile doppia) non come array o buffer.
Definiscilo nello stesso modo in cui è definito il "buffer", aggiungilo nella sezione init ai buffer e sarà OK (assicurati di regolare il numero di buffer in modo appropriato)
Ciao Malden!
Grazie per il tuo sostegno ;-)
Anche quando scrivo il codice come mi hai detto:
(Penso di sì...)
#property indicator_chart_window
double buffer[];
double mom1[];
int init() { SetIndexBuffer(0,buffer); SetIndexBuffer(1,mom1);return(0); }
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
for(int i = limit; i>=0; i--)
{
mom1 = iCustom(NULL,0,"custom name",0,i);
buffer = (
Mom(mom1,10,Bars,i);
//doesn't work - no value in indi
// Mom(mom1,10,Bars,i); //error: parameter conversation not allowed
// mom1 // this works
);
}
return(0);
}
double Mom(const double& series[], int period, int totcount, int index)
{
if (totcount<1 || period<1) return (EMPTY_VALUE);
if (indextotcount-1) return (EMPTY_VALUE);
return (series-series);
}
);Quindi quando uso la "prima" versione, non ottengo nessun valore...
Quando uso la seconda versione, ottengo l'errore... hmmm.
Solo chiamare il mom1 funziona... ma questo non è il valore giusto...
Grazie per il vostro aiuto!
Ciao, AT