![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
Olá, senhores desenvolvedores!
Podemos fazer alterações no compilador MQL5 para, pelo menos, nos dar um aviso?
por erros deste tipo no código.
if(Flag_Exitl=true) {break;}
A condição de comparação aqui não é correcta (deveria ser == ), é por isso que será sempre quebrada.
Como abordar esta situação no compilador (se for possível), para que eu possa ficar menos acidentado ao escrever o código?
(Pensei que não iria funcionar, parece que deveríamos separar a atribuição e a comparação em se, por isso a questão é eliminada).
As variáveis do tipo bool não podem ser comparadas com verdadeiro/falso, mas utilizadas directamente (essencialmente é uma bandeira de sim/não)
Recebo regularmente erros 4401
ERR_HISTORY_NOT_FOUND
O seguinte código indicador
dará um erro logo após o início (se não em D1). Ou melhor, uma vez iniciado o terminal e aberto o gráfico - para colocar o indicador, obterá um erro. Se o terminal não estiver fechado, então não haverá tal erro no início.
Mas após algum tempo (um par de horas - 2 horas foram suficientes para mim), veremos que o erro será detectado no gráfico já aberto. (eu estava a geri-lo na m30)
...erro 4401 aparece regularmente
referência:
Organização do acesso aos dados
Acessibilidade de dados
A disponibilidade de dados em formato HCC ou mesmo em formato HC pronto a usar nem sempre significa a disponibilidade incondicional destes dados para exibição num gráfico ou para utilização em programas de mql5.
Ao aceder aos dados de preços ou valores indicadores dos programas mql5, devemos lembrar que não é garantido que estes estejam disponíveis num determinado momento, ou a partir de um determinado momento. Isto tem a ver com o facto de o MetaTrader 5 não armazenar a cópia completa dos dados necessários para o programa mql5, mas dá acesso directo à base de dados do terminal, a fim de poupar recursos.
O histórico de preços para todos os períodos de tempo é construído a partir dos dados comuns em formato HCC e qualquer actualização do servidor leva à actualização dos dados para todos os períodos de tempo e ao recálculo do indicador. Por conseguinte, o acesso aos dados pode ser negado mesmo que os dados estivessem disponíveis há apenas um momento.
CopyRate
Ao solicitar dados do indicador, se as séries de tempos solicitadas não tiverem sido construídas ou precisarem de ser descarregadas do servidor, a função retornará -1 imediatamente, mas o processo de descarregamento/construção será iniciado.ficha de informação:
Parece que deveria ser. Até CopyRate SERIES_SYNCRONIZED você pode verificar...Estou apenas a aspergir cinzas na minha cabeça, sim. Obrigado.
Embora seja estranho ver o pedido de duas barras e o histórico indisponível, embora apenas a barra zero mude. Mas não importa - se está descrito na documentação, não é um erro
no meu IsNewBar houve um erro a sair.
Em vez de
Eu devia ter escrito
E eu estava a pensar porque é que a cada duas horas IsNewBar(PERÍODO_D1) == true -> portanto descobri a inacessibilidade da história, mas não consegui pensar numa função que escrevi há um ou dois anos atrás.
Porque é que o indicador não pode lidar com tipos de cor (COLOR_ARROW, etc.) com mais do que um tampão
amostra de código
Estabelecemos dois DRAW_COLOR_ARROW (buf1 e buf2) e para cada um buffer de cor adicional (clr1, clr2)
Ao mesmo tempo, embora o segundo buffer buf2 receba barras Alto/Baixo, não aparece no gráfico. Parece que a cor das setas neste tampão = clrNONE. Ou seja, a definição da cor no tampão clr2 não funciona
aqui está uma captura de ecrã. apenas os valores de buf1/clr1 são visíveis. os valores do segundo tampão não são exibidos com cor embora os valores sejam recebidos.
Onde está o erro?
A pergunta foi simplesmente criada para responder "no ADN MQL5".
Este disparate também no DRAW_FILLING e mesmo no DRAW_HISTOGRAM2 relativamente normal (não tão estável, claro, mas ocorrem bugs).
Apenas pela instabilidade dos insectos, concluo que é pouco provável que consiga uma resposta sem um CD.
Bild 642 para Win32
Aparece algum problema com matrizes tridimensionais de duplo se, por engano, for além dos limites da matriz quando a saída na função de impressão
O guião entra num loop infinito por si só.
Bild 642 para Win32
aparece algum problema com as matrizes tridimensionais se, por engano, se sair da matriz ao imprimir na função de impressão
Na verdade, a ultrapassagem ocorre duas linhas antes
e está a chamar um expoente de um elemento inexistente, muito provavelmente zero.
Ver no diário de bordo
Geralmente, os out-of-bounds ocorrem duas linhas mais cedo
e está a chamar um expoente de um elemento inexistente, muito provavelmente zero.
ver no diário de bordo