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
Negociando com um ipod?! - Desculpe, pelo amor de Deus, eu deveria tê-lo avisado imediatamente. Por favor, escreva, diga qualquer bobagem - eu não direi uma palavra. Agora que tudo está esclarecido - eu o aceitarei com compreensão e paciência. Negocie em um iPod! - aaaaaghit....
Obrigado por sua simpatia e boa sorte para você, ao menos não avance
Acabei de encontrar um problema no MT4, por favor, certifique-se de que isso não acontecerá no MT5 (ainda não conferi).
Logo no início (antes do init) foram estabelecidas as matrizes:
xsell[3];
xbuy[3];
Antes disso, uma variável externa:
Exterior int Max_Array_Size = 13;
No laço inicial():
ArrayResize(xsell, Max_Array_Size);
ArrayResize(xbuy, Max_Array_Size);
E então o laço para():
for(int kss= Max_Array_Size; kss>0; kss--) {\i1}
xbuy[kss] = . . . ;
. . .
}
O mesmo esquema foi usado tanto no módulo de vendas(Indicador personalizado) quanto no módulo de compras - ou seja, as variáveis são diferentes,
mas o princípio é o mesmo. No início eu escrevi tudo para vendas, compilei - tudo é legal, sem problemas. Então eu copiei
A compilação levou muito mais tempo e a comutação entre
A troca de horários também demorou muito mais tempo. Vendas para deficientes - nada mudou, frenagem.
Deixou apenas as vendas - corre rápido. O compilador não reclamou, apenas demorou muito mais tempo para funcionar.
Rewatched tudo o que parecia suspeito, reescreveu algumas peças em compras - desfasamentos!
Acontece que o problema estava na dimensão da matriz: 13 => 0-12, e na dimensão do laço eu estava tentando alimentá-lo 13 também!
Após a fixação:
ArrayResize(xsell, Max_Array_Size+1);
ArrayResize(xbuy, Max_Array_Size+1);
tanto as vendas quanto as compras foram compiladas como deveriam ser e a mudança de cronograma tornou-se mais rápida.
Mas o erro deveria ter aparecido durante a compilação. Encontrar a causa em tais casos
Não é nada fácil encontrar a razão (você pode até nem mesmo estar ciente do problema).
E não está claro porque tudo estava funcionando sem problemas no módulo de vendas.
Mas o erro deveria ter sido descoberto durante a compilação. Encontrar a causa em tais casos não é nada fácil (você pode não ter sabido que havia um problema).
O compilador não pode e não deve rastrear os valores variáveis por definição.
E também não está claro porque tudo estava funcionando sem problemas no módulo de vendas.
Porque um erro é mais rápido de processar do que dois ou mais.
O compilador não pode e não deve rastrear os valores variáveis por definição.
É ruim se realmente for.
Afinal de contas, é praticamente o mesmo que acessar uma variável que não foi pré-definida.
Porque um erro é mais rápido de tratar do que dois ou mais.
Não, é outra coisa - eu lhe disse que quando apenas o módulo de vendas foi deixado, não houve problema,
e quando retirei as vendas e deixei apenas as compras, houve um problema. A diferença foi muito perceptível, apesar de ambos os módulos
são absolutamente idênticas, exceto por algumas operações alteradas para reverter (>/<, Alto[]/Baixo[] etc.).
Não, é outra coisa - eu lhe disse que quando apenas o módulo de vendas era deixado, não havia problema, mas quando eu removia as vendas e deixava apenas as compras, havia um problema. A diferença foi muito perceptível, e ambos os módulos são absolutamente idênticos, exceto por algumas operações alteradas para reverter (>/<, Alto[]/Baixo[] etc.).
Talvez, não seja a definição de variáveis ou matrizes. Nos indicadores MT4, você deve observar com cuidado e atenção os momentos em que você começa a adicionar linhas de forma programática, e mudar os nomes das matrizes refletidas. Às vezes há confusão e a linha pode não ser refletida ou o cálculo pode desligar, como neste caso. Há apenas uma cura, como na piada "Basta sair e entrar e tudo vai funcionar".
Se literalmente, a sobrecarga também não ajudou.
De qualquer forma, foi a distinção entre vender e comprar que me ajudou a saber que havia um problema...
A felicidade foi uma bênção disfarçada :)
Tenho outra pergunta. Não posso executar o depurador MQL5 nos indicadores. Funciona em scripts e Expert Advisors, mas não pára em nenhum indicador e não pode passar pelas etapas. Eu não tenho trabalhado com este tipo de coisas, eu comecei a trabalhar com este tipo de coisas.
Há uma semana os manipuladores escreveram que esta era a idéia e a depuração nos índices de depuração funcionará mais tarde.
Na MT4 sempre houve erros porque Ask ou Bid ou outro (Fechar, Abrir, etc.) coletado após a vírgula
uma enorme quantidade de números (como 1.43231111111111111111). Como resultado, tivemos de acrescentar "NormalizeDouble(Bid,Digits)";" .
E isto pode ser resolvido uma vez em nível de MT.
Por favor, acrescente às funções ObjectFind e ObjectDelete a capacidade de trabalhar com máscaras como : *,?
Emprincípio, é claro, apenas o ObjectFind pode ser usado .Se for necessário manter a compatibilidade retroativa, então a primeira função deve ser mantida inalterada, e o conjunto deve ser complementado, por exemplo, com oObjectFindM (busca múltipla).
Exemplo: precisamos encontrar etiquetas de texto que comecem com "Sinal".
Implementação: Retorna o nome do primeiro objeto encontrado (ou cabo, mas isso requer outras funções que possam manuseá-lo).
Notação: ObjectFindM("Sinal*");
Exemplo: você deve remover da janela "0" somente as etiquetas de texto que comecem com "Sinal".
Notação: ObjectDelete(0,"Sinal*");