Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1496
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
"Find the maximum value in the ticks array" - o valor máximo do que estamos encontrando?
ticks[copied-1].bid ou ticks[copied-1].flags
Brincadeira)))))
Provavelmente você confundiu CopyTicks com CopyRates, embora lá você também tenha uma matriz de estruturas e especifique qual elemento da estrutura você precisa.
double PrevClose = rates[copied-1].close;
Você tem uma linha extra em seu código.
Você não precisa dela porque CopyTicks e CopyRates alocam o próprio tamanho da matriz ao copiar.Obrigado pela dica. Eu não sabia. Estou inserindo essa linha por precaução.
Entendi corretamente sua piada de que nas taxas todos os preços são calculados pela média e levam em conta a barra, enquanto nos ticks não? É por isso que considerei o tick como um intervalo de tempo arbitrário, e não os preços das barras. CopyRates em minha fórmula semelhante preencheu a variável copiada com o valor máximo do tipo ulong para o intervalo de horas. Também não consegui resolver esse problema.
Obrigado pela dica. Eu não sabia. Estou inserindo esta linha por precaução.
Entendi corretamente sua piada de que as taxas têm todos os preços calculados pela média e levam em conta a barra, mas os ticks não? É por isso que considerei o tick como um intervalo de tempo arbitrário, e não os preços da barra. CopyRates em minha fórmula semelhante preencheu a variável copiada com o valor máximo do tipo ulong para o intervalo de horas. Também não consegui resolver esse problema.
Tudo está errado.
MqlRates é uma estrutura, e você a trata como uma variável.
MqlTick também é uma estrutura.
Você está tentando combinar warm e soft, portanto o compilador não o entende.
Nem eu)))))
Talvez eu possa sugerir algo útil, mas não está claro no seu código o que você está tentando encontrar.
Está tudo errado.
MqlRates é uma estrutura, e você a trata como uma variável.
MqlTick também é uma estrutura.
Você está tentando combinar warm e soft, portanto o compilador não o entende.
Nem eu))))
Talvez eu possa sugerir algo útil, mas não está claro no seu código o que você está tentando encontrar.
A tarefa é modificar o WPR (Williams Percent Range) para obter a diferença dos valores de WPR em um período de tempo arbitrário, independentemente das barras.
É possível (mas não certo) que seja isso que você deseja obter.
double lowestLow = ArrayMinimum(bid, 0, copied);
Obrigado. Aqui está o que obtive, se entendi a lição corretamente:
Mas, infelizmente, na linha bid_arr[i] = ticks[i].bid; o Expert Advisor saiu do gráfico por causa da matriz fora do intervalo em 'namemyexpert.mq5' (204,12).Obrigado. Aqui está o resultado, se eu tiver aprendido minha lição corretamente:
Como estamos percorrendo todos os ticks de qualquer forma, não podemos copiar nesse loop, mas procurar os valores máximos e mínimos de uma vez.
A propósito, se copiarmos, seria bom definir primeiro os tamanhos das matrizes em que copiamos, pois o loop não fará isso por nós, pois sairemos da matriz na primeira iteração. Somente CopyTicksRange redimensionará o próprio array de destino.
Como passamos por todos os ticks de qualquer forma, não podemos copiar nesse ciclo, mas procurar essas máximas e mínimas de uma só vez.
A propósito, se copiarmos, seria bom definir primeiro os tamanhos das matrizes em que copiamos, pois o loop não fará isso por nós, pois sairemos da matriz na primeira iteração. Somente CopyTicksRange redimensionará a própria matriz de destino.
Sou perfeccionista, classificar elementos individuais de uma matriz de estruturas é como bater em vidro com isopor.
Como fazemos o ciclo de todos os ticks de qualquer forma, não podemos copiar nesse ciclo, mas procurar essas máximas e mínimas de uma só vez.
A propósito, se copiarmos, seria bom definir primeiro os tamanhos das matrizes em que copiamos, pois o loop não fará isso por nós, pois sairemos da matriz na primeira iteração. Somente CopyTicksRange redimensionará o próprio array de destino.
Desculpe-me. Minha desatenção. Corrigido. Obrigado. Esqueci que o valor ArrayMaximum é um índice, não um preço. Mas agora está corrigido.
Como o ArrayMaximum não funcionou com a matriz de ticks, tentei cálculos alternativos, com if em um loop. Por que isso é melhor?
Por que é melhor?