Comprar stop Vender stop Grid conselheiro como uma classe

 

Estou abrindo um projeto

Esboço de parada de compra Vender grade de parada como uma classe

Para testar uma estratégia de trabalho com ordens de parada pendentes.

A essência do comércio: no início, colocamos duas ordens de parada pendentes (Buy stop e Sell stop). Se um deles acionou, então apague o segundo (só vamos modificá-lo mais tarde, mas por enquanto, simplesmente apague-o) e novamente duas ordens de parada pendentes.

O significado: um conjunto de posições de acordo com a tendência.

Screenshot (resultado quando há uma tendência e várias ordens pendentes foram acionadas):

Comprar parada Vender parada Grade

(um pouco mais tarde ...).


Como acessar o código completo: SOMENTE através da conexão ao projeto, enquanto as peças estarão em discussão neste tópico. A própria EA terá a forma de uma classe (*.mqh).


Adicionado:

Quando a EA está em execução, os dados são escritos em uma matriz na OnTradeTransaction. O formato de gravação é o seguinte: se tivermos uma posição Comprar, gravamos '+1'; se tivermos uma posição Vender, gravamos '-1'.

Vamos verificar a idéia de pirâmide (no caso de uma posição ter sido aberta na direção da anterior)

 
Vladimir Karputov:

Estou abrindo um projeto para testar uma estratégia de trabalho com ordens de parada pendentes.

A essência do comércio: no início, colocamos duas ordens pendentes (Buy stop e Sell stop). Se um deles acionou, então apague o segundo (só vamos modificá-lo mais tarde, mas por enquanto, simplesmente apague-o) e novamente duas ordens de parada pendentes.

O significado: um conjunto de posições por tendência.

Foto:

(um pouco mais tarde ...).


Como acessar o código completo: SOMENTE através da conexão ao projeto, enquanto as peças estarão em discussão neste tópico. O próprio Expert Advisor estará na forma de uma classe (*.mqh).


Atualmente estou fazendo algo semelhante ao pedido, só que mais complicado

 

Acompanharei o projeto com interesse...

 
Vasily Bykov:

Acompanharei o projeto com interesse...


Por favor, esclareça, você quer estar conectado ao projeto(Projetos - MetaEditor) ?

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 

Hi!


Tais robôs são conhecidos e estão disponíveis. E qual é o objetivo de seu projeto?
 
Alexander Ivanov:

Hi!


Tais Conselheiros Especializados são conhecidos por existirem. E qual é o objetivo de seu projeto?

Os principais objetivos são descritos acima:

  • é criar uma EA como uma classe separada
  • desenvolvimento de projetos(Projetos - MetaEditor)
  • testando uma estratégia comercial em ordens de parada pendentes

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 

Acho o tema interessante. Antes de mais nada, a condição "como classe".

Meu "puramente como classe" não funcionou. A arquitetura do sistema inclui o Modelo Principal, que contém funções padrão OnInit(), OnTick(), etc. Além disso, ele declara um objeto da classe CExpert - que tem funções - membros da classe, que são os manipuladores de todos esses eventos. No modelo principal - a partir de funções padrão, as funções dos membros são chamadas.

Portanto, já temos "não apenas na forma de uma classe", pois existem funções padrão, a partir das quais os manipuladores de eventos da classe EA são chamados.

E nesta arquitetura, se quisermos substituir esta mesma classe EA, teremos que reescrever todo este arquivo de modelo. A EA como uma classe" deve ser assim: declaramos uma classe EA (toda sua descrição está nos arquivos include), incluímos um modelo - e é isso mesmo.

Em outras palavras, acontece que no modelo deve haver funções padrão, um objeto hub que conecta a EA a estas funções padrão, e então o arquivo principal pode ser reduzido a "estrutura correta" - declarando um objeto EA e conectando o modelo. Neste caso, no arquivo principal, declaramos um objeto EA, conectamos o modelo principal, o objeto hub registra um objeto e conecta suas funções de manuseio no modelo principal às funções de eventos padrão.

É até mesmo possível implementar um monte de TC em uma EA - para isso, vários objetos EA são declarados e a classe Hub os conecta a todas as funções principais, e eles trabalham independentemente uns dos outros (é claro, ao conectar, deve-se verificar a diferença nos mágicos, e os próprios EAs devem selecionar as posições de seus mágicos).


Sobre "me conectar ao projeto" - estou pronto para me conectar no modo Read Only - é pouco provável que eu escreva algo, mas posso olhar, sugerir algo, apontar erros.

 
George Merts:

***

E ainda, nesta arquitetura, se quisermos substituir este mesmo consultor de classe, devemos reescrever todo este arquivo de modelo. A "EA como uma classe" deve ser assim: declaramos uma classe EA (toda sua descrição - em incluir arquivos), conectamos o modelo - e é isso.

***

... conectar o modelo e passar os parâmetros de entrada para a classe Expert Advisor


George Merts:

***

Sobre "me conectar ao projeto" - pronto para me conectar no modo Read Only - é improvável que eu escreva algo, mas para olhar, para oferecer algo, para apontar erros - eu posso.


Feito, conectado.

 
Vladimir Karputov:

... conectar o modelo e passar os parâmetros de entrada para a classe EA



Feito, plugado.

О ! Eu o tenho. Eu tenho os arquivos. Quando eu tiver tempo, verei o que há lá.

 
Ibragim Dzhanaev:

Quem não pode programar, não pode participar?


Qualquer pessoa pode participar, mas somente aqueles que quiserem participar do projeto(Projetos - MetaEditor) terão acesso ao código FULL. Haverá uma discussão sobre o projeto, portanto a opinião de qualquer pessoa (programador ou usuário) será valiosa.

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 
Ibragim Dzhanaev:

Não sei como programar, mas construí sua idéia para 4.



Há apenas mql5 aqui. O antigo terminal não cita.

Razão: