Ajuda na codificação - página 492

 

Alertar demais Re: Ajuda na codificação

Olá Masters Obrigado por seu grande trabalho, eu gostei de compartilhar com todos este TrendLine Alert, ele origem Toca quando o preço do Bid cruza qualquer linha de tendência ou horizontal que você desenha , eu modifico para popup Alert também , o único problema com ele é ele Alerta cada tick quando o preço (lance) cruza uma linha , eu tento modulá-lo para Alertar apenas uma barra quando ele cruza a linha adicionando uma função de carimbo de tempo ao final dele .Por favor, se você tiver tempo para olhar para ele e me indicar a direção certa, muitos agradecimentos!

static datetime lastbar;

datetime curbar = Time[0];

if(lastbar!=curbar)

{

lastbar=curbar;

return (true);

}

else return(false);

}

 
huang jin:
Olá Masters Obrigado por seu grande trabalho, eu gostei de compartilhar com todos este TrendLine Alert, ele origem Toca quando o preço do Bid cruza qualquer linha de tendência ou horizontal que você desenha , eu modifico para popup Alert também , o único problema com ele é ele Alerta cada tick quando o preço (lance) cruza uma linha , eu tento modulá-lo para Alertar apenas uma barra quando ele cruza a linha adicionando uma função de carimbo de tempo ao final dele .Por favor, se você tiver tempo para olhar para ele e me indicar a direção certa, muitos agradecimentos!
static datetime lastbar;

datetime curbar = Time[0];

if(lastbar!=curbar)

{

lastbar=curbar;

return (true);

}

else return(false);

}

Você nunca está atribuindo um valor a Close_Time. Assim que você fizer isso, ele alertará apenas uma vez por barra

 

@mladen Encontrei este indicador no TradingView e é possível fazer isto para o mt4?

Aqui está o código fonte:

//Criado pelo usuário ChrisMoody 4-24-2014

//Plotes A Maioria das Médias em Movimento

//Defaults to Current Chart Time Frame --- Mas pode ser mudado para períodos de tempo mais altos ou mais baixos

//2nd MA Capacidades com recurso de Cruzes de Exposição

study(title="CM_Ultimate_MA_MTF", shorttitle="CM_Ultimate_MA_MTF", overlay=true)

//inputs

src = fechar

useCurrentRes = input(true, title="Use Current Chart Resolution?")

resCustom = input(title="Use Different Timeframe? Uncheck Box Above", type=resolução, defval="D")

len = entrada(20, title="Moving Average Length - LookBack Period")

atype = input(1,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA")

cc = input(true,title="Change Color Based On Direction?")

smoothe = input(2, minval=1, maxval=10, title="Color Smoothing - 1 = No Smoothing")

doma2 = input(false, title="Optional 2nd Moving Average")

len2 = entrada(50, title="Moving Average Length - Optional 2nd MA")

atype2 = input(1,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA")

cc2 = input(true,title="Change Color Based On Direction 2nd MA?")

warn = input(false, title="*** Você pode ativar o parâmetro de pontos de exibição abaixo sem traçar o 2º MA para ver as cruzes***")

warn2 = input(false, title="***If Using Cross Feature W/O Plotting 2ndMA - Make Sure 2ndMA Parameters are Set Correctly***")

sd = input(false, title="Show Dots on Cross of Both MA's")

res = useCorrenteRes ? período : resCustom

//hull ma definição

hullma = wma(2*wma(src, len/2)-wma(src, len), redondo(sqrt(len))

//TEMA definição

ema1 = ema(src, len)

ema2 = ema(ema1, len)

ema3 = ema(ema2, len)

tema = 3 * (ema1 - ema2) + ema3

avg = atype == 1 ? sma(src,len) : atype == 2 ? ema(src,len) : atype == 3 ? wma(src,len) : atype == 4 ? hullma : atype == 5 ? vwma(src,len) : atype == 6 ? rma(src,len) : tema

//2nd Ma - definição de casco ma

hullma2 = wma(2*wma(src, len2/2)-wma(src, len2), redondo(sqrt(len2))

//2nd MA Definição TEMA

sema1 = ema(src, len2)

sema2 = ema(sema1, len2)

sema3 = ema(sema2, len2)

stema = 3 * (sema1 - sema2) + sema3

avg2 = atype2 == 1 ? sma(src,len2) : atype2 == 2 ? ema(src,len2) : atype2 == 3 ? wma(src,len2) : atype2 == 4 ? hullma2 : atype2 == 5 ? vwma(src,len2) : atype2 == 6 ? rma(src,len2) : tema

out = avg

out_two = avg2

out1 = segurança(tickerid, res, out)

out2 = segurança(tickerid, res, out_two)

ma_up = out1 >= out1[smoothe]

ma_down = out1 < out1[smoothe]

col = cc ? ma_up ? lima : ma_down ? vermelho : aqua : aqua

col2 = cc2 ? ma_up ? lima : ma_down ? vermelho : aqua : aqua

círculoYPosition = out2

plot(out1, title="Multi-Timeframe Moving Avg", style=line, linewidth=4, color = col)

plot(doma2 e out2 ? out2 : na, title="2nd Multi-TimeFrame Moving Average", style=circles, linewidth=4, color=col2)

trama(sd e cruz(out1, out2) ? círculoYPosition : na,style=cross, linewidth=5, color=yellow)

 

Captura de tela do indicador:

Arquivos anexados:
pepqyie.png  84 kb
 

Algum exemplo de acesso compartilhado a arquivos a partir de múltiplas instâncias de código?

 
apprentice coder:
Algum exemplo de acesso compartilhado a arquivos a partir de múltiplas instâncias de código?

Você pode ver um exemplo aqui : https://www.mql5.com/en/forum/175881/page5

 
mladen:
Você pode ver um exemplo aqui : https://www.mql5.com/en/forum/175881/page5

Entendi.

 

Posso saber se tem alguma ea usando o indicador "HalfTrend-1.02" ?

Eu preciso de algum código de exemplo .

Eu estava tentando usar este indicador para filtrar, mas vi que está faltando muitas trocas.

Eu não sei o que há de errado com isso ....

double MA_Signal = iCustom(Symbol(),0,"HalfTrend-1.02",Amplitude,false,false,false,false,false,false,false,0);

double MA_Signal1 = iCustom(Symbol(),0,"HalfTrend-1.02",Amplitude,false,false,false,false,false,false,false,1);

double MA_Signala = iMA(Symbol(),0,UpperMa,UpperMaShift,UpperMaMode,UpperMaPrice,0);

double MA_Signalb = iMA(Symbol(),0,LowerMa,LowerMaShift,LowerMaMode,LowerMaPrice,0);

double Bbands = iCustom(Symbol(),0,"BBands_Stop_v2",Length,Deviation,MoneyRisk,Shift,2);

double Bbands2 = iCustom(Symbol(),0,"BBands_Stop_v2",Length,Deviation,MoneyRisk,Shift,3);

double Ma_Bid_Diff = MathAbs(MA_Signala - Bid)/vPoint;

double Ma_Bid_Diff1 = MathAbs(MA_Signalb - Bid)/vPoint;

if ( MA_Signal>MA_Signala ) if ( Bbands MAOpenDistance && Bid > MA_Signala ) Signal = 1;

if ( MA_Signal1MA_Signal1 ) if ( Ma_Bid_Diff1 > MAOpenDistance && Bid < MA_Signalb ) Signal = -1;
 
stevenpun:
Posso saber se tem alguma ea usando o indicador "HalfTrend-1.02" ?

Eu preciso de algum código de exemplo .

Eu estava tentando usar este código para filtrar, mas vi que faltava muito comércio.

Eu não sei o que há de errado nisso ....

double MA_Signal = iCustom(Symbol(),0,"HalfTrend-1.02",Amplitude,false,false,false,false,false,false,false,0);

double MA_Signal1 = iCustom(Symbol(),0,"HalfTrend-1.02",Amplitude,false,false,false,false,false,false,false,1);

double MA_Signala = iMA(Symbol(),0,UpperMa,UpperMaShift,UpperMaMode,UpperMaPrice,0);

double MA_Signalb = iMA(Symbol(),0,LowerMa,LowerMaShift,LowerMaMode,LowerMaPrice,0);

double Bbands = iCustom(Symbol(),0,"BBands_Stop_v2",Length,Deviation,MoneyRisk,Shift,2);

double Bbands2 = iCustom(Symbol(),0,"BBands_Stop_v2",Length,Deviation,MoneyRisk,Shift,3);

double Ma_Bid_Diff = MathAbs(MA_Signala - Bid)/vPoint;

double Ma_Bid_Diff1 = MathAbs(MA_Signalb - Bid)/vPoint;

if ( MA_Signal>MA_Signala ) if ( Bbands MAOpenDistance && Bid > MA_Signala ) Signal = 1;

if ( MA_Signal1MA_Signal1 ) if ( Ma_Bid_Diff1 > MAOpenDistance && Bid < MA_Signalb ) Signal = -1;

Olá Stevenpun,

Duas coisas que você pode tentar imediatamente:

1) Adicionar Imprimir e Comentar para ver TODOS os seus valores... e ter certeza de que você está recebendo todos os seus valores indicadores corretamente...

As impressões serão impressas no LOG...e os Comentários aparecerão na tela para que você possa vê-los imediatamente.

2) Minimize sua "Lógica Comercial"...e teste CADA sinal por si só... Depois, se eles funcionarem...comece a combiná-los novamente.

Se eles não funcionam...então você encontrou seu problema.

Quanto menos "se aninhados" você tiver, mais fácil será rastrear os seus problemas sem trocas...

Também... múltiplos "se's" filtram a maioria das negociações... portanto, mesmo quando se trabalha bem... pode não haver muitas negociações...

Espero que isso ajude,

Robert

 

Obrigado Mladen ,

mladen:
.................. ele alertará apenas uma vez por barra

Isso é exatamente o que eu quero que ele faça, veja a pic pic i att, o preço salta para cima e para baixo com a linha a cada pequeno sinal, porque o alerta indi cada vez que ele passar ou tocar a linha .......... o que eu quero que ele faça é se o bar já tiver um Alerta, esperar que o novo bar dê Alerta novamente se ele passar a linha. Mas o código que acrescentei faz com que o indi não funcione (sem Alerta) . você poderia dizer novamente o que eu fiz de errado ? emuitos obrigado!!