Necesito determinar el valor mínimo (como se muestra en la imagen) y máximo del indicador MACD para un número determinado de barras. (20 en este caso).
Encontré un código que hace esto para el precio, y estúpidamente traté de reemplazar HIGH LOW con MACD. pero nada funcionó....
Copie los datos del MACD que necesita en el array massMACD[20] y encuentre los valores mínimos ArrayMinimum(massMACD); y máximos ArrayMaximum(massMACD); en ese array.
ALXIMIKS: Insertar al final del macdac personalizado.
P.D. Aunque es más cierto y mejor:
si es así, no funciona....
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: Copie sus datos MACD necesarios en el array massMACD[20] y encuentre en este array mínimo ArrayMinimum(massMACD); y el máximo ArrayMaximum(massMACD); valores.
bien.
la única pregunta es ¿CÓMO se copian los datos en la matriz?
la única pregunta es ¿CÓMO se copian los datos en la matriz?
¿o así?
hombre, es lo mismo, sólo que no es el hecho de que llamar a iMACD tome tantos recursos como su código fuente.
iMACD y todos los iCostums devuelven el valor de un miembro del array, por lo que es necesario hacer un bucle y recogerlos en un buffer para su posterior op
Necesito determinar el valor mínimo (como se muestra en la imagen) y máximo del indicador MACD para un número determinado de barras. (20 en este caso).
Encontré un código que hace esto para el precio, y estúpidamente traté de reemplazar HIGH LOW con MACD. pero nada funcionó....
Copie los datos del MACD que necesita en el array massMACD[20] y encuentre los valores mínimos ArrayMinimum(massMACD); y
máximos ArrayMaximum(massMACD); en ese array.
Insertar al final del macdac personalizado.
P.D. Aunque es más cierto y mejor:
si es así, no funciona....
Copie sus datos MACD necesarios en el array massMACD[20] y encuentre en este array
mínimo ArrayMinimum(massMACD); y
el máximo ArrayMaximum(massMACD); valores.
bien.
la única pregunta es ¿CÓMO se copian los datos en la matriz?
¿o así?
si es así, no funciona....
Al final del MACD personalizado:
Navegador ==> Indicadores personalizados ==> MACD ==> PCM (botón derecho del ratón) ==> Editar ==>
genial.
la única pregunta es ¿CÓMO se copian los datos en la matriz?
¿o así?
hombre, es lo mismo, sólo que no es el hecho de que llamar a iMACD tome tantos recursos como su código fuente.
iMACD y todos los iCostums devuelven el valor de un miembro del array, por lo que es necesario hacer un bucle y recogerlos en un buffer para su posterior op
no es cierto, porque sólo obtienes un valor y necesitas 20, así que usa un bucle:
Al final del MACD personalizado:
Navegador ==> Indicadores personalizados ==> MACD ==> PCM (botón derecho del ratón) ==> Editar ==>
funciona :)
Sólo que ciertamente no hace lo que necesito que haga, pero intentaré utilizarlo como ejemplo.
gracias
empecemos por el principio.
¿es suficiente para copiar 20(19 lo que sea) valores de indicadores en un array?
empecemos por el principio.
¿es suficiente con copiar 20(19 lo que sea) valores de indicadores en un array?
Seamos claros, si alguien necesita algo y yo sé algo - estoy feliz de tratar de ayudar a esa persona,
pero no voy a limpiarles el culo después de cada pedo.
Sí, es suficiente si declaró el array estático double MACDBuffer[20] y no es suficiente si declaró el array dinámico double MACDBuffer[].
artmedia70 te lo ha dicho .
Seamos claros, si alguien necesita algo y yo sé algo, estoy encantado de intentar ayudar a esa persona,
Pero no voy a limpiarle el culo después de cada pedo.
Sí, es suficiente si declaró el array estático double MACDBuffer[20] y no es suficiente si declaró el array dinámico double MACDBuffer[].
artmedia70 te lo ha dicho .
Bien, hagámoslo estático.
¿por qué imprime 19__0?
Bien, que sea estático.
¿por qué imprime 19__0?
porque funciona bien. ¿Algo más?