Resposta

Atualmente, estou criando um fluxo de trabalho para estratégias de forex bem-sucedidas. Junte-se a mim!

47 respostas

AlgotradingDE

Cliente, bbp_participante, comunidade, sq-ultimate, 30 respostas.

Perfil da visita

2 anos atrás #277576

Uso o StrategyQuant há mais de uma década, mas, acredite ou não, até agora não havia usado todos os seus recursos.

Meu processo consiste em criar milhares de estratégias no construtor e, em seguida, submetê-las a uma verificação de robustez muito seletiva. As (poucas) estratégias sobreviventes são então ativadas em uma conta de demonstração MT4, onde devem executar pelo menos 25 negociações antes de eu considerá-las para uso em uma conta real.

Até o momento, estou muito satisfeito com esse processo e gostaria de automatizar mais a produção de sistemas bem-sucedidos. É por isso que tenho me aprofundado nos recursos de projetos personalizados que podem ser usados para criar fluxos de trabalho personalizados.

Embora eu esteja criando alguns exemplos de fluxos de trabalho para estratégias de forex bem-sucedidas, ficaria feliz se alguém neste fórum estiver interessado no mesmo e disposto a compartilhar suas experiências.

Em especial, eu gostaria de saber se alguém já iniciou um projeto desse tipo por conta própria?

Gerhard Frischholz
https://Algotrading.de

1

AlgotradingDE

Cliente, bbp_participante, comunidade, sq-ultimate, 30 respostas.

Perfil da visita

1 ano atrás #278123

Oi Kevin,

Outro ponto importante a ser considerado, obrigado por seu comentário. Acho que todos concordamos que o desempenho ao vivo deve ser o mais próximo possível das estatísticas de desempenho simuladas do StrategyQuant. Embora todos saibamos que nunca haverá uma correspondência perfeita. Mas eles precisam corresponder "de alguma forma" (embora eu ainda esteja pensando em como quantificar esse "de alguma forma").

Ei, por que não criar um fluxo de trabalho juntos e otimizá-lo em conjunto? Podemos ter instrumentos diferentes, prazos diferentes nos quais queremos nos concentrar, mas os métodos para criar sistemas de teste robustos devem ser algo que possamos fazer em conjunto.

O que todos acham? Terei prazer em compartilhar meus arquivos de fluxo de trabalho como ponto de partida.

Com os melhores cumprimentos

AlgotradingDE

 

Gerhard Frischholz
https://Algotrading.de

2

FirestarZA

Cliente, bbp_participante, comunidade, sq-ultimate, 19 respostas.

Perfil da visita

1 ano atrás #278126

Em primeiro lugar, pode parecer que sou "avançado" no uso do meu fluxo de trabalho, mas isso é apenas uma percepção. Pensei muito sobre isso e criei e testei um grande número de fluxos de trabalho, mas ainda não tenho nada que me satisfaça nem de perto.

Então, uma coisa em que acredito firmemente é um período (digamos, os últimos dois anos) de espera. Esse é um período que nunca foi tocado pelo processo de desenvolvimento (geralmente, executo de 2019/01/01 até a data atual para isso). Isso basicamente simula os últimos 3 anos como uma execução de conta de demonstração. Eu marco esse período como OOS, enquanto IS é o restante dos dados históricos disponíveis. Essa é minha última etapa, antes de verificar a correlação do portfólio. Em seguida, filtro somente os OOS (já que o restante já foi testado exaustivamente de uma forma ou de outra).

Agora, vou lhe dar minha versão das respostas às perguntas que você fez:
- Quais testes de robustez outras pessoas estão usando?
Gosto dos testes de robustez mais avançados, mas tento obter um pouco de tudo. Portanto, faço vários testes de MC, testes hipotéticos, testes de diferentes períodos e mercados e, em seguida, passo para o SPP e o WFM especificamente, dos quais sou um grande fã (embora eu possa não necessariamente excluir estratégias que não passem nesses dois testes).

- quais testes de robustez ajudam a produzir estratégias que funcionam em um ambiente real
Acredito que o WFM e o holdout são ótimos testes para simular um ambiente real. Mais uma vez, talvez eu não seja necessariamente muito rigoroso com o WFM especificamente, já que é um teste de toque mesmo, mas quero alguns resultados decentes, mesmo que não me dêem meu quadrado 9×9 que passou.

- E quanto à otimização de estratégias que foram aprovadas com sucesso: é possível/necessário otimizá-las depois ou devemos deixá-las intocadas?
Atualmente, não faço otimização. A razão para isso é que tenho muito medo de me adaptar demais. Evito o máximo possível o que pode aumentar o excesso de ajuste. Não acho que vou evitar isso sempre, mas, por enquanto, não otimizo. Isso pode se tornar algo que farei mais tarde, quando minhas estratégias começarem a falhar e eu precisar dar um pouco de vida a elas antes de descartá-las. Nesse momento, vou testar para ver se isso é bom ou ruim.

Por fim, estou no 100%, se você quiser criar um fluxo de trabalho em conjunto. Também terei prazer em compartilhar meu fluxo de trabalho que criei (a maioria dos meus outros fluxos de trabalho... os que funcionam, mais ou menos, são fluxos de trabalho de outras pessoas que modifiquei).

Peço apenas que façamos isso em outra plataforma. Na minha opinião, o fórum não é muito propício para uma boa comunicação. Mas ficarei feliz em participar do que vocês decidirem.

2

Kevin

Assinante, bbp_participante, cliente, comunidade, sq-ultimate, 4 respostas.

Perfil da visita

1 ano atrás #278130

Oi Gerhard,

Em resposta à sua sugestão, eu gostaria muito de trabalhar em conjunto na criação e otimização de fluxos de trabalho. Informe-me como gostaria de avançar. Considero o algotrading.de um projeto muito interessante.

Seguindo os critérios de entrada em operação, considero os critérios de classificação perfeitamente válidos e, em algum momento, gostaria de analisar os critérios de seleção de estratégia como algo que pode ser otimizado como uma estratégia em si.

No momento, estou em um processo de teste e refinamento de meus fluxos de trabalho, mas basicamente o que estou usando é o seguinte:

- Construtor: filtragem básica na população inicial para a evolução genética, filtragem mais rigorosa na classificação por fator de lucro, estabilidade e retorno anual de % / DD% sobre o capital inicial (cf. https://strategyquant.com/codebase/annual-return-max-drawdown-of-initial-capital/).

- Robustez: Executo precisão de 1 minuto, manipulação de comércio MC (ordem, salto), execução em diferentes períodos de tempo, se em um período de tempo menor que H1, executo em dados de tick, parâmetros de estratégia MC, histórico de dados MC, spread de derrapagem MC

- Otimização: otimização sequencial e WF Matrix. Aplico os parâmetros otimizados e faço todos os testes de robustez novamente com os novos parâmetros

Geralmente, tenho que executar todo o fluxo de trabalho várias vezes até a otimização, para ter pelo menos algumas estratégias com as quais possa iniciar a fase de otimização, porque essa é geralmente a parte mais "trabalhosa", no sentido de que é onde reviso cada estratégia uma a uma para ver quais parâmetros são os mais estáveis, etc.

Depois de testar na demonstração etc., executo testes de correlação no QA. Executo testes de correlação em QA, para remover do portfólio as estratégias correlacionadas e deixá-las em stand by. Ajusto os tamanhos das posições dependendo do DD MC 95% de cada estratégia e do tamanho da conta.

De qualquer forma, essa é a minha maneira atual de trabalhar e ainda estou em uma fase de consolidação, e é por isso que eu estaria interessado em trabalhar em conjunto.

Cumprimentos

1

Conmariin

Assinante, bbp_participant, comunidade, cliente, 54 respostas.

Perfil da visita

1 ano atrás #278166

Olá a todos! 🙂

Aqui está um dos meus fluxos de trabalho para o Eurusd H1

Com os melhores cumprimentos

Conmariin

Anexos:
Você deve ser logado para ver os arquivos anexos.

Automatisches Handeln mit Expert Advisor
https://www.rabenesche.de

2

AlgotradingDE

Cliente, bbp_participante, comunidade, sq-ultimate, 30 respostas.

Perfil da visita

1 ano atrás #278237

Olá Conmariin,

Muito obrigado por compartilhar seu fluxo de trabalho. Esse é o espírito certo que ajuda todos nós a melhorar.

Comecei hoje a analisar seu fluxo de trabalho e será uma ótima oportunidade para discutir os prós e os contras de realizar diferentes tarefas.

Também compartilharei um fluxo de trabalho que finalizei recentemente. Ele me dá resultados muito bons no período de tempo 1H do EURUSD. Você pode fazer o download e analisá-lo pelo link abaixo.

Vamos dedicar algum tempo para analisar os componentes dos fluxos de trabalho que compartilhamos e, em seguida, trabalhar juntos em possíveis aprimoramentos ou simplesmente aprendizados de cada um dos exemplos.

Aprecio muito sua disposição em compartilhar seu trabalho e convido todos os interessados a participar de nossa discussão. Vamos criar um fluxo de trabalho (e não apenas um) que nos faça ganhar muito dinheiro.

Com os melhores cumprimentos

Gerhard Frischholz

Anexos:
Você deve ser logado para ver os arquivos anexos.

Gerhard Frischholz
https://Algotrading.de

2

AlgotradingDE

Cliente, bbp_participante, comunidade, sq-ultimate, 30 respostas.

Perfil da visita

1 ano atrás #278271

Estou executando seu fluxo de trabalho em um computador na nuvem e acabo de perceber que você está exigindo a criação de 3.000 estratégias antes de colocar os retestes em ação. Um cálculo aproximado me diz que o Builder teria que ser executado por aproximadamente 2 meses para produzir essa quantidade de estratégias iniciais.

Minha pergunta seria: isso se baseia em sua experiência com os próximos testes de robustez ou um número menor de sistemas iniciais também funcionará?

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Assinante, bbp_participant, comunidade, cliente, 54 respostas.

Perfil da visita

1 ano atrás #278273

Oi Gerhard,

Eu pego 3000 estratégias construídas porque os testes de robustez resolvem muita coisa depois disso e geralmente não deixam muita coisa. Também chamo isso de "campo de treinamento" 😉.

Mas como tenho um VPS com 8 núcleos e 32 GB de RAM no Linux, leva em média de 3 a 4 semanas até que eu tenha as 3.000 estratégias completas. Depende do par que eu criei.

Pessoalmente, acho muito importante definir critérios rígidos ao fazer a classificação, pois não otimizo as estratégias. Elas são substituídas por novas se estiverem funcionando mal.

—–

Em seu fluxo de trabalho, notei que você executa etapas adicionais para classificar as estratégias. Você executa essas etapas adicionais porque depois classifica as estratégias manualmente? Eu sempre as classifico automaticamente no final de cada etapa. Você pode definir isso em "Ranking" -> "Delete failed strategies from databank" (Excluir estratégias com falha do banco de dados). Isso agilizaria seu fluxo de trabalho e o automatizaria mais.

Automatisches Handeln mit Expert Advisor
https://www.rabenesche.de

0

AlgotradingDE

Cliente, bbp_participante, comunidade, sq-ultimate, 30 respostas.

Perfil da visita

1 ano atrás #278279

Olá Conmariin,

Nossas abordagens são muito parecidas e, para mim, também se constatou que preciso de um número significativo de estratégias criadas antes mesmo de iniciar todos os testes de robustez. Porque eles realmente precisam ser muito rigorosos para obter resultados realistas em tempo real.

Com relação à otimização, cheguei à mesma conclusão que você, ou seja, não otimizar as estratégias que sobreviveram aos testes de solidez. Inicialmente, achei que elas deveriam ser robustas o suficiente para serem otimizadas para a última fase do mercado, mas acho que isso está completamente errado. Concordo plenamente com você que se trata de encontrar (construtor) e selecionar (retester) estratégias sólidas. E não colocar as mãos no botão de otimização 🙂

Quanto às 3.000 estratégias que você cria antes de iniciar os testes de solidez. Eu uso uma pequena modificação que economiza algum tempo no processo de criação:

Deixo o construtor criar estratégias somente no período selecionado (como 1H), o que cria estratégias muito mais rapidamente. Em seguida, como meu primeiro reteste, executo essas estratégias no timeframe de 1 minuto. De acordo com minhas estatísticas, cerca de 80% das estratégias sobrevivem a esse teste de timeframe de 1 minuto. O teste em si leva apenas alguns minutos, portanto, para concluir, posso criar muito mais estratégias no mesmo período de tempo simplesmente dividindo esse processo em duas etapas.

Para esclarecer, o que eu faço é:

1. Execute o Builder com o período de tempo selecionado para, digamos, 3.000 estratégias

2. Execute o teste Higher Backtest Precision com dados de 1 minuto nessas 3.000 estratégias

Gosto muito desta discussão, ela tem tudo o que é necessário para aprendermos uns com os outros. Mais uma vez, obrigado por compartilhar sua experiência, ficarei feliz em compartilhar a minha.

Continuarei avaliando seu fluxo de trabalho e entrarei em contato se tiver mais coisas para perguntar e discutir.

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Assinante, bbp_participant, comunidade, cliente, 54 respostas.

Perfil da visita

1 ano atrás #278280

Oi Gerhard,

À primeira vista, seu método parece ser mais rápido. Mas há um pequeno erro de raciocínio. Meu método é:

Etapa 1: Crie uma estratégia com o período H1 com dados em H1 (mais rápido) -> a estratégia está correta e, em seguida, verifique diretamente com a cruz se a estratégia também está correta no período H1 com dados em M1 (mais lento) -> se a estratégia não estiver correta, exclua-a imediatamente de forma automática. Crie a próxima estratégia.
Etapa 2: Após a criação de 3.000 estratégias, vem o reteste.

Seu método é:
Etapa 1: criar estratégias com o período de tempo H1 em H1 (mais rápido) até que 3000 estratégias tenham sido criadas.
Etapa 2: Verifique se as estratégias estão corretas no período H1 com dados em M1 (mais lento) -> 80% (no seu exemplo) estão corretas = 2400 estratégias.
Etapa 3: O reteste é iniciado com 2.400 estratégias.

É claro que você será mais rápido com menos estratégias 😉

Automatisches Handeln mit Expert Advisor
https://www.rabenesche.de

0

AlgotradingDE

Cliente, bbp_participante, comunidade, sq-ultimate, 30 respostas.

Perfil da visita

1 ano atrás #278281

Olá Conmariin,

Seu comentário me faz repensar minha declaração. Eu era da opinião de que o teste Higher Backtest Precision em dados de 1 minuto é realizado para todas as estratégias que estão sendo geradas, e não apenas para as que passaram nos critérios definidos pelo Builder. Se esse for o caso, é claro que você não economizará nada ao separar as duas tarefas e, em vez disso, acabará com menos estratégias do que pretendia.

Não encontrei nenhuma declaração clara nos documentos do StrategyQuant com relação a isso. Você experimentou?

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Assinante, bbp_participant, comunidade, cliente, 54 respostas.

Perfil da visita

1 ano atrás #278284

Oi Gerhard,

Não acho que seja algo que precise ser documentado. É mais como uma coisa lógica.
Do jeito que seu método é, com certeza você pode fazer isso! Mas então você não começará com 3.000 estratégias, mas com menos.

Na verdade, isso não importa, pois ambos os métodos têm sua justificativa. Eu evito a intervenção manual no fluxo de trabalho. Pelo menos no que diz respeito a isso. É a mesma coisa que negociar com robôs: eliminar ao máximo a fonte humana de erros. Muitas vezes me peguei querendo aceitar uma estratégia "fracassada" em vez de "aprovada". "Mas ela teve um drawdown tão bom...!" 😉

A propósito, devo dizer que os Expert Advisors criados com o StrategyquantX são os mais lucrativos. Iniciei um portfólio SQX completamente novo em uma conta demo no ano passado. E o lucro, embora tenha sido um ano difícil, foi de cerca de 60%.
Com base nesse resultado, comecei este ano com uma conta real. Sim, eu sei, realmente não é um bom ano para começar! 😀 Mas, como uso a regra 1%, as perdas são suportáveis e os robôs estão apenas se recuperando.
A diferença entre a versão de demonstração e a versão real também é muito pequena. É claro que os robôs nem sempre fazem 1:1 em cada negociação, como na demonstração, mas são aceitavelmente muito próximos.

Automatisches Handeln mit Expert Advisor
https://www.rabenesche.de

0

AlgotradingDE

Cliente, bbp_participante, comunidade, sq-ultimate, 30 respostas.

Perfil da visita

1 ano atrás #278285

Olá Conmariin,

você está absolutamente certo. E o que eu ignorei foi o fato de que você colocou requisitos muito rigorosos no teste de 1 minuto do High Backtest Precision. Portanto, mesmo com o "meu" método, a maioria das estratégias iniciais não passaria no teste de 1 minuto.

Gosto do fato de você ter mencionado que não quer interferir manualmente no teste de robustez. Isso é verdade. Muitas vezes, somos tentados a curvá-lo porque gostamos de determinadas estratégias e não queremos que elas sejam deixadas de lado pelo "cruel" teste de robustez.

E parece que essa maneira de lidar com as coisas funciona para você. Isso é bom. Além disso, para mim, o teste em uma conta real é o teste definitivo.

Gerhard Frischholz
https://Algotrading.de

0

Kevin

Assinante, bbp_participante, cliente, comunidade, sq-ultimate, 4 respostas.

Perfil da visita

1 ano atrás #278301

Oi Gerhard e Conmariin,

Obrigado por compartilhar esses fluxos de trabalho. Anexei um dos meus. Como observei anteriormente, uso uma métrica personalizada (Annual % Ret / DD% on initial capital), que publiquei para todos na base de código. No entanto, se você não quiser se preocupar com isso, o Annual % ret / DD% incorporado seria semelhante, mas não tão rigoroso.

Observe que algumas tarefas após as compilações iniciais estão desativadas. Elas estão lá porque tentei trabalhar com uma fase de construção completa em que eu faria várias iterações de construção, com dois computadores (um com minha licença profissional e outro com minha licença inicial). Na última vez, esperei até ter cerca de 8.000 compilações antes de prosseguir. Por outro lado, observei que, se eu começar a fazer testes de robustez com apenas, digamos, 1.000 estratégias, e nenhuma passar nos testes, ficarei tentado a relaxar meus critérios para permitir que mais estratégias passem pelos filtros. Separei a alta precisão (resolução de teste M1) da fase de construção, basicamente porque a licença inicial não permite a realização de novos testes. A outra opção seria fazer a construção diretamente com a resolução M1. Mas, por enquanto, prefiro usar o mesmo processo para ambos, mesmo que isso signifique ter de lidar com muito mais estratégias que sei que serão filtradas na próxima fase.

Observe que personalizei as opções de evolução genética e incluí filtros na população inicial. Dessa forma, leva mais tempo para gerar a população inicial, mas descobri que as estratégias produzidas por essa população inicial são de melhor qualidade. No final de cada tarefa, estou filtrando na classificação ou filtrando na tarefa de verificação cruzada. Copio apenas as estratégias bem-sucedidas em um banco de dados para cada fase. Dessa forma, posso examinar quais estratégias sobreviveram a cada fase de reteste, caso eu queira ajustar o fluxo de trabalho de alguma forma ou simplesmente examinar os resultados de uma determinada fase com mais detalhes, sem precisar executar as tarefas uma a uma para fazer isso.

Como estou usando a Darwinex como corretora, você verá que tenho uma etapa em que testo com dados de ticks da Darwinex nos dados de ticks disponíveis (normalmente apenas a partir de 2018).

Estou repensando meu fluxo de trabalho com algumas das ideias que você compartilhou neste fórum. Por isso, agora quero ter um processo em que não precise aplicar parâmetros otimizados e, portanto, ter que testar novamente etc. com esses novos parâmetros, pois acho que isso torna as coisas muito mais complicadas. Mesmo assim, acho que as etapas de otimização sequencial e de otimização de avanço são importantes, mas mais como testes de robustez, mesmo que eu não aplique os parâmetros "otimizados". A otimização sequencial garante que os parâmetros estejam em uma faixa estável de valores e, bem, para resumir a história, ler Roberto Pardo me convenceu de que o WF também é útil para a robustez.

Gosto da ideia de selecionar as estratégias a serem incluídas em um portfólio de conta ativa com base no desempenho em uma conta de demonstração ou em uma conta real com tamanho mínimo de posição. No entanto, em parte da classificação, acho que também seria bom ter um corte de requisitos mínimos, como fator de lucro > 1,5 ou algo do gênero. O que você acha?

Saúde!

Anexos:
Você deve ser logado para ver os arquivos anexos.

1

AlgotradingDE

Cliente, bbp_participante, comunidade, sq-ultimate, 30 respostas.

Perfil da visita

1 ano atrás #278305

Oi Kevin, oi Conmariin,

Infelizmente, minha (longa) resposta às suas postagens ainda está aguardando moderação, embora eu não saiba o motivo. Portanto, espero que ela seja publicada em breve, pois é muito importante. Eu gostaria de sugerir um projeto de colaboração muito concreto.

Eu diria que, se não for lançado até amanhã, vou me esforçar e escrever a postagem inteira mais uma vez.

Vamos torcer para que tudo dê certo!

Gerhard Frischholz
https://Algotrading.de

0

Conmariin

Assinante, bbp_participant, comunidade, cliente, 54 respostas.

Perfil da visita

1 ano atrás #278310

Oi Kevin,

Obrigado por seu fluxo de trabalho! 🙂

Adaptei o útil ProfitFactor(IS) >= 1 nas opções genéticas ao meu fluxo de trabalho. Sim, leva mais tempo para chegar à sua quantidade de estratégias, mas acho que você está certo.

Também estou fazendo o Walk-Forward-Matrix com o vencedor do "concurso", mas é apenas um elemento estatístico para mim. Reconhecerei os resultados, mas eles não são um critério para eu classificar os EAs.

 

Automatisches Handeln mit Expert Advisor
https://www.rabenesche.de

0

Visualizando 15 respostas - 16 até 30 (de um total de 48)

1 2 3 4