Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 530
![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
Por favor, ajudem! (MQL4)
Preciso de obter a hora de abertura do Dia no gráfico M15 tendo em conta cada barra - para o indicador.
Decidi calcular em segundos, tendo em conta a barra actual (0), mas devo estar enganado.
D_Shift=(Open_time-pos*15*60-(Open_time-Open_timeTF))/1440*60;
Se para o indicador, então:
Mas: este código será executado cada vez que OnCalculate() for introduzido - dependendo das suas necessidades, pode adicionar bandeira bool ou colocar o código em função separada.
Se por indicador, então:
Mas: este código será executado cada vez que OnCalculate() - dependendo das suas necessidades, ou adicionar uma bandeira de bool ou colocar o código numa função separada.
Obrigada, mas a cada vez que se faz um novo cálculo não é bom - preciso de analisar o vosso código, no entanto, enquanto quero compreender porque é que o meu código não funciona, no registo são devolvidos números estranhos
acontece que existe uma diferença de 479 barras entre a primeira barra do dia e a barra actual - porque é que isso acontece?
Obrigada, mas recalcular em cada tick não é bom - preciso de pensar no vosso código, no entanto, enquanto quero compreender porque é que o meu código não funciona, o registo retorna números estranhos
acontece que existe uma diferença de 479 barras entre a primeira barra do dia e a barra actual - porque é que isso acontece?
Eu indiquei que não sou psíquico e é por isso que o sou:
Mas: este código será executado cada vez que OnCalculate() for introduzido- aqui, dependendo das suas necessidades, ou adicione uma bandeiraboolou coloque o código numa função separada.
Salientei que não sou psíquico e é por isso que o sou:
Karputov Vladimir, não compreendo o seu código - sou um principiante neste negócio enunca utilizei a funçãoOnCalculate antes, por isso não consigo compreender quetaxas_totalé calculado lá e, mais importante, para onde deve ser devolvido? Também não compreendo como tornar tudo isto numa função separada... é difícil de compreender sem comentários.
Aqui está o código completo do indicador MQL4:
Algoritmo do seu trabalho: Quando se inicia o indicador, define-se o intervalo de tempo do temporizador (por exemplo 10 segundos) - significa que cada 10 segundos do temporizador será accionado:
e à variávelIsDefineTime é atribuído o valor verdadeiro. Para que serve? Quando IsDefineTime=true podemos, em OnCalculate(), introduzir um laço para determinar a hora de início do dia:
Neste ciclo começamos a atravessar a matriz de tempo[] (esta matriz armazena os valores do tempo de abertura) a partir da barra mais à direita (o seu índice é "0"). Quando o início do dia é encontrado, desajustamos o seu valor e atribuímos à variávelIsDefineTime o valorfalso - desta forma protegemo-nos de continuar a entrar no ciclo de determinação da hora de início do dia, até o temporizador voltar a funcionar.
Karputov Vladimir , obrigado pelo esclarecimento, no entanto, como é que isto resolve o problema?
Grosso modo, precisamos de conhecer a barra de tempo actual que corresponde à barra no início do dia. Precisamos de saber em cada barra e calcular e desenhar o indicador em conformidade.
Karputov Vladimir , obrigado pelo esclarecimento, no entanto, como é que isto resolve o problema?
Grosso modo, precisamos de conhecer a barra de tempo actual que corresponde à barra no início do dia. É necessário conhecê-lo em cada barra e calcular e desenhar o indicador em conformidade.
Foi assim que perguntou e foi assim que foi respondido :) . E se quiser não a hora da primeira barra deste dia, mas o índice desta barra - está aqui, quando se imprime o início do dia:
Utiliza-se o índice [i-1] - este é o número da primeira barra do dia.
Como pediu, obteve a sua resposta :) . E se não precisar da hora da primeira barra do dia, mas do índice desta barra, é aqui, quando se imprime o início do dia:
Utiliza-se o índice [i-1] - este é o número da primeira barra do dia.
Concordo - perguntei confusamente.
Há um indicador na aplicação que eu fiz, mas não conta correctamente. Sou terrivelmente burro e não compreendo, mesmo depois das vossas explicações, como fazê-lo determinar correctamente o índice correspondente à primeira barra no início do dia.
Peço desculpa pela insolência, mas talvez me possa mostrar como combinar o seu código com o meu?
-Aleks-:
Como é que consigo detectar correctamente o índice correspondente à primeira barra no início do dia?
É um pouco confuso: