Precisa de ajuda - página 4

 
a007 #:

Tenho três perguntas simples: o futuro da humanidade depende das respostas:

1. de onde veio a idéia da EA (quem a sugeriu, onde eu a li, ...) ?

2) Quais são os sinais (como sei que funciona, como entendo) que só funciona em uma janela, e não se abre na segunda?

3. Por que jogar outra janela, por que uma janela não é suficiente?

1. durante o período de teste só posso dizer uma coisa até agora, encontrei a dica na rede, por muito tempo fui nesta direção, mas senti que faltava algo), e então finalmente vi uma coisa interessante na rede, que deu todas as respostas que eu preciso), acho que muitos sobre a essência da idéia sabem, e talvez alguém já esteja cortando couve usando este algoritmo ... Não sei ), está na superfície, mas não vi nada semelhante em fontes públicas por muitos anos, então tenho que testá-lo de joelhos ... Eu uso o Excel, lixei as citações nele, enchi-o de fórmulas e cálculos, e ainda o faço assim, não fixei meu status para relatórios por 4 dias, fixei a tabela, mas os lucros sem reinvestir por 5 dias foram em média 30% ao dia, não um martin, sem otimização, sem indicadores, não me importa que corretor, os drawdowns não foram observados, as reversões são lentas, o que facilita a abertura na direção certa, hoje os lucros também estão dentro dos 30%. Se você me ajudar a completar a coruja para o teste, publicarei os relatórios do MT4 para o período do teste.
2. sim os sinais são simples, primeiro você coloca a coruja em uma janela, tudo funciona, depois você a coloca na segunda janela, na janela aparece, mas nada acontece, as ordens não se abrem.
3. até agora a situação é a seguinte: um sinal para entrada é gerado, eu escolho a lista de pares necessários nos parâmetros de entrada, indiquei a direção e enviei para a janela do gráfico; de acordo com as regras, por exemplo 6 sinais aparecem e para cada sinal uma lista diferente de barras, neste modo coruja eu tenho que enviar o segundo e depois o terceiro ... em diferentes janelas para abrir consecutivamente 6 ordens de diferentes escopos da lista.
A fim de abrir tudo em uma janela, devemos adicionar toda a matemática do algoritmo que daria sinais para abertura seqüencial de 6 ordens, mas isso é um tópico separado para o trabalho de cada programador.
Nesta fase, vejo a solução da seguinte forma, se você sugerir algo melhor, não me importo, no caso de um resultado positivo de testes (de preferência em MT) já fará sentido e interesse em criar uma máquina totalmente automatizada, enquanto tudo está indo muito melhor, e veremos.

 
Sergey Korsunov #:

Tudo feito, funciona muito bem, obrigado
mas ao compilá-lo emite alguns avisos, o que significa? E como posso removê-los?

EncomendarEnviar em MQL4

Devolve o número do ticket atribuído ao pedido pelo servidor comercial ou -1 em caso de falha. Para obter as informações sobre o erro, você precisa chamar a função GetLastError().


Mas o valor retornado voa para nada. Não é crucial, é claro, mas não é o melhor estilo de programação.

F1 lhe ajudará, há também um pequeno exemplo

 
No momento, alcancei o resultado necessário com meu código, que eu alterei com sua ajuda, e muito obrigado por isso.
O Conselheiro Especialista começou a abrir a lista de símbolos necessários em novas janelas.
amanhã terei que corrigir todo o código, e não é um código pequeno, e é meio confuso), mas parece funcionar), não tenho experiência e conhecimento.
 
Sergey Korsunov #:
No momento, obtive o resultado que preciso com meu próprio código, que mudei com sua ajuda, e muito obrigado.
O Expert Advisor começou a abrir a lista de símbolos necessários em novas janelas.
amanhã terei que corrigir o código inteiro, e não é pequeno, e é meio confuso), mas funciona), não tenho experiência e conhecimento suficientes.

Você precisa aprender a escrever código curto imediatamente. Compare sua versão com a minha.

Jogue fora funções e suportes supérfluos, e organize peças repetitivas com funções.

Metade do texto do programa deve ser comentada em 3 níveis:

1. O programa inteiro é claro, completo e sem redundância.

2. A determinadas partes do programa: Funções, loops, ...

3. Aos operadores individuais.

 
a007 #:

Você precisa aprender a escrever código curto imediatamente. Compare sua versão com a minha.

Jogue fora funções e suportes desnecessários, e organize peças repetitivas com funções.

Metade do texto do programa deve ser comentada em 3 níveis:

1. O programa inteiro é claro, completo e sem redundância.

2. A determinadas partes do programa: Funções, loops, ...

3. Aos operadores individuais.

Estou apenas no início, apenas começando )
Minha versão original tinha mais de 8 000 linhas O_o ))
Após as correções de ontem o código foi reduzido exatamente 2 vezes, mas também é muito, muito comparado ao seu.
Ontem, levei um dia inteiro para reescrevê-lo.
Se vocês me ajudarem a terminar o que comecei, ficarei muito grato a vocês.

O bot tem funcionado bem com esta estratégia hoje.
Meu principal trabalho é apenas abrir pedidos na ordem certa e isso tem sido bem feito.
A única coisa que estraguei hoje foi não prestar atenção ao tamanho do lote padrão, tudo na abertura com um lote de 0,01, e tive que lote 1,0 para definir, apenas desatenção, certamente poderia reiniciar 1 lote, mas isso é preguiçoso demais).

O resultado da estratégia de negociação de hoje (em 1 lote) +50%!
Enquanto escrevia este post recebi mais de 65% de LUCROS em Excel)

Arquivos anexados:
Screenshot_7.jpg  421 kb
 
a007 #:

............ transformar peças repetitivas em funções.


isto é exatamente o que falta no código, mas não sei como fazê-lo
todo meu código consiste em repetições

 
Sergey Korsunov #:
a EA começou a abrir a lista necessária de instrumentos em novas janelas.

O que você chama de novas janelas? No Windows há um programa diferente rodando em cada janela! Você administra muitos terminais? Por que você precisa de novas janelas?

A EA tem que trabalhar em um gráfico. Ela tem que enviar as ordens ao servidor. Em quais janelas se abre a lista?

 
a007 #:

O que você chama de novas janelas? No Windows há um programa diferente rodando em cada janela! Você já operou muitos terminais? Por que você precisa de novas janelas?

A EA tem que trabalhar em um gráfico. Ela tem que enviar as ordens ao servidor. Em quais janelas se abre a lista?

Vou tentar descrevê-lo em
. Nesta fase, o bot é necessário apenas para a abertura de pedidos de acordo com certas regras durante os testes de estratégia.
Temos apenas um terminal.
As novas janelas são necessárias apenas para a abertura de novas ordens em uma seqüência cíclica.
O visual é o seguinte:
Eu lanço o bot na primeira janela, ele abre 6 pedidos com símbolos diferentes, considerando a lista.
Abro a lista seguinte de 6 pedidos na segunda janela, mas com configurações ligeiramente diferentes na janela Parâmetros de Entrada e assim por diante.
Após todas as ordens nas janelas terem sido abertas, eu apago todos os bots para que, após um lucro ser fixado por um bot adicional que fecha todas as posições, o bot não os abra novamente.
Por enquanto, 6 janelas são suficientes, é claro, posso trabalhar em uma janela e apagar o bot toda vez que novas ordens são abertas, mas é um problema demais).
Se você estiver interessado, posso mostrar-lhe a parte de trabalho do código.
Ao abrir novos pedidos, é preciso definir 2 parâmetros nas configurações, o terceiro se necessário (a direção do negócio é comprar ou vender).
No momento em que o bot faz seu trabalho, às vezes ele abranda um pouco ao abrir pedidos, mas eu acho que é apenas por causa de um código muito longo).
A variante com um arquivo de texto com uma lista de instrumentos simplificaria o código de forma incomensurável e aceleraria significativamente seu trabalho.


 
Sergey Korsunov #:

Há apenas um terminal.
Novas janelas são necessárias apenas para abrir novas ordens em uma seqüência cíclica.
É o seguinte: eu começo o bot na primeira janela, ...

Eu peguei. Você está confundindo janelas e gráficos. O terminal é uma aplicação Windows. Cada aplicação funciona em sua própria janela. Como o terminal é o mesmo, a janela é a mesma.

Você inicia o robô em janelas diferentes, depois espera, depois fecha-o... Você perde muito tempo com isso.

O robô deve ser um só e fazer todo o trabalho de uma só vez. Em seguida, sobre os 100 dólares reais e 2 semanas de testes.

Se perder, boa viagem. Se encher - reabastecer o depósito.

 
Sergey Korsunov #:

Vou tentar descrever
Nesta fase, o bot é necessário apenas para abrir pedidos de acordo com certas regras durante os testes de estratégia.
Há apenas um terminal.
Novas janelas são necessárias apenas para a abertura de novas ordens em uma seqüência cíclica.
O visual é o seguinte:
Eu lanço o bot na primeira janela, ele abre 6 pedidos com símbolos diferentes, considerando a lista.
Abro a lista seguinte de 6 pedidos na segunda janela, mas com configurações ligeiramente diferentes na janela Parâmetros de Entrada e assim por diante.
Após todas as ordens nas janelas terem sido abertas, eu apago todos os bots para que, após um lucro ser fixado por um bot adicional que fecha todas as posições, o bot não os abra novamente.
Por enquanto, 6 janelas são suficientes, é claro, posso trabalhar em uma janela e apagar o bot toda vez que novas ordens são abertas, mas é um problema demais).
Se você estiver interessado, posso mostrar-lhe a parte de trabalho do código.
Ao abrir novos pedidos, é preciso definir 2 parâmetros nas configurações, o terceiro se necessário (a direção do negócio é comprar ou vender).
No momento em que o bot faz seu trabalho, às vezes ele abranda um pouco ao abrir pedidos, mas eu acho que é apenas por causa de um código muito longo).
A opção de um arquivo de texto com uma lista de símbolos simplificaria o código e aceleraria significativamente seu trabalho.


A segunda lista e configurações dependem do primeiro conjunto de pedidos, ou todas as listas e configurações são conhecidas com antecedência? Eu gostaria de dar uma olhada na parte de trabalho. Você escreve que as configurações têm que ser alteradas para a segunda lista / conjunto de ordens, mas não especifica do que elas dependem.