Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 534
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
Vladimir, obrigado pela resposta à primeira pergunta, senti falta destas características.
Coloco um e o mesmo indicador em MT4 e em MT5 (claro, o código é adaptado a cada plataforma).
Até à barra zero os seus valores são os mesmos, portanto, aparentemente de um extremo ... :)
E quando se desactiva o cálculo na barra actual em MT4 nada é desenhado sob a barra actual, em MT5 - valores errados.
Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
Perguntas de principiantes
Karputov Vladimir, 2016.03.08 15:13
... Para verificação do conjunto de depuração - que valor está contido no tempo da série temporal [i] - para que se entenda em que fim se inicia o cálculo das barras e onde se tem uma barra "zero".
E como colocar tal verificação ?
No MetaEditore adicionar um ponto de paragem e iniciar a depuração. Quando o ponto de paragem é interrompido, adicionar tempo[0] à observação:
No MetaEditore adicionar um ponto de paragem e iniciar a depuração. Quando o ponto de paragem é interrompido, adicionar tempo[0] à observação:
MT4 2016.03.08 18:37:04.710 mvt_Vlt EURUSD,H1: hora[0] = 2016.03.08 17:00:00 hora[tarifas_total-1] = 1971.01.04 00:00:00
MT5 2016.03.08 18:36:23.565 mvt_Vlt (EURUSD,H1) hora[0] = 2010.01.04 00:00:00 hora[tarifas_total-1] = 2016.03.08 17:00:00
Inserido no código MT5ArraySetAsSeries(time,true);
agora saída:
MT5 2016.03.08 18:45:05.402 mvt_Vlt (EURUSD,H1) time[0] = 2016.03.08 17:00:00 time[rates_total-1] = 2010.01.04 00:00:00
E fazer também matrizes de preços ?
Já coloquei a saída no código
MT4 2016.03.08 18:37:04.710 mvt_Vlt EURUSD,H1: hora[0] = 2016.03.08 17:00:00 hora[tarifas_total-1] = 1971.01.04 00:00
O que faço agora ?
Em ambas as versões do indicador adicionarArraySetAsSeries- para as matrizes que utiliza para os seus cálculos: alta[], baixa[] e temporariamente para a matriz de tempo[] - irá ajudá-lo a compreender onde está a barra "zero". Assim, a barra "zero" em ambas as versões estará do mesmo lado do gráfico (direita ou esquerda - dependendo do que definir no ArraySetAsSeries), e obterá a mesma parte de cálculo do indicador.
Acrescentado: enquanto estava a dactilografar, você tem a forma correcta de o fazer :)
Adicionado: enquanto estava a dactilografar, encontrou o caminho certo :)
Coloquei-o em código MT5:
Está a sair:
Sóproduz ExtCalcVlBuffer, mas a média e o desvio não contam...
E continua a sair no bar actual, embora não o deva fazer.
...
E ainda se exibe no bar actual, embora não o devesse fazer.
Porque não deveria?
Eu desliguei-o i<rates_total-1
PORQUÊ?!
Não precisa de usar o valor actual, apenas carregará o processador e simplesmente não precisa deste valor.
Tem de especificar isso imediatamente :) .
A situação é a seguinte: se houver uma barra no gráfico, ela corresponde a uma célula no tampão indicador. Desde que não se escreva algo nesta cela, esta cela irá armazenar lixo.