![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Funcionará
Você pode usar algo como se (anteriorNumberOfBars != Barras) ou se (volume[0]==1) mas o uso do volume é sensível (deixa muito mais espaço para erros e quase certo de que na primeira execução não calculará todas as barras necessárias, já que o volume já será > 1)
O que eu recomendaria, de qualquer forma, é inverter as duas primeiras linhas do laço, para se tornar algo como isto :
{
for(int i=limit; i>=0; i--)
{[/php]You need to check that condition only once
regards
mladen
Quick coding question:
If I want an indicator to start its calculation on the open of a new bar, how can I code this?
I now have this - just an example, but I doubt it's correct:
[php]
datetime lastbar;
double buffer_a[];
double buffer_b[];
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int bars_counted = IndicatorCounted();
if(bars_counted < 0)
{
return(1);
}
bars_counted--;
int limit = Bars - bars_counted;
if(limit>BarsToLoad && BarsToLoad>0)
{
limit = BarsToLoad;
}
for(int i=limit; i>=0; i--)
{
if(lastbar != Time[0])
{
buffer_a = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i);
buffer_b = iMA(Symbol(), 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, i+1);
//LONG ARROW
if(buffer_a > buffer_b)
{
ExtMapBuffer1 = Open - distance;
}
//SHORT ARROW
if(buffer_a < buffer_b)
{
ExtMapBuffer2 = Open + distance;
}
lastbar = Time[0];
}
}
//----
return(0);
}
//+------------------------------------------------------------------+Sim, claro, trocar os loops... muito melhor.
Qual método você considera mais preciso, a opção if(previousNumberOfBars != Barras)orif(lastbar != Tempo[0])...?
Pessoalmente não vejo nenhuma diferença óbvia à primeira vista, mas posso estar errado. Eu concordo com a opção Volume, que não é boa para indicador, pode funcionar bem na EA.
Obrigado alot mladen, grande ajuda para minha habilidade de codificação indie bastante pobre...![](https://c.mql5.com/forextsd/smiles/smile.png)
Abraço,
San.
Mladen ou Mr Tools seria possível adicionar um pop up e um alerta por e-mail a este, por favor? Parece-me que quando todas as linhas na janela indicadora estão juntas ao mesmo tempo no topo da janela indicadora ou no fundo da mesma, um bom ponto de compra ou venda é identificado. Obrigado por qualquer ajuda. Chris
Aqui está Chris, já que o mercado agora fechado não é capaz de testar o alerta ao vivo, mas ficou alerta para aparecer no gráfico de 1 minuto, então espero que esteja tudo bem, alerta deve disparar quando wso e wro estão ambos em níveis de compra ou venda selecionáveis pelo usuário. E concordo com você neste indicador quando ambas as linhas estão no máximo ou no mínimo parecem ser boas oportunidades de venda e compra.
Sr. Tools. Obrigado. É legal ter grandes programadores me ajudando.
San
Francamente, eu não sei qual recomendar.
Barsis uma espécie de variável interna de metatrader de um gráfico atual e Tempo[0] é um elemento de uma estrutura de array que descreve cada barra que tem em sua história para o gráfico atual. Meu palpite é que primeiro as barras são atualizadas para refletir o novo tamanho de array, e que depois a nova estrutura adicionada ao array é atualizada com dados (tempo, "volume" e preços) Mas se o fizerem de "forma sequencial" (não permitindo a execução de outros threads até que a execução do código esteja concluída - e estou quase 100% certo de que é assim que é feito - até onde percebi que há sempre um thread separado que está baixando dados e gerenciando tudo o que estamos falando, e todos nós notamos uma "pausa" na execução quando abrimos um novo gráfico e mais dados são baixados e adicionados a arrays e variáveis e gráficos que então usamos do código metatrader) então ambas as variáveis serão visíveis para um usuário ao mesmo tempo ... O tempo de acesso deve ser o mesmo ... Então : todas iguais![](https://c.mql5.com/forextsd/smiles/smile.png)
cumprimentos
mladen
Sim, claro, trocar os loops... muito melhor.
Qual método você considera mais preciso, a opção if(previousNumberOfBars != Barras)orif(lastbar != Tempo[0])?
Pessoalmente não vejo nenhuma diferença óbvia à primeira vista, mas posso estar errado. Eu concordo com a opção Volume, que não é boa para indicador, pode funcionar bem na EA.
Obrigado alot mladen, grande ajuda para minha habilidade de codificação indie bastante pobre...![](https://c.mql5.com/forextsd/smiles/smile.png)
Abraço,
San.Fudo, tudo está bem. Só tinha algumas coisas que precisavam ser feitas sem demora e minha colocação no TSD sofreu um pouco por causa disso. Agora está resolvido para que meu tempo seja menos dividido.![](https://c.mql5.com/forextsd/smiles/smile.png)
Desejar um ótimo fim de semana a todos![](https://c.mql5.com/forextsd/smiles/smile.png)
cumprimentos
mladenoi mladen,
Fico feliz em saber que tudo está bem![](https://c.mql5.com/forextsd/smiles/smile.png)
quando você tem uma chance, eu postei 2 indicadores, um MA de RSX e o MA Triangular abandona.
o Triangular MA pode ser aplicado ao MA de RSX?
Obrigado!
Fudo
mladen,
seria possível combinar o MA de RSX (ou mesmo um simples RSX se o MA de RSX não for possível) com os limites de MA Triangular?
ObrigadoObrigado mladen, excelente explicação, nunca mais olhou assim (fios em MT4)...aprendeu algo novamente.
Ficar com a configuração atual (Time[0]).
Saúde, San.
...
... Fudo
Aqui você vai![](https://c.mql5.com/forextsd/smiles/smile.png)
Fez algumas mudanças (na verdade um novo indicador, mas é o que eu derivei como uma idéia) Verifique se é isso que você tinha em mente.
A primeira mudança é que eu removi esses blocos de cor e adicionei cor à linha RSX, então agora ela mostra quando está acima ou abaixo da linha de sinal (então a mudança de cor não é a inclinação da RSX, mas sua relação com a linha de sinal). A segunda é que agora é um indicador de arquivo único (não há necessidade de indicador Rsx externo).
A partir do que é aplicado: você pode escolher - se você definir TmaApplyToto 0, ele será aplicado a RSX ou será aplicado a linha de sinal (MA de RSX) cumprimentosmladen
oi mladen,
Fico feliz em saber que tudo está bem![](https://c.mql5.com/forextsd/smiles/smile.png)
quando você tem uma chance, eu postei 2 indicadores, um MA de RSX e o MA Triangular abandona.
o Triangular MA pode ser aplicado ao MA de RSX?
Obrigado!
FudoInterpolar adicionando
oi mladen
média móvel mtf
mtf estohactic
interpolar adicionando
obrigado
casaliss,
Aqueles (e mais alguns
) que você pode encontrar neste tópico :
Eles não têm isso como opção, mas esses indicadores estão, de fato, aplicando interpolação linear
cumprimentos
mladen
oi mladen
média móvel mtf
mtf estohactic
interpolar adicionando
obrigado