Ayuda a la codificación - página 462

 
wranger:
Hola mladen, gracias por indicarme la dirección correcta. No sé si mi última respuesta fue a través de pero acabo de descargar este:

Forex TSD - forex forum - Descargar Angle of NonLag MA 1.01.mq4

Y esto se parece a lo que estaba buscando.

Sin embargo, vi una versión anterior de allí que tenía exactamente lo que tenía en mente sin embargo:

https://www.mql5.com/en/forum/173056/page4 (file Forex TSD - forex forum - Download !!! Angle of average.mq4 )

Desafortunadamente eso no funciona más para el presente mt4.... ¿es posible hacer una versión de MA en gráfico de este Forex TSD - foro de forex - Descargar ángulo de NonLag MA 1.01.mq4?

wranger

La versión actualizada de "ángulo de promedio" compatible con el nuevo mt4 como se publicó aquí : https://www.mql5.com/en/forum/173056/page5

 

hola, ¿qué tengo que añadir al código del indicador, si quiero ver el precio que activó la alarma en la ventana de alarma?

 

HI Mladen,

Voy a pedirte un gran favor ..... ¿Puede usted por favor cambiar este código a Mt4 indicador ..... Está escrito en lenguaje Amibroker ...

¿Puede usted por favor me ayude .... Se puede cambiar a azul, rojo y gris de color neutro en la versión del histograma.

Muchas gracias.

*************************************************************

_SECCIÓN_BEGIN("Impulso del Anciano");

radius = 0.1 * Status("pxheight"); // obtener la altura en píxeles del gráfico y usar el 45% para el radio del gráfico circular

textoffset = 0.1 * radius;

GfxSelectFont("Arial", 9, 500, True );

///////////////////////////////////////////////////

SetChartOptions(0,chartShowArrows|chartShowDates);

EnableTextOutput(False);

// Parámetro definido por el usuario para los periodos EMA

EMA_Type = Param("EMA-1, TEMA-2, JMA-3", 2, 1, 3, 1);

EMA_prds = Param("EMA_periods", 7, 1, 30, 1);

Std_MACD = Param("Standard MACD? No-0, Yes-1", 1, 0, 1, 1);

Plot_fashion = Param("Bar+Arrows-1, Impulse Bars-2", 2, 1, 2, 1);

// Permitir al usuario definir la ubicación y altura de la cinta semanal y mensual

WR_P1 = Param("Ubicación de la Cinta Semanal", 5.2, -1000, 1000, 0.1);

WR_P2 = Param("Weekly Ribbon Height", 199, -0.001, 500, 0.1);

// Calcular el histograma EMA y MACD

if(Tipo_EMA == 1)

{

DayEMA = EMA(Close, EMA_prds);

}

if (EMA_Type == 2)

{

DayEMA = TEMA(Close, EMA_prds);

}

Histograma = MACD() - Señal();

// Determina si tenemos un impulso hacia arriba, hacia abajo o ninguno

Impulse_Up = DayEMA > Ref(DayEMA, -1) AND Histogram > Ref(Histogram, -1);

Impulse_Down = DayEMA < Ref(DayEMA, -1) AND Histogram < Ref(Histogram, -1);

Impulse_None = (NOT Impulse_UP) AND (NOT Impulse_Down);

// Calcula el MACD semanal y determina si es alcista o bajista

TimeFrameSet(inWeekly);

if (Std_MACD == 0)

{

MACD_val = MACD(5, Cool);

Signal_val = Signal(5, 8, 5);

}

else

{

MACD_val = MACD(12, 26);

Signal_val = Signal(12, 26, 9);

}

Hist_in_w = MACD_val - Signal_val;

wh_rising = Hist_in_w > Ref(Hist_in_w, -1);

wh_falling = Hist_in_w < Ref(Hist_in_w, -1);

wh_none = (NOT wh_rising) AND (NOT wh_falling);

TimeFrameRestore();

// Ahora obtenga el histograma mensual del MACD....

TimeFrameSet(inMonthly);

MACD_val = MACD(5, 8);

Signal_val = Signal(5, 8, 5);

Hist_in_m = MACD_val - Signal_val;

mh_rising = Hist_in_m > Ref(Hist_in_m, -1);

mh_falling = Hist_in_m < Ref(Hist_in_m, -1);

TimeFrameRestore();

wh_rising = TimeFrameExpand( wh_rising, inWeekly, expandLast );

wh_falling = TimeFrameExpand( wh_falling, inWeekly, expandLast);

wh_none = TimeFrameExpand( wh_none, inWeekly, expandLast);

mh_rising = TimeFrameExpand(mh_rising, inMonthly, expandLast);

mh_falling = TimeFrameExpand(mh_falling, inMonthly, expandLast);

kol = IIf( wh_rising, colorBrightGreen, IIf(wh_falling, colorRed, IIf(wh_none, colorCustom11, colorLightGrey));

mkol = IIf( mh_rising, colorBlue, IIf(mh_falling, colorRed, colorLightGrey));

if (Plot_fashion == 1)

{

}

else

{

bar_kol = IIf(impulso_ARRIBA, colorVerdeBrillo, IIf(impulso_ABAJO, colorRojo, colorCustom11));

}

Impulse_State = WriteIf(Impulse_Up, "Bulllish", WriteIf(Impulse_Down, "Bearish", "Neutral"));

GfxTextOut( "ESTADO DE IMPULSO = " +Estado_de_impulso, textoffset + 0, 30 );

// Establecer el color de fondo de la columna de estado de impulso

Impulse_Col = IIf(Impulse_Up, colorGreen, IIf(Impulse_Down, colorRed, colorGrey40));

bars_in_bull = Min(BarsSince(impulse_none), BarsSince(impulse_down));

bars_in_bear = Min(BarsSince(impulse_up), BarsSince(impulse_none));

bars_in_neut = Min(BarsSince(impulse_down), BarsSince(impulse_up));

// Establecer una única variable para mostrar el número de barras en el estado actual dependiendo de

// el estado actual del impulso - alcista, bajista o neutro

bars_in_state = IIf(Impulse_Up, bars_in_bull, IIf(Impulse_down, bars_in_bear, bars_in_neut));

//pivote semanal

k1=-1;

SetChartBkColor(16 ) ;

k=IIf(ParamList("select type", "daily|next day")=="daily",-1,0);

k1=-1;

TimeFrameSet(inDaily);

day_h= LastValue(Ref(H,K));

day_l= LastValue(Ref(L,K));

day_c= LastValue(Ref(C,K));

TimeFrameRestore();

// día

WriteVal( StochK(39) - StochK(12) );

GfxSelectFont("Arial", 8 );

_SECTION_END();

Gracias una vez más...

 
rpasupathy:
HI Mladen,

Te voy a pedir un gran favor ..... ¿Puede usted por favor cambiar este código a Mt4 indicador ..... Está escrito en lenguaje Amibroker ...

¿Puede usted por favor me ayude .... Se puede cambiar a azul, rojo y gris de color neutro en la versión del histograma.

Muchas gracias.

*************************************************************

_SECCIÓN_BEGIN("Impulso del Anciano");

radius = 0.1 * Status("pxheight"); // obtener la altura en píxeles del gráfico y usar el 45% para el radio del gráfico circular

textoffset = 0.1 * radius;

GfxSelectFont("Arial", 9, 500, True );

///////////////////////////////////////////////////

SetChartOptions(0,chartShowArrows|chartShowDates);

EnableTextOutput(False);

// Parámetro definido por el usuario para los periodos EMA

EMA_Type = Param("EMA-1, TEMA-2, JMA-3", 2, 1, 3, 1);

EMA_prds = Param("EMA_periods", 7, 1, 30, 1);

Std_MACD = Param("Standard MACD? No-0, Yes-1", 1, 0, 1, 1);

Plot_fashion = Param("Bar+Arrows-1, Impulse Bars-2", 2, 1, 2, 1);

// Permitir al usuario definir la ubicación y altura de la cinta semanal y mensual

WR_P1 = Param("Ubicación de la Cinta Semanal", 5.2, -1000, 1000, 0.1);

WR_P2 = Param("Weekly Ribbon Height", 199, -0.001, 500, 0.1);

// Calcular el histograma EMA y MACD

if(Tipo_EMA == 1)

{

DayEMA = EMA(Close, EMA_prds);

}

if (EMA_Type == 2)

{

DayEMA = TEMA(Close, EMA_prds);

}

Histograma = MACD() - Señal();

// Determina si tenemos un impulso hacia arriba, hacia abajo o ninguno

Impulse_Up = DayEMA > Ref(DayEMA, -1) AND Histogram > Ref(Histogram, -1);

Impulse_Down = DayEMA < Ref(DayEMA, -1) AND Histogram < Ref(Histogram, -1);

Impulse_None = (NOT Impulse_UP) AND (NOT Impulse_Down);

// Calcula el MACD semanal y determina si es alcista o bajista

TimeFrameSet(inWeekly);

if (Std_MACD == 0)

{

MACD_val = MACD(5, Cool);

Signal_val = Signal(5, 8, 5);

}

else

{

MACD_val = MACD(12, 26);

Signal_val = Signal(12, 26, 9);

}

Hist_in_w = MACD_val - Signal_val;

wh_rising = Hist_in_w > Ref(Hist_in_w, -1);

wh_falling = Hist_in_w < Ref(Hist_in_w, -1);

wh_none = (NOT wh_rising) AND (NOT wh_falling);

TimeFrameRestore();

// Ahora obtenga el histograma mensual del MACD....

TimeFrameSet(inMonthly);

MACD_val = MACD(5, 8);

Signal_val = Signal(5, 8, 5);

Hist_in_m = MACD_val - Signal_val;

mh_rising = Hist_in_m > Ref(Hist_in_m, -1);

mh_falling = Hist_in_m < Ref(Hist_in_m, -1);

TimeFrameRestore();

wh_rising = TimeFrameExpand( wh_rising, inWeekly, expandLast );

wh_falling = TimeFrameExpand( wh_falling, inWeekly, expandLast);

wh_none = TimeFrameExpand( wh_none, inWeekly, expandLast);

mh_rising = TimeFrameExpand(mh_rising, inMonthly, expandLast);

mh_falling = TimeFrameExpand(mh_falling, inMonthly, expandLast);

kol = IIf( wh_rising, colorBrightGreen, IIf(wh_falling, colorRed, IIf(wh_none, colorCustom11, colorLightGrey));

mkol = IIf( mh_rising, colorBlue, IIf(mh_falling, colorRed, colorLightGrey));

if (Plot_fashion == 1)

{

}

else

{

bar_kol = IIf(impulso_ARRIBA, colorVerdeBrillo, IIf(impulso_ABAJO, colorRojo, colorCustom11));

}

Impulse_State = WriteIf(Impulse_Up, "Bulllish", WriteIf(Impulse_Down, "Bearish", "Neutral"));

GfxTextOut( "ESTADO DE IMPULSO = " +Estado_de_impulso, textoffset + 0, 30 );

// Establecer el color de fondo de la columna de estado de impulso

Impulse_Col = IIf(Impulse_Up, colorGreen, IIf(Impulse_Down, colorRed, colorGrey40));

bars_in_bull = Min(BarsSince(impulse_none), BarsSince(impulse_down));

bars_in_bear = Min(BarsSince(impulse_up), BarsSince(impulse_none));

bars_in_neut = Min(BarsSince(impulse_down), BarsSince(impulse_up));

// Establecer una única variable para mostrar el número de barras en el estado actual dependiendo de

// el estado actual del impulso - alcista, bajista o neutro

bars_in_state = IIf(Impulse_Up, bars_in_bull, IIf(Impulse_down, bars_in_bear, bars_in_neut));

//pivote semanal

k1=-1;

SetChartBkColor(16 ) ;

k=IIf(ParamList("select type", "daily|next day")=="daily",-1,0);

k1=-1;

TimeFrameSet(inDaily);

day_h= LastValue(Ref(H,K));

day_l= LastValue(Ref(L,K));

day_c= LastValue(Ref(C,K));

TimeFrameRestore();

// día

WriteVal( StochK(39) - StochK(12) );

GfxSelectFont("Arial", 8 );

_SECTION_END();

Gracias una vez más...

Una versión de impulso mayor se puede encontrar aquí : https://www.mql5.com/en/forum/178416/page20

O usted puede ir a través de esta lista : Elder impluse ya que hay bastantes versiones de ese indicador

 
marley60:
hola, ¿qué tengo que añadir al código del indicador, si quiero ver el precio que activó la alarma en la ventana de la alarma?

lo siento, tal vez la alarma no sea inglesa y deba decir "alert".

¿o es que he hecho algo mal, porque las últimas veces que he preguntado algo no he recibido ninguna respuesta?

 
marley60:
lo siento, tal vez alarm no es español y debe reed "alerta". o hice algo mal, porque las últimas veces que pregunté algo no recibí ninguna respuesta?

Añadir algo como DoubleToStr(PriceThatTriggered,_Digits) a la Alerta(alertText1,alertText2,...)

 

Hola,

Estoy tratando de hacer un indicador que se basa en el máximo, mínimo y cierre de otro indicador. Los datos de cierre están naturalmente disponibles, pero ¿cómo puedo capturar el valor más alto y más bajo que el indicador ha hecho durante una barra específica? Ya he buscado en internet y he encontrado funciones como iHigh() y iHighest() pero parece que sólo permiten parámetros como NULL (símbolo actual). También parece haber algo como OnCalculate() pero no estoy seguro de si los parámetros high[], low[] etc dan el máximo del indicador o el símbolo. ¿Podría alguien decirme si mt4 tiene una forma de medir el alto y el bajo de los datos del indicador?

Saludos cordiales,

 
mrcodix:
Hola,

Estoy tratando de hacer un indicador que se basa en el máximo, mínimo y cierre de otro indicador. Los datos de cierre están naturalmente disponibles, pero ¿cómo puedo capturar el valor más alto y más bajo que el indicador ha hecho durante una barra específica? Ya he buscado en internet y he encontrado funciones como iHigh() y iHighest() pero parece que sólo permiten parámetros como NULL (símbolo actual). También parece haber algo como OnCalculate() pero no estoy seguro de si los parámetros high[], low[] etc dan el máximo del indicador o el símbolo. ¿Podría alguien decirme si mt4 tiene una manera de medir el alto y el bajo de los datos del indicador?

Saludos cordiales,

high[] y low[] dan los precios altos y bajos

Tienes que usar ArrayMaximum() y ArrayMinimum() para encontrar el valor más alto y más bajo de algún indicador (primero tienes que almacenar los valores del indicador en un buffer)

 
mladen:
high[] y low[] dan los precios altos y los precios bajos Tienes que usar ArrayMaximum() y ArrayMinimum() para encontrar el valor máximo y mínimo de algún indicador (primero tienes que almacenar los valores del indicador en un buffer)

Hola mladen,

¿ArrayMaximum() almacena el valor máximo por barra o el valor máximo de todo el array? Porque necesito el valor máximo y mínimo de cada barra o elemento sucesivo del array.

Saludos cordiales,

 

Hola,

ArrayMaximum - Documentación MQL4

Lo he buscado y parece que esta función devuelve el valor más alto de todos los valores del array. Lo que busco es una función que te diga el valor más alto que ha alcanzado un indicador en una barra del timeframe. ¿Cómo puedo registrar esto? Así, por ejemplo, el indicador X está formando la barra más reciente. Va de 3 a 5 a 4 a 7 y luego cuando la barra del marco de tiempo se cierra termina en el valor 2. El valor más alto que alcanzó fue 7. ¿Cómo puedo registrar este valor?