Características da linguagem mql5, subtilezas e técnicas - página 54
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
Características das estruturas herdadas
Se você quiser saber se a bandeira "Unlimited" está ativada em Settings --> Charts --> Max bars in the window, use esta construção:
Quando não quero um método público para iluminar (ao digitar um ponto após o nome do objeto, por exemplo), eu faço deste método um operador público. No entanto, nem sempre é possível usar uma muleta deste tipo.
Quando não quero um método público para iluminar (ao digitar um ponto após o nome do objeto, por exemplo), eu faço deste método um operador público. No entanto, nem sempre é possível usar uma muleta destas.
Há um exemplo no código? Por favor, por favor.
Há um exemplo no código? Por favor, por favor.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Peculiaridades da linguagem mql5, sutilezas e truques
fxsaber, 2017.09.08 13:20
Isto não é...
Isto não é a mesma coisa?E isto.
Não é a mesma coisa?Não, claro que não. Campos Valor1, Valor2, ... são muitos; GetValue1() e GetValue2() são o mesmo. Não é racional fazer cálculos adicionais a cada GetValue. Não faz sentido fazer cálculos mesmo em um GetValue chamado mais de uma vez.
Não consegui descobrir como definir o tamanho de um campo de matriz de uma estrutura simples. Por isso, fiz esta muleta.
Eu usei macros, para encurtar. Na MQL5 provavelmente não há outra maneira. Esta é uma solução normal em C++? Como o modelo <tipo S>.
Fórum sobre negociação, sistemas de negociação automatizados e testes estratégicos
Bibliotecas: MT4Orders
fxsaber, 2017.09.14 08:52
O gatilho SL/TP foi postado no fórum mesmo antes das bandeiras MQL5 Reason flags. Sua lógica mostrou claramente que quando os níveis SL/TP/SO de uma posição aberta são aceitos pelo servidor de negociação, uma ordem de mercado correspondente é gerada, que está na tabela MT5 de ordens abertas até que ela seja executada.
Portanto, na MT5 mesmo na MQL5 pura, a modificação/eliminação de tais ordens não é possível, e a lógica de negociação na MT5 requer verificar se uma ordem aberta está realmente congelada ou não.
...Você pode ver que por mais de um quarto de segundo a ordem TP estava pendurada entre as abertas. Qualquer tentativa de modificar/apagar teria causado erros.
Esteja atento a esta característica do MT5.
Quando não quero um método público para acender (ao digitar um ponto após o nome do objeto, por exemplo), eu faço deste método um operador público. No entanto, nem sempre é possível usar uma muleta destas.
Na verdade, é uma espécie de mega muleta. Como você vai analisar seu código mais tarde contendo operadores tão pouco informativos que você não consegue entender o que eles estão fazendo?
Deve ser um erro de desenho. Se uma classe não se destina inicialmente a ser mudada do exterior, mas contém apenas métodos Get-methods, ela deve ser a mesma. Todas as modificações são realizadas através das classes herdadas da mesma.
Outra variante conveniente seria a herança protegida, quando a classe base contém todos os métodos e a classe herdada exibe apenas os métodos Get. E quando for necessário, pode lançá-lo para a classe base. Mas o Metaeditor ainda não corrigiu o bug, todos estes métodos serão despejados na lista, mesmo que não estejam disponíveis.
Não é racional fazer cálculos adicionais sobre cada GetValue. Mesmo um GetValue chamado mais de uma vez não precisa fazer cálculos.
Então o que o impede de usar o método Recalculate()? Se é isso que faz a classe funcionar logicamente, porque a própria classe não pode definir quando é necessário recalcular, isso significa que a classe é controlada por um usuário.