Processo de Desenvolvimento do Sistema Ubzen

 

Objetivo: Estou tentando definir um processo de desenvolvimento de sistema. Tenho algumas idéias dentro de minha cabeça, mas não é abrangente. Minha esperança é que outros que conhecem melhor possam criticar o processo. Se algum membro proeminente tiver problemas comigo usando o fórum como um blog pessoal, ou não vir nenhum bem nesta experiência, basta dizer e eu paro imediatamente.

Ok, já temos aqui o sistema fornecido por um membro chamado sakis. Uma pequena amostra de teste de 3 meses mostrou resultados esperados. Agora estou aprendendo como obter todas as medições estatísticas para este período usando este artigo. Vou começar pela Mae/Mfe primeiro.

 

ubzen há basicamente duas abordagens para capturar o MAE/MFE de cada comércio durante o backtesting.

O primeiro método que segui foi o de rastrear o lucro/perda máxima da posição tick-by-tick durante o backtesting, capturando os extremos de forma "em tempo real". Esta é a abordagem mais intensiva em CPU e também a menos propensa a erros sistemáticos no resultado final.

O segundo método, e o que eu uso atualmente, é esperar até que o backtest esteja completo e depois, durante o deinit(), você faz um loop pela história do pedido, puxando os carimbos de tempo de abertura e fechamento do pedido para cada comércio e procurando o preço extremamente baixo e extremamente alto que ocorreu entre esses dois carimbos de tempo. E então use esses preços extremos para calcular o MAE e MFE que devem ter ocorrido para o comércio naqueles momentos.

Isto é muito rápido e leve, ideal para o backtesting, mas pode introduzir erros se o MAE ou MFE ocorrer na vela de abertura ou na vela de fechamento porque os pontos de preço que definem essas velas no arquivo hst podem ter acontecido cronologicamente antes da abertura do pedido ou após o fechamento do pedido (mas dentro da mesma vela).

Na prática, não achei que este inconveniente da segunda abordagem fosse de fato uma grande preocupação. Mas é algo a ser percebido.

(outro benefício de desenvolver uma rotina de inclusão para seu deinit() é que você também pode usá-lo como um roteiro para rodar em suas contas forward/live... basta arrastar e soltar e isso permite que você analise as negociações passadas na conta)

 

oi ubzen, como você está?

1) Sua lógica de saída parece não funcionar como definido no sistema original, pelo menos a partir de uma primeira olhada no gráfico.

2) O sistema funciona melhor para mim com uma taxa de inversão de risco de 2 em vez de um, talvez o RRR dinâmico possa até melhorar mais.

3) 01.01.2010 a 01.03.2010 parece ser um ponto doce para esta EA, quase sem perdas, o período pode ser um pouco pequeno para testes e não ser uma boa escolha.

4) Temos uma interpretação diferente da estratégia, depois de uma cruz preço/ma cruz entendo que o MACD já deve ter cruzado 0 (mas não mais que 5 barras de distância) mas você espera pela cruz MACD e abre as ordens.

-Minha interpretação já filtra muitas operações.

Eu acrescentei:

a)suporte para compra e venda ao mesmo tempo. (também se as ordens estiverem no breakeven, novas ordens podem ser abertas).

b)Filtro de entrada do ponto pivô (comprar somente acima/vender somente abaixo)

c)uso a CCI em vez da lógica original de saída. (Ainda há muito a fazer em relação a este caso).

aqui algumas fotos:


 

Obrigado Zzuegg,

Homem, você é tão arriscado ;). 10% ???. Estou contente de ver que está funcionando um pouco no futuro. Tive medo de olhar para o futuro por medo de curvas que se ajustassem a esta coisa. Um olhar visual é tudo o que é preciso.

1) Sua lógica de saída parece não funcionar como definido no sistema original, pelo menos a partir de um primeiro olhar no gráfico. Vou refazer o código para ter certeza de que ele está fazendo a intenção original do provedor b4 Eu postarei a EA novamente.

2) O sistema funciona melhor para mim com uma taxa de inversão de risco de 2 em vez de um, talvez o RRR dinâmico possa até melhorar mais. Bem, é por isso que estou fazendo tudo isso para ver o que poderia melhorar.

3) 01.01.2010 a 01.03.2010 parece ser um ponto doce para esta EA, quase sem perdas, o período pode ser um pouco pequeno para testes e não uma boa escolha. Por isso, atingiu o ponto doce na primeira tentativa, eu temia isso. Eu realmente não me importo se esta coisa é o Santo Graal. Estou apenas usando-o como um estudo de caso, não é meu sistema, portanto, posso afixar os códigos.

4) Temos uma interpretação diferente da estratégia, depois de uma cruz preço/ma cruz eu entendo que o MACD já deve ter cruzado 0 (mas não mais de 5 barras de distância) mas você espera pela cruz MACD e abre as ordens. Sim, eu ensinei sobre isso. Somente o fornecedor original pode esclarecer isso agora.

 
ubzen:

Obrigado Zzuegg,


3) 01.01.2010 a 01.03.2010 parece ser um ponto doce para esta EA, quase sem perdas, o período pode ser um pouco pequeno para testes e não ser uma boa escolha.
Por isso, atingiu o ponto doce na primeira tentativa, eu temia isso. Eu realmente não me importo se esta coisa é o Santo Graal. Estou apenas usando-o como um estudo de caso, não é meu sistema, portanto, posso afixar os códigos.

Se funciona bem, por que não usar um sistema? Ainda há muito a fazer, mas para uma estratégia bruta isto mostra potencial. a lógica de saída tem que ser estendida fortemente do meu ponto de vista.

em relação aos 10% que eu gosto de ver claramente os altos e baixos sobre os testruns, nada para simulações realistas, é claro.


acrescentar:

o mais interessante é que mesmo com uma taxa de inversão de risco de 2, este sistema ganhou mais de 50% das operações, o que é uma vantagem e tanto.

 

@1005phillip: Advertência Anotada. Eu nunca aproveito o tempo para baixar os dados do tick-data. Qual é o tamanho desse problema?

Porque a Máxima Excursão Adversa deve ser mais importante para um comerciante, vamos começar com isso. Usando os mesmos resultados, eu tracei o que eu acredito ser o (método LS) dentro da minha linha de tendência Excel que eu fiz, Alguém me corrige se eu estiver errado. A ferramenta utilizada para gerar a folha de cálculo foi a Rosh's encontrada aqui. A seguir, vou usar a ferramenta 1005phillip's encontrada aqui para avaliá-la com base em algumas constantes de tempo diferentes.

Bem, tem uma inclinação positiva. Então, o que isto significa e como podemos melhorá-lo? Diabos, se eu soubesse disso, eu não estaria fazendo experiências aqui. No entanto, fiel ao artigo, é Positivo, esse é um ponto em nosso mealheiro. Vou deixar a lógica do Stop_Level no lugar. Quando o testarmos com um tempo diferente 2-clique estes números devem mudar de atribuição.

Abaixo está a Imagem do Lote e a Slope.... Também anexei o .csv criado pelo relatório.

Arquivos anexados:
 

ubzen, é uma questão de preferência pessoal quanto ao que você faz com os dados do MAE.

Eu não caracterizo MAE versus P/L... para mim isso não é uma causa e um efeito estatisticamente válido.

Eu caracterizo MAE como MAE que lhe diz que sua "estratégia de entrada" o colocou em uma posição muito cedo, por uma quantia igual ao MAE. Como tal, seu "potencial de lucro" para o comércio foi minado por uma quantia igual ao MAE.

O MAE é para afinar sua estratégia de entrada. MFE é para afinar sua estratégia de saída.

A diferença entre MFE e OrderProfit é algo que eu chamo de "excesso de MFE" ou simplesmente "EMFE" e isto é dinheiro que você deixou na mesa em virtude de sua estratégia de saída, mantendo a posição aberta por muito tempo.

E, em terceiro lugar, tempo é dinheiro. Capital amarrado apoiando a posição de margem de um comércio é capital que não pode ser usado para apoiar outro comércio. Portanto, o "tempo para MAE" e o "tempo para EMFE" são parâmetros a serem analisados, pois são uma indicação para você do tempo que você não está usando seu capital de forma sábia/eficiente.

E por último, é fundamental que você investigue a cronologia da ocorrência do MAE e da MFE. Se o MAE ocorre antes da MFE, então o comércio era bom, mas precisa de otimização para afinar as estratégias de entrada e saída para o MAE mínimo e o EMFE mínimo.

Mas se MAE está ocorrendo depois da MFE, então a estratégia é quebrada de várias maneiras. Talvez a mais significativa seja abrir posições opostas àquela que se deveria tomar. Se sua estratégia abre uma posição longa e o mercado procede para esculpir uma ação de preço que resulta na MFE ocorrendo antes da MFE para sua operação, então isso significa que sua operação realmente deveria ter sido uma posição curta, não uma posição longa (nesse caso a MFE para a posição longa torna-se a MAE para a curta, e vice versa para a MFE).

Acho que talvez já tenha postado isto antes, não consigo lembrar:

 
Obrigado por esses gráficos, 1005phillip. Isso me explica muito bem.
 
Olá Phillip, estou preso e preciso de sua ajuda. Usando sua ferramenta, de alguma forma recebo valores que não estou esperando. Exemplo quando eu somo o Lucro/Perda em Pips Data ele retorna um número negativo, mas o sim foi positivo. Acho que isto tem algo a ver com a freqüência, mas você pode explicar. Ia te fazer uma pm, mas outros podem ter isso ? sobre sua ferramenta. Obrigado.... Em anexo, estão os arquivos do teste.
Arquivos anexados:
help.zip  20 kb
 
@1005phillip obrigado pelos gráficos! Eu tive estas estatísticas codificadas na minha EA por um tempo... isto definitivamente melhora minha interpretação dos números que ela cospe!!
 

oi phillip. apenas algumas pequenas perguntas do meu lado:

Depois de usar sua ferramenta, recebi estes arquivos de histograma. Até agora, dei uma olhada de perto no "Profitloss versus MAE & MFE" em pips.

Até onde entendi, estes valores mostram que os pips que eu perdi durante o comércio estavam abertos. Basicamente, os melhores resultados seriam quando Lucro==MFE e MAE==0. Correto?

Se você olhar para a figura abaixo, podemos ver:

  • se o EA tem lucro, ele está próximo da MFE (claro, já que eu uso takeprofits)
  • se o EA também lucra, o MAE está em sua maioria perto de 0, o que significa que também as entradas são bastante boas. (pelo menos o melhor durante o tempo aberto do pedido)
  • se o EA faz perdas, ele corresponde principalmente ao MAE (é claro, já que é usado o stoploss):
  • Se nesse caso a MFE estiver perto de 0, não houve chance de ter lucro.
  • Mas se a MFE é alta significa que eu perdi uma Saída.

Estas conclusões são válidas?


Razão: