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...
Por favor, esclareça, você quer estar conectado ao projeto(Projetos - MetaEditor) ?
![Проекты - Справка по MetaEditor Проекты - Справка по MetaEditor](/i/community/logo_metatrader5_small.png)
- www.metatrader5.com
Hi!
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](/i/community/logo_metatrader5_small.png)
- www.metatrader5.com
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.
***
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
***
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.
... 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á.
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](/i/community/logo_metatrader5_small.png)
- www.metatrader5.com
Não sei como programar, mas construí sua idéia para 4.
Há apenas mql5 aqui. O antigo terminal não cita.
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
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 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):
(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)