Discussão do artigo "Quase-construtor para criar um Expert Advisor"

 

Novo artigo Quase-construtor para criar um Expert Advisor foi publicado:

Disponibilizo meu próprio conjunto de funções de negociação na forma de um Expert Advisor pronto para uso. O método agora proposto permite gerar diversas estratégias de negociação simplesmente adicionando indicadores e mudando os parâmetros de entrada.

O EA criado pelo construtor tem muitas configurações que podem ser usadas para criar estratégias únicas. Na versão 4.XXX, aplicam-se as seguintes regras: 

  • é usado o símbolo atual (o símbolo do gráfico em que o EA está sendo executado)
  • Take Profit, Stop Loss e Trailing nos parâmetros de entrada são definidos em pontos (points). Points é o tamanho do ponto do instrumento atual na moeda da cotação, por exemplo, para o par 'EURSD' 1.00055-1.00045=10 points.

Sempre é possível ver quais são os 'points' no gráfico do símbolos arrastando a ferramenta Fio de Retículo:

points

Fig. 1. Points

Autor: Vladimir Karputov

 
Não estou vendo nenhum anexo. Apenas um.
 
Andrei Novichkov #:
Não estou vendo nenhum anexo. Apenas um.

Problema técnico. Eles estarão disponíveis daqui a pouco.

 

Boa tarde, obrigado pelo artigo, mas tenho uma pergunta:)

Por que não usar uma classe padrão e carregá-la com funções adicionais, porque é o mais simples e conveniente possível, em vez de inventar sua própria bicicleta?

 
Daniil Kurmyshev #:

Boa tarde, obrigado pelo artigo, mas tenho uma dúvida :)

Por que não usar uma classe padrão e carregá-la com funções adicionais, porque é o mais simples e conveniente possível, em vez de inventar sua própria bicicleta?

E você provavelmente tentou complementar o CExpert por conta própria e até conseguiu?

 
Vladimir Karputov #:

E provavelmente você mesmo tentou complementar o CExpert e até conseguiu?

Sim, aqui está um exemplo de como você pode fazer isso herdando da classe base CExpert , em uma nova classe CExpertCustom:

1. A possibilidade de complementar posições com novas transações (multitrade) é realizada.

Como a classe base tem funções virtuais, elas foram substituídas na classe descendente e ocultadas para uso posterior em futuras classes de herança da CExpertCustom.

2. A possibilidade de alterar o símbolo base do Expert Advisor foi implementada, o que possibilita a criação de Expert Advisors com várias moedas

Conclusão:

A classe CExpert padrão tem uma alta velocidade de operação

É tão confiável e testada quanto possível

É fácil de complementar e manter

É possível criar um Expert Advisor de várias moedas em um bot herdando a nova classe CExpertCustom.

Devido ao fato de a classe padrão usar ativamente a herança e o polimorfismo, é possível criar Expert Advisors que funcionem de acordo com uma lógica completamente diferente, mas o processamento e a sequência das funções básicas serão os mesmos.

Nesse caso, o construtor de Expert Advisors pode ser usado de acordo com o modelo do terminal com os indicadores necessários e MM...

Arquivos anexados:
 
Daniil Kurmyshev #:

Sim, aqui está um exemplo de como você pode herdar da classe base CExpert , em uma nova classe CExpertCustom:

1. Implementou a capacidade de complementar posições com novas negociações (multi-negociação)

Como a classe base tem funções virtuais, elas foram substituídas na classe descendente e ocultadas para uso posterior em futuras classes de herança CExpertCustom.

2. A possibilidade de alterar o símbolo base de um Expert Advisor foi implementada, o que possibilita a criação de Expert Advisors com várias moedas

Conclusão:

A classe CExpert padrão tem uma alta velocidade de operação

Confiabilidade máxima e comprovada

É fácil de complementar e manter

É possível criar um expert em várias moedas em um único bot se você herdar a nova classe CExpertCustom.

Devido ao fato de a classe padrão usar ativamente a herança e o polimorfismo, é possível criar Expert Advisors que funcionem de acordo com uma lógica completamente diferente, mas o processamento e a sequência das funções básicas serão os mesmos.

Nesse caso, o construtor de Expert Advisors pode ser usado de acordo com o modelo do terminal com os indicadores necessários e MM...

O CExpert e tudo o que é gerado por ele não foi testado por um longo tempo. É por isso que criamos nosso próprio conjunto de funções de negociação: com muitas verificações. A classe mostrada por você não tem uma fração da funcionalidade da minha abordagem.

 
Vladimir Karputov #:

O CExpert e tudo o que é gerado por ele não é verificado há muito tempo. É por isso que criei meu próprio conjunto de funções de negociação: com muitas verificações. A classe mostrada por você não tem nem uma fração da funcionalidade da minha abordagem.

As bibliotecas padrão que você usou:

#include <Trade\PositionInfo.mqh>

#include <Trade\Trade.mqh>

#include <Trade\SymbolInfo.mqh>

#include <Trade\AccountInfo.mqh>

#include <Trade\DealInfo.mqh>

#include <Trade\OrderInfo.mqh>

#include <Expert\Money\MoneyFixedMargin.mqh>

Seu arquivo funcional "Trading engine 4" usa exatamente as mesmas bibliotecas da classe CExpert, só que você mesmo escreveu o processamento para a classeTrade, e as verificações e mecânicas semelhantes que você desenvolveu já estão implementadas nas classes CExpertBase, CExpertTrade e outras...., é disso que estou falando, é por isso que estou falando em criar outra bicicleta, porque você poderia reprojetar a classe CExpert para que ela passasse na verificação, se por algum motivo ela não passasse, se você fizesse isso uma vez, não teria mais esse problema.

Acho que você tem um bom conjunto de funções básicas que são muito difíceis de trabalhar se forem usadas em um projeto grande, mas copiar funções do seu projeto de doador para o seu próprio projeto, muitas pessoas gostarão muito, mas será difícil usar toda a classe, ao contrário da classe CExpert, que é fácil de implantar imediatamente, por meio do mesmo "MQL Wizard", mencionado no artigo.

 
Parabéns pelo excelente artigo.
Os arquivos desse artigo não estão anexados ao terminal de leitura, apenas "Indicators_Code.mq5".

Você poderia adicionar ao artigo, por favor?

Obrigado! (Desculpe-me por meu inglês)
 
Arquivado em arquivos:
Arquivos anexados:
9717_411.zip  56 kb
 
Vladimir Karputov #:
Arquivo em arquivos:

Olá, Vladimir,

Tenho uma pergunta sobre "Ordens pendentes" e o parâmetro "Maximum Spread" correspondente no mecanismo de negociação da versão 4.004;


Quanto tempo essa função espera que as ordens pendentes sejam colocadas antes que o spread correspondente seja atingido?

Em outras palavras, se o spread não diminuir para o valor especificado após um determinado período de tempo, a ordem pendente não será cancelada? Como esse ciclo funciona?