Sugestões para EA (Perder para Lucrar) - página 4

 

Eis como fica no teste de 2 anos, mudança para 1 lote, mudança para 240 quadros, ambos parâmetros feitos em sincronia entre si=60. (E toda essa lógica retirada, exceto M60).

Barras em teste 13544
Carrapatos modelados 5961890
Qualidade de modelagem 90,00
Erros de gráficos não correspondentes 0
Depósito inicial 10000,00
Lucro líquido total 30459.02
Lucro bruto 99716.99
Prejuízo bruto -69257.97
Fator de lucro 1,44
Pagamento previsto 152,30
Deságio absoluto 1037,97
Máximo de drawdown 20707.98 (35,94%)
Desembolso relativo 35,94% (20707.98)
Total de negócios 200
Posições curtas (ganho %) 97 (30,93%)
Posições longas (ganho %) 103 (30,10%)
Lucros comerciais (% do total) 61 (30,50%)
Perdas comerciais (% do total) 139 (69,50%)
A maior
comércio lucrativo 5833,00
comércio de perdas -3156,00
Média
comércio de lucro 1634,70
comércio de perdas -498,26
Máximo
vitórias consecutivas (lucro em dinheiro) 6 (14728,00)
perdas consecutivas (perda em dinheiro) 12 (-1587,00)
Maximal
lucro consecutivo (contagem de vitórias) 14728,00 (6)
perda consecutiva (contagem de perdas) -9507,00 (5)
Média
vitórias consecutivas 1
perdas consecutivas 3

 
diostar 2011.10.05 12:37

Você entendeu mal. O MTF não é a razão, ou mesmo um problema. A esfera é apenas MA. Deixe-me tentar explicar, muito brevemente.

MA conta o passado. Assim, quando assumir o sinal de MA diz em um H1, a expectativa, E, é que no próximo quadro, digamos H4, "concorde" com o passado de H1. Para lucrar é quando o passado de H1 se manifesta na corrente de H4. Quando E ocorre, significa fechar o comércio, ou fazer o que a estratégia quiser.

Mas neste caso, o cartaz fez o contrário. Suas falhas comerciais bastante básicas porque todas as expectativas estão confusas.


Tho Multi-TimeFrame não é meu ponto forte. Portanto, por favor, corrija meu pensamento se ele estiver errado.

Na Lógica acima, você postou:

if((Close[0]<=fastMA30 && Close[0]<=fastMA60 && Close[0]<=fastMA240))

o && que destaquei em vermelho me diz que o fastMA240 também precisa estar de acordo.

Vendo que o fastMA240 é o mais lento de todos os MA. Não seria razoável dizer que o fastMA240 torna o sistema mais lento de mudar. E que todo o sistema é prejudicado pelo que o fastMA240 tem a dizer?

Agora, se aceitarmos sua sugestão:

if((Close[0]<=fastMA30 && Close[0]<=fastMA60))

Agora me parece que ao deixar o fastMA240 de fora o sistema responderá mais rapidamente às mudanças. Mas ainda temos o problema do MA60 rodando o Show.

Em conclusão: tudo o que importa é o resultado final de se é uma abordagem lucrativa a longo prazo. A IMO não tem como dizer qual é melhor. Sua abordagem ou a abordagem do autor original sem testes :)

Finalmente, coisas que não me agradam nos códigos acima. 1) O uso da barra atual, como em Close[0], esse código não é amigável aos testadores. 2) O uso do sinal =, como em <=, em primeiro lugar, é muito raro que um preço seja = porque é do tipo duplo. E segundo, na rara instância em que todos os MAs são = Fechar[0] o sistema torna-se sem direção, exemplo: if(xMA>=Fechar[0]){Buy}_____if(xMA<=Fechar[0]){Vender}, qual é a ação correta quando é =Fechar[0].

 
diostar:

A julgar pelos resultados, eu não recomendarei nenhuma otimização. Até que estas questões de estratégia e lógica sejam examinadas.

Primeiro, eu não tive tanto tempo depois de correr aquele teste de 7 anos em um H1, e tanta motivação para olhar através de todas as linhas de códigos no EA, mas certamente fiquei impressionado com o uso de 2 números mágicos - para comércios "lentos" e "rápidos". Que tipo de estratégia é esta, pensei eu?

Depois, olho para os padrões de codificação e tento comentar o número lento e trágico. A ea não funcionou, como esperado.

Então, comentei o outro número mágico rápido. E surpresa, surpresa, a EA compila sem erros.

Então, parece que a lógica é completamente incompleta do que é desejado? Com certeza, sua EA está apenas preenchendo com base em alguma lógica de MA lenta, mas nunca na rápida?

Como você é o proprietário deste EA, você deveria ter respostas melhores para tudo isso, do que minhas simples maneiras.


Eu tinha idéias que não foram implementadas, daí você ver os números mágicos lentos e rápidos.


A EA está usando apenas o número mágico lento para as ordens, e está completamente separada das EA lentas e rápidas que estão sendo escaneadas por entradas

Espero que isto responda à sua pergunta

obrigado

 
ubzen:
Vocês deveriam transformar isto em um pequeno projeto de criação de um sistema vencedor a partir disto. Todos começam com a versão atual da EA e depois acrescentam algo a ela. Então vocês selecionam o codificador mais forte entre todos vocês para montar as melhores idéias. Quando vocês atingirem o objetivo, então coloquem-no na base de código. Vai ser muito interessante ver o que sai.

Eu adoraria colaborar em tal esforço para construir uma EA rentável a partir de uma versão básica da EA que foi publicada

 
mbirrell:

Eu procuraria uma outra maneira de entrar no mercado. Quando o sinal é dado por estes indicadores, já é tarde demais. Eu sempre uso ordens limitadas em antecipação ao que o mercado vai fazer. Alguns podem rir de ter adotado esta abordagem, mas funcionou comigo. Lembre-se que não é um sprint, é uma maratona.


Eu definitivamente concordo com sua lógica, mas como eu converteria minha lógica existente para se ajustar ao modelo de ordem limite?
 
danjp:

Idéia interessante, eu f c0d3 não tem problema, eu tentaria. Eu deveria ser capaz de substituir minha função de regras pelas regras mfro dele. Isso lhe daria horas de negociação de regras, notificação por e-mail, verificação de erros, empilhamento, limite e ordens pendentes parada de rastreamento, parada etc. Provavelmente, levaria apenas um dia ou dois para que essas regras funcionassem em minha casca de EA. Eu poderia, então, olhar para ajustar as regras para tentar torná-las mais lucrativas.

Estou definitivamente de acordo com isto, mas você estaria de acordo em compartilhar seu código neste tópico?
 
diostar:

se você tivesse visto suas "regras", elas são algo como isto (para o caso de venda):

Matematicamente falando, isto é um grande disparate. A razão é porque o MA em quadro superior, como esperado, é mais lento devido ao tempo mais longo necessário para completar uma barra, do que os mais baixos. Portanto, no geral, esta lógica acaba sendo determinada principalmente por esta condição inferior:

Assim, nessa época, MA mostra o passado sob a perspectiva de MA240, depois 60, depois 30, comercializava uma barra de venda. Minha sugestão pode ser simplesmente "reverter" esta regra absurda, portanto, em vez de uma entrada curta, vá longa, e vice versa. Tenho a certeza de que o resultado se torna mais bonito.



Deixe-me explicar um comércio curto, é vice versa para um comércio longo:

  • Condição de entrada 1: Se o preço de fechamento atual for inferior a MA30(100 amostras), MA60(100 amostras) e MA240(100 amostras), estamos em uma tendência decrescente
if((Close[0]<=fastMA30 && Close[0]<=fastMA60 && Close[0]<=fastMA240))
   {
      // we are in a downtrend
      //Comment("\n"+"short only");
      shortEntry();
   }
  • Condição de entrada 2: Aguardar que o preço de entradaTF(15M) seja fechado acima de MA30(50 amostras) e MA60(50 amostras)

if(iClose(Symbol(),entryTF,1)>=slowMA30 && iClose(Symbol(),entryTF,1)>=slowMA60)
  • Entrar curto

A idéia: Lógica MTF

  • Quando o preço é inferior a MA30 que é baseado em M30
  • Quando o preço é inferior a MA60 que é baseado no H1
  • Quando o preço é inferior a MA240 que é baseado no H4
  • esperar que os preços de fechamento M15 estejam acima de MA30, que é baseado em M30
  • esperar que os preços de fechamento da M15 estejam acima de MA60 que é baseada na M60
  • Entrar abreviadamente: com parâmetros de pedido


Também vou tentar reverter as entradas, e ver o que acontece


Espero que isto responda à sua pergunta

 
ubzen:

@diostar, idéias interessantes e assumir a Lógica MTF. Isto é algo que eu tenho notado sobre a Lógica MTF, Um período de tempo geralmente domina o sistema.

@danjp, sim, essa é provavelmente a maneira mais rápida de colocar as Regras em um programa de trabalho em que você confia. Já que a maioria de nós já tem um Template no qual se pode conectar uma lógica. Se alguém não se sente à vontade para dar seus códigos, uma sugestão seria ter quem já montou os códigos usando as Bibliotecas Confiáveis a partir de nossa base de códigos. (Exemplo: OrderReliable.mqh.).

Você sabe o que! Eu até gosto desta idéia. Se eu conseguir que 3 pessoas assinem a partir daqui, começarei um Novo Fio. Nós colaboramos no esforço de tentar criar uma EA lucrativa. Será um bom teste para ver se vários comerciantes poderiam realmente comercializar o mesmo sistema :)


Favor postar aqui o fio, se você o iniciar, eu def def quero participar
 
danjp:

Eu faria uma corrida otimizada que tivesse (1*std) -> (5*std) e também na mesma corrida tentaria 0,3 - > 1,5 tanto no SL como no TP. Eu começaria em uma corrida de 12 meses. Se você obtiver resultados decentes com algumas dessas corridas, eu adicionaria então uma hora na EA para a rotina de troca e usaria os valores obtidos na corrida anterior para ver se você pode melhorá-la ainda mais sem ter que trocar 24 horas por dia, 7 dias por semana.

Boa sorte, continue publicando os resultados.

Você pode recomendar qualquer documentação para executar um backtest com (1*std) -> (5*std) e (0,3 - > 1,5 tanto no SL quanto no TP)
 
diostar:

O teste para frente totaliza 156 operações é muito mais confiável do que aquelas 39 operações de retaguarda. Toda a idéia do teste de retaguarda é colocar o máximo possível de negócios e obter seus resultados rápidos. Para que serve o teste de retaguarda?







Obacktest é apenas para testar a estratégia, e ver que sua lógica funciona, mas para julgar se será lucrativo, apenas os testes de avanço podem determinar


Houve muitas vezes, quando você vê um EA rentável no backtest, então você o executa ao vivo, e volátil, seu EA quebra seu banco