Discussão do artigo "Expert Advisor Universal: Integração com os Módulos de Sinais Padrão do MetaTrader (parte 7)"

 

Novo artigo Expert Advisor Universal: Integração com os Módulos de Sinais Padrão do MetaTrader (parte 7) foi publicado:

Esta parte do artigo descreve as possibilidades de integração do motor CStrategy com os módulos de sinais incluídos na biblioteca padrão no MetaTrader. O artigo descreve como trabalhar com sinais, assim como demonstra uma forma de criar estratégias personalizadas com base nas mesmas.

Um conjunto de várias classes que estão incluídas no pacote MetaTrader 5 padrão são utilizados para a geração de estratégias automatizadas usando o Assistente MQL. As classes estão disponíveis como arquivos mqh, localizados em subpastas apropriadas do diretório MQL5\Include. Estas classes (ou módulos) podem ser convencionalmente divididas em várias categorias. Aqui estão elas.

  • Classes básicas para a organização de dados (CObject, CArrayDouble, CArrayObj e outros). Todos os outros módulos para negociação são construídos com base nessas classes.
  • Classes de acesso dos buffers do indicador (CDoubleBuffer, CIndicatorBuffer). Por conseguinte, eles são utilizados para trabalhar com indicadores.
  • Classes de indicadores e classes TimeSeries baseadas na classe comum CSeries .
  • A classe básica CBaseExpert e CExpert são derivadas dela. Todos os módulos auxiliares são baseados na CBaseExpert - por exemplo, o módulo de cálculo do capital e o módulo de controle do trailing stop. A CExpert é a base de todos os Expert Advisors customizados.
  • Módulos de sinal com base na CExpertSignal, que por sua vez se baseia na CErtBase. Os módulos de sinais geram negociações de sinais de Compra e Venda. Utilizam-se as classes dos indicadores, no qual se baseiam os sinais.
  • O módulo de negociação CExpertTrade. É baseado na classe CTrade e fornece acesso à execução de operações de negociação.

O diagrama abaixo mostra o esquema geral de herança vertical das classes usadas no processo de geração automática das estratégias:

 

Fig. 1. A herança de classes padrão do gerador de estratégias

Autor: Vasiliy Sokolov

 

Nice work! Your tutorials are great.

But I'm having trouble to compile StrategySignals.mq5. Follows the log of errors:

cannot cast 'DoubleValue' to 'ULongValue'    Dictionary.mqh    226    14

cannot cast 'DoubleValue' to 'ULongValue'    Dictionary.mqh    226    14

 
igorsds:

Nice work! Your tutorials are great.

But I'm having trouble to compile StrategySignals.mq5. Follows the log of errors:

cannot cast 'DoubleValue' to 'ULongValue'    Dictionary.mqh    226    14

cannot cast 'DoubleValue' to 'ULongValue'    Dictionary.mqh    226    14

In line 226 of Dictionary.mqh, I replaced:

lValue=(ULongValue)dValue;

for

lValue.value=(ulong)dValue.value;

I guess it's OK now.

Razão: