Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¡Hola Mladen!
Creo que la llamada de mi iCustom es correcta, porque en prueba y normal (exportando datos o usando como indi)
funciona bien hasta ahora. Creo que el problema es como mencionas el valor double/array.
Cuando ahora uso un
double mom1[];
mom1 = iCustom(NULL,0, "miIndi",0,i);
y que a -> mom(mom1,Bars,20,i);
-> "mom" - parámetro conversación no permitido
¿Cómo escribo esto correctamente?
Muchas gracias y adiós, ATPrueba así :
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); }¡Hola Mladen!
¡Gracias por tu ayuda!
Mi problema es que necesito la "const" porque otras partes del programa la necesitan...
Escribir "todo" nuevo es demasiado trabajo, así que la pregunta es, ¿puedo hacerlo al revés,
para que el mom1 funcione con la subfunción?
Muchas gracias y adiós, AT
¡Hola Mladen!
¡Gracias por tu ayuda!
Mi problema es que necesito la "const" porque otras partes del programa la necesitan...
Escribir "todo" nuevo es demasiado trabajo, así que la pregunta es, ¿puedo hacerlo al revés
para que la mom1 funcione con la subfunción?
Muchas gracias y adiós, ATPuedes usar la función mom como está (y el resto)
Sólo tienes que cambiar el mom (mom1,Bar s,20,i); por mom(mom1,Bars,20,i);
entonces me sale el error:
-> "mom1" - parámetro conversación no permitido
hombre esto es complicado... ¿alguna otra idea?
Gracias y adiós, AT
luego me sale el error
-> "mom1" - parámetro conversación no permitido
hombre esto es complicado... ¿alguna otra idea?
Gracias y adiós, ATNo me sale ese error
Ver el ejemplo :
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 sin ningún error
¡Hola Mladen!
¿Tal vez sea por una función for {}? (¿para obtener las Barras?) o por...
el otro punto es: mom1 es un indi personalizado... mom1 = iCustom(NULL,0, "myIndi",0,i);
que llamo aquí: mom(mom1,Bars,20,i);
¡¡Gracias por tu ayuda!!
Adiós, AT
¡Hola Mladen!
¿Tal vez sea por una función for {}? (¿para obtener las Barras?) o por...
el otro punto es: mom1 es un indi personalizado... mom1 = iCustom(NULL,0, "myIndi",0,i);
que llamo aquí: mom(mom1,Bars,20,i);
¡¡Gracias por tu ayuda!!
Adiós, ATNo, esa no puede ser la causa
Vea este ejemplo :
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);
}Además, no hay errores de compilación en absoluto
¡Hola Mladen!
Quizás porque mi código se parece más a esto, y hay un "error"... :-/
#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);
}
);Gracias y adiós, AT
¡Hola Mladen!
Quizás porque mi código se parece más a esto, y hay un "error"... :-/
#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);
}
);at120
En tu código mom1 está definida como double (simple variable doble) no como array o buffer.
Defínelo de la misma manera que se define el "buffer", añádelo en la sección init a buffers y estará bien (asegúrate de ajustar el número de buffers adecuadamente)
¡Hola Malden!
Gracias por tu apoyo ;-)
Incluso, cuando escriba el código como me dijiste:
(creo que 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);
}
);Entonces, cuando uso la "Primera" versión, no obtengo ningún valor..
Cuando uso la segunda versión, obtengo el error... hmmm.
Solo funciona la llamada al mom1... pero este no es el valor correcto...
¡Gracias por su ayuda!
Adiós, AT