Ajuda na codificação - página 462

 
wranger:
Oi mladen, obrigado por me indicar a direção certa. Não sei se minha última resposta passou, mas acabei de baixar esta aqui:

Forex TSD - fórum forex - Baixar Ângulo de NonLag MA 1.01.mq4

E isto se parece com o que eu estava procurando.

No entanto, vi uma versão anterior de lá que tinha exatamente o que eu tinha em mente:

https://www.mql5.com/en/forum/173056/page4 (arquivo Forex TSD - fórum forex - Download !!! Ângulo de média.mq4 )

Infelizmente isso não funciona mais para o presente mt4.... é possível fazer um MA na versão de gráfico deste um TSD Forex - fórum forex - Download Angle of NonLag MA 1.01.mq4?

wranger

A versão atualizada do "ângulo de média" compatível com o novo mt4 como postado aqui : https://www.mql5.com/en/forum/173056/page5

 

olá, o que tenho que adicionar ao código indicador, se eu quiser ver o preço que disparou o alarme na janela do alarme?

 

HI Mladen,

Vou pedir-lhe um grande favor ..... Você pode mudar este código para o indicador Mt4 ..... Está escrito na língua Amibroker ...

Você pode, por favor, me ajudar .... Pode ser mudado para Azul, Vermelho e cinza de cor neutra na versão em histograma.

Muito obrigado.

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

_SECTION_BEGIN("Elder Impulse");

raio = 0,1 * Status("pxheight"); // obter altura de pixel do gráfico e usar 45% para o raio do gráfico da torta

textoffset = 0,1 * raio;

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

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

SetChartOptions(0,chartShowArrows|chartShowDates);

EnableTextOutput(Falso);

// Parâmetro definido pelo usuário para os períodos EMA

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

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

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

Plot_fashion = Param("Bar+Arrotas-1, Barras de Impulso-2", 2, 1, 1, 2, 1);

// Permitir que o usuário defina a localização e a altura da fita semanal e mensal

WR_P1 = Param("Weekly Ribbon Location", 5.2, -1000, 1000, 0.1);

WR_P2 = Param("Altura semanal da fita", 199, -0,001, 500, 0,1);

// Calcular EMA e MACD Histograma

if(EMA_Type == 1)

{

DayEMA = EMA(Fechar, EMA_prds);

}

se (EMA_Type == 2)

{

DayEMA = TEMA(Close, EMA_prds);

}

Histograma = MACD() - Sinal();

// Determinar se temos um Impulso PARA CIMA, PARA BAIXO ou Nenhum

Impulse_Up = DayEMA > Ref(DayEMA, -1) E Histograma > Ref(Histograma, -1);

Impulse_Down = DayEMA < Ref(DayEMA, -1) E Histograma < Ref(Histograma, -1);

Impulse_None = (NÃO Impulse_UP) AND (NÃO Impulse_Down);

// Calcular o MACD semanal e determinar se está subindo ou descendo

TimeFrameSet(inWeekly);

se (Std_MACD == 0)

{

MACD_val = MACD(5, Cool);

Signal_val = Signal(5, 8, 5);

}

senão

{

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();

// Agora receba Mensalmente MACD Histogram....

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)

{

}

senão

{

bar_kol = IIf(impulse_UP, colorBrightGreen, IIf(impulse_Down, colorRed, colorCustom11));

}

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

GfxTextOut( "IMPULSE STATE = " +Impulse_State, textoffset + 0, 30 );

// Defina a cor de fundo para a Coluna 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));

// Defina uma única variável para mostrar o número de barras no estado atual, dependendo do

// Situação de Impulso real - Alta, Baixa ou Neutra

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

// pivô_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= ÚltimoValor(Ref(C,K));

TimeFrameRestore();

// dia

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

GfxSelectFont("Arial", 8 );

_SECTION_END();

Obrigado mais uma vez...

 
rpasupathy:
HI Mladen,

Vou pedir-lhe um grande favor ..... Você pode mudar este código para o indicador Mt4 ..... Está escrito na língua Amibroker ...

Você pode, por favor, me ajudar .... Pode ser mudado para Azul, Vermelho e cinza de cor neutra na versão em histograma.

Muito obrigado.

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

_SECTION_BEGIN("Elder Impulse");

raio = 0,1 * Status("pxheight"); // obter altura de pixel do gráfico e usar 45% para o raio do gráfico da torta

textoffset = 0,1 * raio;

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

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

SetChartOptions(0,chartShowArrows|chartShowDates);

EnableTextOutput(Falso);

// Parâmetro definido pelo usuário para os períodos EMA

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

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

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

Plot_fashion = Param("Bar+Arrotas-1, Barras de Impulso-2", 2, 1, 1, 2, 1);

// Permitir que o usuário defina a localização e a altura da fita semanal e mensal

WR_P1 = Param("Weekly Ribbon Location", 5.2, -1000, 1000, 0.1);

WR_P2 = Param("Altura semanal da fita", 199, -0,001, 500, 0,1);

// Calcular EMA e MACD Histograma

if(EMA_Type == 1)

{

DayEMA = EMA(Fechar, EMA_prds);

}

se (EMA_Type == 2)

{

DayEMA = TEMA(Close, EMA_prds);

}

Histograma = MACD() - Sinal();

// Determinar se temos um Impulso PARA CIMA, PARA BAIXO ou Nenhum

Impulse_Up = DayEMA > Ref(DayEMA, -1) E Histograma > Ref(Histograma, -1);

Impulse_Down = DayEMA < Ref(DayEMA, -1) E Histograma < Ref(Histograma, -1);

Impulse_None = (NÃO Impulse_UP) AND (NÃO Impulse_Down);

// Calcular o MACD semanal e determinar se está subindo ou descendo

TimeFrameSet(inWeekly);

se (Std_MACD == 0)

{

MACD_val = MACD(5, Cool);

Signal_val = Signal(5, 8, 5);

}

senão

{

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();

// Agora receba Mensalmente MACD Histogram....

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)

{

}

senão

{

bar_kol = IIf(impulse_UP, colorBrightGreen, IIf(impulse_Down, colorRed, colorCustom11));

}

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

GfxTextOut( "IMPULSE STATE = " +Impulse_State, textoffset + 0, 30 );

// Defina a cor de fundo para a Coluna 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));

// Defina uma única variável para mostrar o número de barras no estado atual, dependendo do

// Situação de Impulso real - Alta, Baixa ou Neutra

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

// pivô_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= ÚltimoValor(Ref(C,K));

TimeFrameRestore();

// dia

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

GfxSelectFont("Arial", 8 );

_SECTION_END();

Mais uma vez, obrigado...

Uma versão do impulso de ancião que você pode encontrar aqui : https://www.mql5.com/en/forum/178416/page20

Ou você pode passar por esta lista: Ancião impluse já que já existem algumas versões desse indicador

 
marley60:
olá, o que tenho que acrescentar ao código indicador, se eu quiser ver o preço que disparou o alarme na janela do alarme?

Desculpe, talvez o alarme não seja inglês e deveria ser "alerta".

ou fiz algo de errado, porque nas últimas vezes que perguntei algo que não recebi nenhuma resposta?

 
marley60:
Desculpe, talvez o alarme não seja inglês e deveria ser "alert".ou eu fiz algo errado, porque nas últimas vezes que perguntei algo eu não recebi nenhuma resposta?

Adicionar algo como DoubleToStr(PricethatTriggered,_Digits) ao Alert(alertText1,alertText2,...)

 

Olá,

Estou tentando fazer um indicador que seja baseado no alto, baixo e próximo de outro indicador. Os dados de fechamento estão naturalmente disponíveis, mas como posso capturar o valor mais alto e mais baixo que o indicador fez durante uma barra específica? Já procurei na Internet e encontrei funções como iHigh() e iHighest(), mas estas parecem permitir apenas parâmetros como NULL (símbolo atual). Parece haver algo como OnCalculate() também, mas não tenho certeza se os parâmetros high[], low[] etc. dão o alto do indicador ou do símbolo. Alguém poderia me dizer se o mt4 tem uma maneira de medir o alto e o baixo dos dados do indicador?

Com os melhores cumprimentos,

 
mrcodix:
Olá,

Estou tentando fazer um indicador que seja baseado no alto, baixo e próximo de outro indicador. Os dados de fechamento estão naturalmente disponíveis, mas como posso capturar o valor mais alto e mais baixo que o indicador fez durante uma barra específica? Já procurei na Internet e encontrei funções como iHigh() e iHighest(), mas estas parecem permitir apenas parâmetros como NULL (símbolo atual). Parece haver algo como OnCalculate() também, mas não tenho certeza se os parâmetros high[], low[] etc. dão o alto do indicador ou do símbolo. Alguém poderia me dizer se o mt4 tem uma maneira de medir o alto e o baixo dos dados do indicador?

Cordiais cumprimentos,

alto[] e baixo[] estão dando os preços alto e baixo

Você tem que usar ArrayMaximum() e ArrayMinimum() para encontrar o maior e menor valor de algum indicador (primeiro você tem que armazenar os valores do indicador em um buffer)

 
mladen:
altos[] e baixos[] estão dando os preços altos e baixos Você tem que usar ArrayMaximum() e ArrayMinimum() para encontrar o maior e o menor valor de algum indicador (primeiro você tem que armazenar os valores do indicador em um buffer)

Oi mladen,

O ArrayMaximum() armazena o valor máximo por barra ou o valor máximo da matriz inteira? Porque eu preciso do valor máximo e mínimo para cada barra ou elemento sucessivo da matriz.

Com os melhores cumprimentos,

 

Olá,

ArrayMaximum - Documentação MQL4

Pesquisei e parece que esta função retorna o valor mais alto de todos os valores da matriz. O que eu estou procurando é uma função que lhe diga o valor mais alto que um indicador atingiu dentro de uma barra de tempo. Como posso registrar isto? Então, por exemplo, o indicador X está formando a barra mais recente. Ele vai de 3 a 5 a 4 a 7 e depois, quando a barra de tempo fecha, termina no valor 2. O valor mais alto que atingiu foi 7. Como posso registrar este valor?