Características da linguagem mql5, subtilezas e técnicas - página 61
![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
Agora encontrei um problema quando o histórico contém mais de 1000 negócios e quando chamo a função de processamento do histórico, por exemplo, para calcular o lucro do histórico. + A informação no gráfico começa a desacelerar e o terminal fica pendurado. Isto é, as citações vêm com um atraso.
Sem o código, só se pode adivinhar.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Peculiaridades de mql5, dicas e truques
Alexey Navoykov, 2017.07.21 17:04
É decepcionante que não haja herança múltipla na MQL. No entanto, podemos fazê-lo funcionar de todas as formas possíveis - com modelos e macros - como podemos evitá-los?)
Aqui está o que eu fiz.Todas as classes de origem devem ser declaradas como modelos que definem a classe pai.
Claro que existem algumas subtilezas, relacionadas com o facto de as classes serem herdadas sequencialmente (na ordem que estabelecemos), em vez de concomitantemente (como em herança múltipla verdadeira). Em particular, eles terão prioridades diferentes quando ocorrer uma sobrecarga. Além disso, se uma mesma classe template participar várias vezes na cadeia de herança, serão classes completamente diferentes, não relacionadas uma com a outra de forma alguma. Por isso temos de ter cuidado aqui. Mas não há problemas com as interfaces, você pode herdar sem restrições.
Mas e sem uma declaração sob a forma de modelos?
Por exemplo, temos duas bibliotecas prontas e auto-suficientes:
classe CLib1 : público CClass1 { };e
classe CLib2 : público CClass2 { };
Precisamos de fazer com que haja tal herança na classe do programa:
CLib1--> CLib2 --> CProgram para que ambas as bibliotecas estejam disponíveis na classe CProgram. E a biblioteca CLib1 estará disponível no CLib2.
Isto evita que ambas as bibliotecas sejam modificadas de qualquer forma.
É possível?
Com herança múltipla, seria provavelmente assim.
classe CProgram : público CLib1,CLib2 { };
Que tal sem um modelo de declaração?
Por exemplo, temos duas bibliotecas prontas e auto-suficientes:
classe CLib1 : público CClass1 { };e
classe CLib2 : público CClass2 { };
Precisamos de fazer tal herança na classe do programa:
CLib1--> CLib2 --> CProgram para que ambas as bibliotecas estejam disponíveis na classe CProgram. E a biblioteca CLib1 estará disponível no CLib2.
Isto evita que ambas as bibliotecas sejam modificadas de qualquer forma.
Isto é possível?
Com herança múltipla, seria provavelmente assim.
classe CProgram : público CLib1,CLib2 { };
Não vais perder nada se fizeres isto:
class CProgram { CLib1 lib1; CLib2 lib2; };
Não vais perder nada se o fizeres:
Provavelmente a melhor maneira de obter dados de funções de cópia assíncrona (CopyRates, CopyTicks, etc.) é através do EventChartCustom.
Especialmente relevante para os indicadores.
É possível saber que o servidor de negociação mudou, não apenas a conta -AccountInfoString (ACCOUNT_SERVER) no OnDeinit (EA, não indicador) irá retornar o novo servidor de negociação.
Memorando
Fórum sobre negociação, sistemas de negociação automatizados e testes estratégicos
Minha insatisfação com o testador de estratégias. para desenvolvedores de MQL
fxsaber, 2017.12.04 09:11
Resultado
Há toda uma classe de indicadores que sobrepõem gráficos de preços de outros símbolos no gráfico de preços. Eles são feitos da mesma forma - através de amortecedores indicadores.
No entanto, no MT5 existe um maravilhoso OBJ_CHART, que lhe permite realizar esta tarefa de forma muito mais bonita e sem buffers indicadores.
Por exemplo, você pode colocar qualquer indicador e ver imediatamente como ele fica em outro símbolo.
Esquema de escravidão - vários gráficos são exibidos como pano de fundo do gráfico principal.
Por exemplo, você pode lançar qualquer indicador e ver imediatamente como ele fica em outro símbolo.
Esquema de escravidão - vários gráficos são exibidos como pano de fundo do gráfico principal.