Desenvolvendo uma estratégia de negociação.
Autores da seção superior.
Desenvolvendo uma estratégia de negociação.
Tim Wreford.
- Remove emoções da negociação. Um operador que segue uma estratégia sabe o que fazer, seja o que for que o mercado faça. Um comerciante que não tem uma estratégia tenta tomar decisões quando o mercado está aberto e está sujeito a ficar emocionalmente ligado a posições. Eles podem experimentar pânico e indecisão quando o mercado não se move a favor deles, já que eles não têm uma resposta preparada.
Economizando tempo. Desenvolver uma estratégia de negociação que tenha vantagem é um trabalho árduo. No entanto, uma vez desenvolvidas, as regras podem ser facilmente automatizadas, liberando o operador de ter que assistir a gráficos durante todo o dia e dando tempo para desenvolver outras estratégias.
No entanto, desenvolver uma estratégia de negociação que seja eficaz pode se tornar um processo complexo. Existem programas de computador disponíveis (como TradeStation e WealthLab) que visam automatizar o processo. Infelizmente, a facilidade com que os sistemas podem ser desenvolvidos e otimizados usando esses programas pode induzir em erro o profissional incauto. Fundamentalmente, uma estratégia deve ser construída em torno de algum tipo de vantagem estatística. É essa vantagem que irá se desenvolver ao longo do tempo e criar um fluxo de caixa positivo para o sistema e para o trader.
3. Escolhendo um instrumento para negociar.
4. A configuração do comércio.
8. Maneiras de Melhorar o Lucro por Comércio.
Você precisa estar logado para postar comentários ou avaliar este artigo.
Backtesting Systematic Trading Strategies em Python: Considerações e Open Source Frameworks.
Backtesting Systematic Trading Strategies em Python: Considerações e Open Source Frameworks.
Neste artigo, Frank Smietana, um dos colaboradores convidados especializados da QuantStart, descreve o cenário de software de backtesting de código aberto Python e fornece conselhos sobre qual framework de backtesting é adequado para as necessidades de seu próprio projeto.
O backtesting é sem dúvida a parte mais crítica do processo de produção da SST (Estratégia de Negociação Sistemática), situada entre o desenvolvimento e a implementação da estratégia (negociação ao vivo). Se uma estratégia é falha, espera-se que um backtesting rigoroso exponha isso, impedindo que uma estratégia deficitária seja implantada.
Vários recursos relacionados se sobrepõem ao backtesting, incluindo simulação comercial e negociação ao vivo. O backtesting usa dados históricos para quantificar o desempenho do STS. Os simuladores de negociação levam o backtesting um passo adiante, visualizando o desencadeamento de negociações e o desempenho de preços em uma base barra a barra. A negociação simulada / ao vivo implanta um STS testado em tempo real: sinalizando negociações, gerando ordens, roteando ordens para corretoras e mantendo posições conforme as ordens são executadas.
A maioria dos frameworks vai além do backtesting para incluir alguns recursos de negociação ao vivo. Isso é conveniente se você quiser implantar a partir de sua estrutura de backtesting, que também funciona com seu corretor e fontes de dados preferidos. O Quantopian / Zipline dá um passo adiante, fornecendo uma solução totalmente integrada de desenvolvimento, backtesting e implementação.
A comunidade Python está bem atendida, com pelo menos seis estruturas de backtesting de código aberto disponíveis. Eles estão, no entanto, em vários estágios de desenvolvimento e documentação. Se você gosta de trabalhar em uma equipe criando uma estrutura de backtesting de código aberto, confira os repositórios do Github.
Antes de avaliar as estruturas de backtesting, vale a pena definir os requisitos do seu STS.
Qual (is) classe (s) de ativos você está negociando? Enquanto a maioria das estruturas suporta dados de Ações dos EUA via YahooFinance, se uma estratégia incorpora derivativos, ETFs ou títulos de EM, os dados precisam ser importados ou fornecidos pela estrutura. As coberturas de classes de ativos vão além dos dados. O framework pode lidar com futuros e opções de tamanho finito e gerar transações roll-over automaticamente? E quanto aos mercados sem liquidez, quão realista uma suposição deve ser feita ao executar grandes pedidos?
Qual freqüência de dados e detalhes seu STS é construído? Um sistema de negociação que exige cada tick ou lance / pedido tem um conjunto muito diferente de problemas de gerenciamento de dados que um intervalo de 5 minutos ou de hora em hora. Os fundos de hedge e as lojas HFT investiram significativamente na criação de estruturas de backtesting robustas e escalonáveis para lidar com esse volume e frequência de dados. Algumas plataformas fornecem um conjunto rico e profundo de dados para várias classes de ativos, como ações da S & P, com resolução de um minuto.
Que tipo (s) de pedido exige o seu STS? No mínimo, limite, paradas e OCO devem ser suportados pelo framework.
Nível de suporte & amp; documentação necessária. Os frameworks de estágio inicial têm escassa documentação, poucos têm suporte além de conselhos comunitários.
Os componentes de um framework de backtesting.
Aquisição de dados e STS: Os componentes de aquisição consomem o arquivo de script / definição STS e fornecem os dados necessários para o teste. Se a estrutura exigir que qualquer STS seja recodificado antes do backtesting, a estrutura deverá suportar funções enlatadas para os indicadores técnicos mais populares para acelerar o teste de STS. Os usuários determinam quanto tempo um período histórico será backtest com base no que o framework fornece ou no que eles são capazes de importar.
O teste de desempenho aplica a lógica STS à janela de dados históricos solicitada e calcula uma ampla gama de riscos & amp; métricas de desempenho, incluindo redução máxima, taxas de Sharpe e Sortino. A maioria das estruturas suporta um número decente de recursos de visualização, incluindo curvas de equidade e estatísticas decifradas.
A otimização tende a exigir a maior parte dos recursos de computação no processo STS. Se o seu STS exigir otimização, concentre-se em uma estrutura que suporte o processamento distribuído / paralelo escalável.
No contexto de estratégias desenvolvidas usando indicadores técnicos, os desenvolvedores de sistemas tentam encontrar um conjunto ideal de parâmetros para cada indicador. Mais simplesmente, a otimização pode achar que um STS crossover médio de 6 e 10 dias acumulou mais lucro sobre os dados de teste históricos do que qualquer outra combinação de períodos de tempo entre 1 e 20. Já com este exemplo trivial, 20 * 20 = 400 combinações de parâmetros ser calculado & amp; classificado.
Em um contexto de portfólio, a otimização busca encontrar a ponderação ideal de todos os ativos do portfólio, incluindo instrumentos em curto e alavancados. Em uma base periódica, a carteira é reequilibrada, resultando na compra e venda de participações de carteira conforme necessário para alinhar com os pesos otimizados.
O dimensionamento de posição é um uso adicional de otimização, ajudando os desenvolvedores de sistemas a simular e analisar o impacto da alavancagem e o dimensionamento dinâmico da posição no STS e no desempenho do portfólio.
Seis Quadros de Backtesting para Python.
Os recursos padrão das plataformas de backtesting de Python de código aberto parecem incluir:
Evento orientado Licenciamento muito flexível e irrestrito Coleção decente de indicadores técnicos predefinidos Capacidades de cálculo / visualização / relatório de métricas de desempenho padrão.
PyAlgoTrade.
O PyAlgoTrade é uma estrutura de backtesting mutuamente documentada, juntamente com recursos de negociação em papel e ao vivo. O suporte de dados inclui o Yahoo! Finanças, Google Finance, NinjaTrader e qualquer tipo de série temporal baseada em CSV, como o Quandl. Tipos de pedidos suportados incluem Market, Limit, Stop e StopLimit.
O PyAlgoTrade suporta negociação Bitcoin via Bitstamp, e manipulação de eventos do Twitter em tempo real.
bt - Backtesting para Python.
bt “visa fomentar a criação de blocos facilmente testáveis, reutilizáveis e flexíveis de lógica estratégica para facilitar o rápido desenvolvimento de estratégias de negociação complexas”.
A estrutura é particularmente adequada para testar o STS baseado em portfólio, com algos para ponderação de ativos e reequilíbrio de portfólio. Modificar uma estratégia para executar diferentes frequências de tempo ou pesos de ativos alternativos envolve um ajuste de código mínimo. bt é construído sobre o ffn - uma biblioteca de funções financeiras para Python.
Backtrader.
Essa plataforma é excepcionalmente bem documentada, com um blog de acompanhamento e uma comunidade on-line ativa para postar perguntas e solicitações de recursos. Backtrader suporta vários formatos de dados, incluindo arquivos CSV, Pandas DataFrames, iteradores de blaze e feeds de dados em tempo real de três corretores. Esses feeds de dados podem ser acessados simultaneamente e podem até representar diferentes períodos de tempo. Corretores suportados incluem Oanda para negociação de FX e negociação de classe de múltiplos ativos via Interactive Brokers e Visual Chart.
pysystemtrade.
Rob Carver, desenvolvedor do pysystemtrade, tem um ótimo post discutindo por que ele se propôs a criar outro framework de backtesting em Python e os argumentos a favor e contra o desenvolvimento de frameworks. O framework de backtesting para o pysystemtrade é discutido no livro de Rob, "Systematic Trading".
O pysystemtrade lista vários recursos de roteiro, incluindo um testador completo completo que inclui técnicas de otimização e calibração e negociação de futuros totalmente automatizada com a Interactive Brokers. Contribuidores de código aberto são bem-vindos.
Zipline é um simulador de negociação algorítmica com capacidades de negociação em papel e ao vivo. Acessível através da interface IPython Notebook baseada em navegador, o Zipline fornece uma alternativa fácil de usar às ferramentas de linha de comando. Suportado e desenvolvido pela Quantopian, o Zipline pode ser usado como uma estrutura de backtesting autônoma ou como parte de um ambiente de desenvolvimento, teste e implementação de STS completo da Quantipian / Zipline. O Zipline fornece 10 anos de dados de estoque históricos americanos com resolução de minutos e várias opções de importação de dados.
O QSTrader é um framework de backtesting com recursos de negociação ao vivo. O Fundador da QuantStart, Michael Halls-Moore, lançou o QSTrader com o intuito de construir uma plataforma robusta e escalável o suficiente para atender às necessidades dos fundos institucionais de hedge, bem como aos traders quantificados de varejo. O QSTrader atualmente suporta dados de resolução "bar" do OHLCV em várias escalas de tempo, mas permite que dados de ticks sejam usados.
Ambos backtesting e live trading são completamente orientados a eventos, simplificando a transição de estratégias de pesquisa para testes e, finalmente, negociação ao vivo. A estratégia principal / código do portfólio é geralmente idêntica em ambas as implantações.
O principal benefício do QSTrader é a sua modularidade, permitindo uma ampla personalização de código para aqueles que possuem requisitos específicos de gerenciamento de risco ou portfólio.
Abraçando o Backtest.
É da natureza humana concentrar-se na recompensa de desenvolver um (esperançosamente lucrativo) STS, depois se apressar em implantar uma conta financiada (porque estamos esperançosos), sem gastar tempo e recursos suficientes para fazer um backtesting completo da estratégia. Mas o backtesting não é apenas um gatekeeper para nos impedir de implementar estratégias falhas e perder capital de negociação, ele também fornece uma série de diagnósticos que podem informar o processo de desenvolvimento do STS. Por exemplo, testar um STS idêntico em dois períodos de tempo diferentes, compreender o empate máximo de uma estratégia no contexto de correlações de ativos e criar portfólios mais inteligentes ao realizar backtesting de alocações de ativos em várias regiões geográficas.
Em posts futuros, cobriremos backtesting frameworks para ambientes não-Python, e o uso de várias técnicas de sampling como bootstrapping e jackknife para backtesting de modelos preditivos de trading.
A Quantcademy.
Participe do portal de associação da Quantcademy que atende à crescente comunidade de traders de quantificação de varejo e aprenda como aumentar a lucratividade de sua estratégia.
Negociação Algorítmica Bem Sucedida.
Como encontrar novas ideias de estratégia de negociação e avaliá-las objetivamente para o seu portfólio usando um mecanismo de backtesting personalizado no Python.
Comércio Algorítmico Avançado.
Como implementar estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatísticas Bayesianas com R e Python.
Desenvolvendo sua estratégia.
Qual é o caminho para o sucesso?
Como você vai ganhar no próximo período?
"Como você vai ganhar no próximo período?" Essa é a questão fundamental por trás do desenvolvimento da estratégia.
Para ganhar em qualquer coisa que valha a pena, você precisa de um plano de jogo. As equipes esportivas profissionais sabem disso e essa ideia se aplica à sua organização, ao seu departamento, à sua equipe & ndash; e até para si mesmo como indivíduo.
Para ser bem sucedido significa saber como usar seu talento e recursos para melhor proveito, e é muito difícil "ganhar" se você não tiver esse plano de jogo no lugar.
Este artigo apresenta uma abordagem sistemática e de senso comum para o desenvolvimento de estratégias.
Como você escreve uma estratégia de negócios?
Em uma empresa com fins lucrativos, para a qual a concorrência e a lucratividade são importantes, suas metas serão diferentes das de um departamento sem fins lucrativos ou do governo. Da mesma forma, os objetivos de um departamento ou equipe terão um escopo diferente dos objetivos de sua organização como um todo.
Por exemplo, e dependendo do escopo e das circunstâncias, você pode querer desenvolver estratégias para:
Aumentar a rentabilidade Ganhe mais participação de mercado. Aumente os índices de aprovação ou aumente a satisfação do cliente. Conclua um projeto abaixo do orçamento.
Para determinar sua estratégia, você deve entender completamente os fatores ambientais internos e externos que afetam você. Com esse entendimento, você pode identificar suas claras vantagens e usá-las para ter sucesso. A partir daí, você pode fazer escolhas informadas e implementar sua estratégia de forma eficaz.
Então, a criação de estratégia segue um processo de três etapas:
Analisando o contexto em que você está operando. Identificando opções estratégicas. Avaliando e selecionando as melhores opções.
Examinaremos esse processo e revisaremos algumas ferramentas úteis que podem ajudar você a desenvolver sua estratégia.
Estágio 1: Analisando seu contexto e ambiente.
Nesta primeira etapa, você garante que você entende a si mesmo e ao seu ambiente. Faça o seguinte:
Analise sua organização.
Em primeiro lugar, examine seus recursos, responsabilidades, capacidades, pontos fortes e fracos. Uma análise SWOT é uma ótima ferramenta para descobrir o que você faz bem e onde você tem pontos fracos, desde que você a use rigorosamente. É muito mais fácil alcançar seus objetivos quando sua estratégia usa seus pontos fortes sem expor suas fraquezas.
Além disso, observe suas competências essenciais. Elas destacam seus pontos fortes exclusivos e ajudam você a pensar em como se destacar de seus concorrentes.
Analise seu ambiente.
Agora você precisa examinar seu ambiente operacional atual para prever onde as coisas estão se movendo. Existem oportunidades interessantes que você deve seguir? Quais cenários futuros são prováveis em seu setor e como isso afetará o trabalho que você faz?
Análise PEST, Porter's Diamond e Porter's Five Forces são ótimos pontos de partida para analisar seu ambiente. Eles mostram onde você tem uma posição forte dentro do ambiente maior e onde você pode ter problemas.
Ao preparar-se para criar sua estratégia, verifique se você está trabalhando de maneira alinhada às mudanças em seu ambiente operacional, em vez de trabalhar contra elas. Esses fatores externos estão muitas vezes fora de seu controle, portanto, se você seguir uma estratégia que requeira uma mudança em um desses elementos, poderá ter uma batalha longa, exaustiva e não lucrativa à sua frente.
Uma matriz TOWS pode ajudá-lo com sua análise interna e externa. Essa estrutura combina tudo o que você aprendeu em sua análise SWOT (o TOWS é SWOT ao contrário) e, em seguida, aplica-a ao desenvolvimento de uma estratégia que maximiza os pontos fortes e as oportunidades ou minimiza os pontos fracos e as ameaças.
Analise seus clientes e partes interessadas.
Sua estratégia define como você vai ganhar, e ganhar é tipicamente enquadrado por quão bem você satisfaz seus clientes. Empresas com fins lucrativos devem manter seus clientes e acionistas felizes. Governos, organizações sem fins lucrativos e equipes de projetos têm outras partes interessadas para satisfazer também. A criação de estratégias deve considerar essas necessidades.
Identifique seus clientes e partes interessadas. O que seus clientes querem? E quem são os principais interessados em seu sucesso? Uma análise das partes interessadas ajudará você a descobrir essas necessidades e preferências.
Além disso, analise seu mercado detalhadamente. Responda a perguntas-chave como "Como o nosso mercado é segmentado?", "Que subpopulações podemos alcançar de maneira econômica?" e "Qual é o nosso mix de marketing ideal?"
Analise seus concorrentes.
Em uma empresa tradicional com fins lucrativos, você deve entender como seus produtos se comparam aos produtos dos concorrentes e quais são as competências de seus concorrentes. Quão fácil, ou difícil, é entrar no seu mercado? Quais alternativas os clientes têm?
Nosso artigo sobre Análise da USP ajuda você a identificar maneiras de competir de maneira eficaz. Você também encontrará muitas ferramentas úteis que podem ajudá-lo a entender os concorrentes em nosso artigo sobre Inteligência Competitiva.
Organizações sem fins lucrativos, equipes departamentais e projetos também têm concorrentes. Outros projetos e equipes dentro do departamento competem por dinheiro e outros recursos. Portanto, você deve provar que pode agregar valor, atingir objetivos e contribuir para o sucesso organizacional.
Etapa 2: identificando opções estratégicas.
No Estágio 1, você desenvolveu um entendimento de como sua organização ou equipe se encaixa no contexto dos ambientes internos e externos. Agora é hora de pensar sobre as diferentes coisas que você poderia fazer para criar uma vantagem clara e atingir seus objetivos. Aqui estão algumas atividades fundamentais que podem ajudar você a tomar essa decisão.
Opções de brainstorming.
Use ferramentas de criatividade como Brainstorming, Reverse Brainstorming e Starbursting para explorar projetos que você poderia executar para desenvolver vantagem competitiva. Guie seu brainstorming com referência à declaração de missão da organização, mas, dependendo do seu papel na organização, considere até que ponto você deve ser restringido por isso.
Examine oportunidades e ameaças.
Sua análise SWOT identificou algumas das principais oportunidades e ameaças que você enfrenta. Usando isso como ponto de partida, faça um brainstorming de maneiras adicionais para maximizar suas oportunidades, minimizar suas ameaças ou, talvez, transformar suas ameaças em oportunidades.
Resolver problemas.
Uma abordagem de solução de problemas também pode ajudar nesse estágio. Se o seu problema é que você não está alcançando seus objetivos, pergunte a si mesmo como você pode garantir isso. (Se todos na sua indústria acharem difícil lidar com um problema específico, você poderá obter vantagem competitiva ao lidar com isso.)
Por exemplo, se você deseja aumentar seus índices de satisfação do cliente em um setor atormentado por más relações com clientes, sua posição inicial é "baixa satisfação". Discuta por que esse é o caso e crie opções estratégicas que aumentem a satisfação. Ferramentas como a Análise de Causa Raiz, os 5 Porquês e a Investigação Apreciativa podem lhe dar novas perspectivas interessantes sobre esses problemas.
Estágio 3: Avaliando e Selecionando Opções Estratégicas.
A etapa final é avaliar as opções estratégicas em detalhes e selecionar as que você deseja seguir.
Encontrar este artigo útil?
Você pode aprender outras 137 habilidades de estratégia, assim, juntando-se ao Clube de Ferramentas Mentais.
Receba o boletim gratuito.
Aprenda novas habilidades profissionais todas as semanas e obtenha o LIVRO DE TRABALHO do Plano de Desenvolvimento Pessoal GRATUITAMENTE quando se inscrever.
Avaliar opções.
Por esta altura, você provavelmente já identificou uma série de bons projetos que você pode executar. Agora você deve avaliar isso para escolher as melhores opções estratégicas. Considere todas as opções que você identificou, mas não faça um julgamento final até concluir sua avaliação.
Comece avaliando cada opção à luz dos fatores contextuais que você identificou no Estágio 1. O que eles informam sobre cada opção?
Técnicas como Análise de Risco, Modos de Falha e Análise de Efeitos e Análise de Impacto podem ajudá-lo a identificar as possíveis conseqüências negativas de cada opção, o que pode ser muito fácil de perder. Certifique-se de explorá-los completamente.
A análise da matriz de decisão é particularmente útil para reunir critérios de decisão financeira e não financeira. Ele ajuda a ponderar os critérios de decisão individuais e considera os recursos subjetivos - como o ajuste da equipe e a probabilidade de adesão da equipe - bem como fatores objetivos e tangíveis, como custo e retorno do investimento.
Escolha o melhor caminho a seguir.
Com sua avaliação completa, você agora deve escolher a melhor opção estratégica ou opções estratégicas, certificando-se de não escolher tantas opções que você distribuirá seus recursos muito pouco.
Verifique suas ideias quanto à consistência com a Visão, a Missão e os Valores da sua organização e atualize-as, se necessário. É fácil esquecer esses elementos críticos durante o planejamento estratégico, portanto, certifique-se de que o que você deseja "vencer" seja algo que contribua para o objetivo geral da organização.
Verifique suas suposições usando o Ladder of Inference. Isso ajuda a confirmar a solidez do processo de raciocínio usado para desenvolver sua estratégia.
Há muito debate e desacordo sobre a melhor maneira de desenvolver uma estratégia. Não tenha medo de adaptar esta abordagem às suas próprias circunstâncias específicas!
Os três Cs da estratégia de implementação.
Não é bom desenvolver uma estratégia se você não a implementar com sucesso, e é aí que muitas pessoas se perdem.
Quando você estiver implementando sua estratégia, considere os Três Cs da Estratégia de Implementação & ndash; Esclareça, Comunique e Conecte & ndash; que foram identificados pelo consultor de negócios Scott Edinger. Vamos olhar para cada um com um pouco mais de detalhes.
Esclareça sua estratégia.
Sua estratégia precisa ser entendida por pessoas em todos os níveis de sua organização, não apenas na sala de reuniões. Certifique-se de que você pode expressá-lo em termos que são fáceis de se conectar, e certifique-se de evitar o jargão de negócios e o discurso corporativo. & Rdquo;
Comunique sua estratégia.
Use todos os meios à sua disposição para comunicar sua estratégia à sua organização, tanto eletronicamente quanto cara a cara. Sua estratégia afetará a todos, por isso é vital que eles entendam seu novo foco e direção, e como ela irá informar seu próprio trabalho.
Conecte sua estratégia.
Exercite as porcas e parafusos & rdquo; de implementar sua estratégia em toda a organização. Consulte os gerentes e encarregue-os com os aspectos práticos de aplicá-lo aos seus próprios departamentos, incluindo quaisquer requisitos de treinamento ou melhorias de processo que precisem ser feitos. É assim que sua estratégia se torna realidade.
Veja nossos artigos sobre Análise VMOST e o Balanced Scorecard para encontrar maneiras de preencher a lacuna entre o desenvolvimento e a implementação da estratégia, e nosso menu Gerenciamento de Projetos para obter mais técnicas que você pode usar para implementar a estratégia com sucesso.
Pontos chave.
Sua estratégia lhe diz como você alcançará o sucesso, não importa como esse sucesso seja definido. E se você está desenvolvendo uma estratégia em nível pessoal, de equipe ou organizacional, o processo é tão importante quanto o resultado.
Identifique seus recursos exclusivos e entenda como usá-los para sua vantagem, minimizando as ameaças. O processo e as ferramentas identificadas acima ajudarão você a identificar uma variedade de possíveis estratégias de sucesso, para que você possa escolher o que é certo para você.
Aplique isto à sua vida.
Pratique o desenvolvimento da estratégia pensando em suas próprias circunstâncias pessoais. Complete as análises abaixo para pensar em seu caminho pessoal. Aqui estão algumas questões importantes a serem consideradas:
Quais são seus pontos fortes, pontos fracos, oportunidades ou ameaças, e quais são suas "competências essenciais"? O que você é capaz de alcançar se você se dedicar a isso? Quais são as tendências "big picture" em seu ambiente? Como você pode monitorar ou adaptar-se a esses fatores externos? Quem são as pessoas que são importantes para o seu sucesso (seus stakeholders)? Quais opções você tem? Qual destes você deve considerar?
Este site ensina as habilidades necessárias para uma carreira feliz e bem-sucedida; e esta é apenas uma das muitas ferramentas e recursos que você encontrará aqui na Mind Tools. Subscreva a nossa newsletter gratuita ou junte-se ao Clube de Ferramentas Mentais e realmente impulsione a sua carreira!
Oferta de manual de habilidades de apresentação.
Inscreva-se para o teste de um mês do Clube de Ferramentas Mentais até a meia-noite de 22 de fevereiro e obtenha GRÁTIS o Livro de Exercícios de Habilidades de Apresentação!
Comentários (9)
Bem-vindo ao Clube e fique feliz em saber que você está aproveitando nossos recursos aqui e que eles contribuíram para o seu aprendizado para o seu Mestrado. Boa sorte com isso.
Equipe de ferramentas mentais.
Receba o boletim gratuito.
Receba o boletim gratuito.
Aprenda novas habilidades profissionais todas as semanas e obtenha o LIVRO DE TRABALHO do Plano de Desenvolvimento Pessoal GRATUITAMENTE quando se inscrever.
Oferta de manual de habilidades de apresentação.
Inscreva-se para o teste de um mês do Clube de Ferramentas Mentais até a meia-noite de 22 de fevereiro e obtenha GRÁTIS o Livro de Exercícios de Habilidades de Apresentação!
Ferramentas mentais para sua organização.
Inspire sua equipe com mais de 2.000 recursos que os ajudarão a desenvolver suas habilidades e se tornarem mais eficazes no local de trabalho.
Recursos relacionados
Da Mind Tools.
Relógio de Estratégia do Bowman.
Suas visualizações.
Forneça seu feedback.
O que você insetos.
Deixe-nos saber suas sugestões ou quaisquer erros no site, e você pode ganhar um vale Amazon de $ 50!
Clique aqui para nos contar.
Links patrocinados.
Meu plano de aprendizado.
Adicionar Artigo ao Meu Plano.
Salvar meu plano.
Treinamento Gerencial e Treinamento de Liderança, Online.
7 Essenciais para o Desenvolvimento de uma Estratégia de Negociação Algorítmica.
por Bryan Fletcher.
1. Gerenciamento de Risco.
Ao formular uma estratégia de negociação, lembre-se de quanto você tem em risco em todos os momentos.
Meça e rastreie seu risco total aberto em todos os momentos calculando quanto você perderia se todas as suas posições fossem interrompidas.
Você pode fazer isso medindo e ajustando o risco por posição e seu portfólio geral.
Isso significa que você sabe quanto dinheiro você perderá, em porcentagem do total do seu patrimônio, se todos os seus negócios forem interrompidos.
Vamos ver uma maneira de fazer isso em uma estratégia de exemplo simples.
Vamos dizer que você arrisca 0,5% do seu patrimônio total em cada novo negócio. A estratégia de exemplo usa uma parada móvel com base no menor preço dos últimos X períodos no período de tempo Y. Isso é tudo.
Em mercados lentos e laterais, a parada se aproximará do preço e o risco será reduzido com o passar do tempo. Em movimentos parabólicos a seu favor, o preço e seu risco aberto se moverão muito mais rápido do que seu stop móvel.
Seu risco aberto no negócio pode passar de 0,5% para um número múltiplo maior do que isso. Sem um mecanismo para reduzir ainda mais o risco nesse comércio, você pode experimentar quedas significativas em sua equidade e psique se o negócio rapidamente rastrear todos os seus ganhos. Especialmente quando você tem vários negócios em todos os benefícios do mesmo movimento.
Para os comerciantes de algo, essa descoberta significa que precisamos ter um algoritmo para considerar o risco aberto em cada posição e seu risco geral de portfólio.
Como poderíamos fazer isso?
Bem, você poderia adicionar um algoritmo projetado especificamente para essas circunstâncias que poderia mover paradas ou reduzir posições quando o risco exceder um certo limite e depois otimizar esses parâmetros no backtesting.
Risco por negociação = X% do capital total.
Isso irá controlar quanto você arrisca inicialmente em cada negociação.
Risco Máximo de Comércio Individual = X% (Mova Paradas ou Reduza as Posições)
Esse número precisará ser igual ou maior que o número acima.
Risco Máximo da Carteira = Y% (Mova Paradas ou Reduza as Posições)
Se a sua estratégia comercializa muitos instrumentos, esse parâmetro pode manter o risco total da carteira sob controle. Veja um exemplo visual que mostra o risco total da carteira de uma estratégia de exemplo em todo o backtest:
Imagem criada usando o software Trading Blox.
Eu aprendi sobre isso da maneira mais difícil quando eu estava com muito óleo em 2008. Eu usei um indicador de longo prazo como minha saída. Em meus extensos backtests, eu não tinha considerado o controle de risco em lucros abertos, já que movimentos parabólicos como esse não eram típicos.
Minha estratégia era confiável na maioria das vezes em mercados lentos, voláteis, mas em tendência.
Quando eu estava comprando óleo em 2008 a caminho de mais de US $ 140 / bbl, foi emocionante. No entanto, ao mesmo tempo, quanto mais rápido subia, mais me preocupava em ver a que distância estavam minhas paradas. Lembro-me de esperar que se consolidasse para dar um tempo às minhas paradas.
Eu tinha um componente de lucro, mas devido ao grande tamanho do contrato no mercado de futuros, eu estava muito limitado em quanto eu poderia reduzir minha posição. Depois que eu fui parado nessa posição, certifiquei-me de implementar mudanças no meu sistema que medem e controlam o risco ajustando minhas paradas quando o risco excede um certo nível em posições individuais.
Criado com o Marketscope / Trading Station II.
O desempenho passado não é indicação de resultados futuros.
2. Seleção de Mercado, Cronograma e Construção de Portfólio.
O período de tempo (m1, h1, etc.) que você está negociando terá um impacto nos mercados potenciais para consideração em seu sistema de negociação, plataforma de backtesting, recursos baseados em nuvem necessários, API usada e se os serviços de colocation forem necessários.
Sistemas de frequência mais alta baseando triggers ou execução em barras de 1 m ou ticks podem precisar de uma solução baseada em nuvem para permitir o escalonamento da capacidade de computação para backtesting e otimização para obter melhores resultados. Algumas plataformas de negociação algorítmica de terceiros incluem isso como parte de seu pacote.
O poder de computação junto com um mecanismo de backtesting otimizado para tirar vantagem disso economizará muito tempo no processo de desenvolvimento de estratégia para qualquer sistema de negociação.
Aqueles que consideram uma estratégia de alta frequência vão querer considerar um sistema de produção que seja colocado o mais próximo possível dos servidores do seu corretor e integrado via API do FIX para garantir que todas as atualizações de preço sejam recebidas à medida que todas as cotações são empurradas em vez de puxadas. Estação ou API ForexConnect.
Ao obter um preenchimento com o preço que você quer, ou melhor, é muito importante para sua lucratividade, garantir a menor latência em sua arquitetura, código e localização do servidor, possibilitará a melhor chance de obter o máximo de liquidez no momento exato em que você precisa. isto.
Os parceiros VPS da FXCM oferecem serviços de colocation para qualquer necessidade:
Alguns corretores oferecem comissões com desconto para os traders de alto volume. Se a sua estratégia gerar mais de 50 milhões de volume nocional por mês em volume de negócios ou se você começar com um capital de risco de US $ 150 mil, poderá obter comissões com desconto de 25 a 55% com a conta Active Trader da FXCM, por exemplo.
Compreender as características subjacentes de liquidez de cada mercado também permite saber o quão escalável é sua estratégia. Liquidez no preço que você quer não é um recurso ilimitado e pode variar um pouco dependendo do mercado, hora do dia e circunstâncias.
Nosso guia Traits of Successful Traders possui alguns ótimos dados relacionados a isso.
Sistemas de baixa frequência geralmente dão mais margem de erro quando se trata de estimativas de derrapagem. O menor número de negociações totais em backtests significa que a contabilização do skid em execução impacta a lucratividade geral menos do que estratégias de frequência muito mais altas.
Se a sua estratégia utiliza pedidos de parada baseados em um canal de preços ou algum tipo de indicador de atraso para acionar um pedido, a redução da latência provavelmente não terá um impacto tão grande, exceto em determinadas situações específicas da estratégia.
A velocidade não melhora o preenchimento das paradas ou limites que estão nos servidores dos corretores.
Mercados individuais podem ter grandes variações no desempenho. Alguns podem ser ligados por longos períodos, enquanto outros ficam com lágrimas. Por causa disso, um pequeno número de mercados em seu portfólio pode levar a retornos mais voláteis do que um portfólio maior e diversificado de mercados e estratégias.
Depois, há alguns mercados que podem adicionar benefícios de diversificação ao seu portfólio, como USD / ZAR, usando uma estratégia de frequência muito menor, mas podem não ser lucrativos quando se usa prazos curtos, dependendo da sua estratégia.
3. Utilize tipos avançados de pedidos.
Um grande número de operadores apenas utiliza ordens de mercado para entrar e sair de suas operações. Em condições típicas de mercado, a maioria ficará feliz com os preenchimentos que receber. No entanto, em mercados rápidos, onde há muita incerteza, os provedores de liquidez tendem a enviar cotações mais amplas para se protegerem e os preços podem se mover muito rapidamente.
Estratégias baseadas em breakout e momentum podem estar sujeitas a derrapagens se as negociações forem acionadas quando os níveis de resistência forem retirados e o fluxo de pedidos for pesado em uma direção. Somente o uso de ordens de parada para entrar em negociações garantirá a execução, mas deixa o risco de deslizamento bem aberto. As ordens de entrada de intervalo podem ser usadas para entrar na negociação dentro de um intervalo aceitável, mas rejeitar ordens em que a derrapagem é considerada inaceitável.
Algumas estratégias podem encontrar escorregamentos nulos ou até escorregamentos positivos se ordens de limite ou de preenchimento ou abatimento forem utilizadas. Um exemplo disso pode ser uma reversão à média de alta frequência ou uma estratégia baseada em eventos. O backtesting pode assumir 100% de execução em cada negociação, mas a realidade pode ser diferente em mercados rápidos.
Conclusão: entenda quais tipos de pedidos estão disponíveis para você e como eles podem ajudá-lo a obter uma execução superior.
Exemplos de tipos de pedidos
Exemplo de Comandos de Negociação.
4. Posição de dimensionamento.
Existem duas maneiras comuns de dimensionar suas posições:
Tamanho de posição com base em lote fixo: negociando o mesmo tamanho de lote, independentemente do par. Dimensionamento da posição com base no risco: o risco é calculado para cada operação com base na colocação de stop loss.
Tamanho de posição de lote fixo.
Essa abordagem é popular entre muitos traders, mas as limitações dessa abordagem podem levar ao excesso de peso dos mercados mais voláteis e à subponderação em mercados menos voláteis. Diferenças nas taxas de câmbio podem levar a diferenças dramáticas no tamanho do comércio nocional.
Dimensionamento da posição baseada em risco.
Muitos dos sistemas automatizados que vejo hoje têm um valor de stop loss fixo em pips para cada posição. Não sou fã dessa abordagem, pois acredito que ela pode levar a estabelecer paradas muito próximas em mercados voláteis e muito distantes em mercados silenciosos. O risco por comércio também está em todo o mapa com essa abordagem.
O dimensionamento de posição com base no risco considera o risco por negociação, em que o risco é igual ao preço de entrada menos a parada inicial.
Uma abordagem sofisticada levará em consideração as faixas de preço médio exclusivas e recentes de cada mercado para determinar o posicionamento de parada.
Uma maneira de fazer isso é calcular o intervalo médio real dos últimos X períodos e colocar a parada inicial em um múltiplo desse número longe de sua entrada. Este método equilibra dinamicamente seu risco em cada mercado que você negocia com base na volatilidade exclusiva de cada mercado.
Aqui está o cálculo para o dimensionamento da posição baseada na volatilidade:
((Patrimônio total * Risco por negociação) / (ATR de período X em pips * Compensação de ATR * valor de pip por lote de 1K)) = Tamanho da negociação em lotes de 1K.
Patrimônio total = $ 100K.
Risco por comércio = 1%
X período ATR em pips = 50.
Valor de pip por lote de 1K = $ 0,10.
133.333 = Tamanho do Comércio em lotes de 1K (Arredondar para 133 para submeter o comércio de 133K EUR / USD)
Em mercados voláteis, a faixa média de preços por barra, independentemente do prazo, pode saltar consideravelmente em tempos de incerteza e resultar em mercados muito rápidos e com muito ruído sem rumo, levando muitos operadores a serem sacudidos.
No entanto, se você utilizar o recente ATR (Average True Range) para cada mercado e utilizar um múltiplo disso para determinar seu preço de parada, acredito que você está dando ao comércio uma melhor chance de sucesso filtrando o ruído de curto prazo ( volatilidade).
Por outro lado, minhas trocas comerciais favoritas sempre vêm em mercados tranquilos, com faixas de negociação estreitas. Utilizar o recente ATR para dimensionar suas posições levará a paradas mais apertadas e a tamanhos de posição maiores em mercados com faixas de preço relativas baixas.
Este método também lhe dá o benefício de ter uma abordagem consistente de dimensionamento de posição em cada mercado que você negocia, levando a um portfólio mais equilibrado e diversificado. Se você não considera a volatilidade de cada mercado para o dimensionamento de posições, a volatilidade de uma de suas posições pode ser várias vezes maior do que suas outras negociações.
Não tome minha palavra, faça backtest e estude os resultados de perto. Lembre-se, porém, o backtesting tem suas limitações e o desempenho passado não é indicação de resultados futuros.
A primeira coisa que você precisa é de dados. Eu acho que é importante testar o que você troca e negocia com o que você testa. A natureza descentralizada do mercado de câmbio significa que cada corretor provavelmente terá históricos e spreads de preços históricos diferentes.
A FXCM oferece dados históricos extensivos para todos os instrumentos gratuitamente através da nossa API ForexConnect ou através do nosso aplicativo Historical Data Downloader.
Algumas plataformas de negociação algorítmica de terceiros também oferecerão acesso a dados históricos de FXCM, mas podem não ter nosso conjunto de dados completo. Se você estiver usando um desses e quiser mais dados para fazer backtest, poderá adicionar aos seus arquivos de dados com essas opções.
É uma coisa para ter uma ótima idéia para uma estratégia de negociação e, em seguida, obtê-lo codificado para negociação ao vivo, mas se você apenas pular em negociação ao vivo ou utilizar backtests irreal, você provavelmente vai ter um tempo difícil lidar com seu primeiro rebaixamento.
Se os seus backtests não são realistas ou utilizam as suposições erradas, como assumir a execução perfeita em cada negociação, você pode descobrir que seus resultados ao vivo são muito diferentes dos seus backtests.
Um excelente mecanismo de backtesting pode ajudá-lo a descobrir o que funciona e o que não funciona antes de colocar dinheiro na linha, embora o desempenho passado não seja uma indicação do desempenho futuro.
Você deve ser capaz de explorar diferentes variações de parâmetros e examinar estatísticas de desempenho, ver resultados visuais de desempenho e ver o desempenho comercial por comércio em um gráfico.
As plataformas de backtesting mais sofisticadas terão a capacidade de examinar e otimizar os resultados em vários mercados ao mesmo tempo. Na minha opinião, isso é muito importante na descoberta de estratégias adequadas para muitos mercados diferentes e onde o risco é gerenciado para todo o portfólio de posições.
Se você não otimizar sua estratégia de negociação, as chances são de que você terá uma estratégia que não será tão boa quanto poderia ser. Por outro lado, se você otimizar demais, você pode acabar com uma estratégia que só funciona bem em dados históricos. O importante é encontrar um equilíbrio entre eles.
O maior risco que você terá ao otimizar sua estratégia com o backtesting é o ajuste de curva. Sempre desconfio de sistemas que foram otimizados com muitas variáveis diferentes ou apenas otimizados em um mercado. Dito de outra forma, você quer limitar os graus de liberdade do seu sistema.
Quanto mais parâmetros seu sistema de negociação tiver, mais fácil será otimizar perfeitamente os parâmetros do histórico de preços anteriores com resultados surpreendentes, o que provavelmente é apenas ruído e não um padrão repetitivo.
Backtesting sua estratégia em apenas um mercado pode ter o mesmo efeito. Como você está apenas simulando resultados em um fluxo de preços, será muito fácil ajustar seus parâmetros a dados passados com incríveis resultados de backtested, mas com pouca significância estatística.
Na minha experiência e pesquisa de muitos comerciantes de sistemas bem-sucedidos, muitos usam sistemas muito simples com um pequeno número de parâmetros para evitar esse risco.
Manter sua lógica de estratégia simples também ajudará a reduzir a latência geral ao gerar decisões de negociação. Se o seu sistema tiver que processar 6 pontos de verificação em vez de 10, por exemplo, você aumentará suas estatísticas de execução se estiver negociando uma estratégia muito ativa.
7. Tolerância ao Risco.
Cada pessoa tem um conjunto único de circunstâncias e disposições: sua idade, renda, despesas, capital de risco, apetite geral ao risco e se são geralmente otimistas ou pessimistas. Devido a isso, cada pessoa deve determinar que tipo de risco eles podem suportar. Se você tem pouco ou nenhum capital de risco, a melhor abordagem pode ser não negociar e continuar economizando dinheiro.
A maioria dos comerciantes de algo é otimista e acredita que eles podem alcançar melhores resultados do que o seu Joe médio. Isso pode levar a muitos planos de negociação arrojados, com alto risco, que podem ser eliminados muito rapidamente, devido a perdas, ou pelo fato de os comerciantes atingirem seu ponto de tio psicológico com a perspectiva de novas perdas.
Posso assegurar-lhe que é difícil ser tão otimista quanto você estava no início da negociação, quando você está no meio de um grande rebaixamento.
É como quando estou realmente com fome e comendo fora. Eu normalmente peço muito mais comida do que consigo suportar. No entanto, eu não percebo isso até que eu estou recheado e eu tenho 1 ou 2 tacos mais sentados no meu prato.
Na minha experiência, isso é semelhante à implementação da sua primeira estratégia automatizada. Uma estratégia que faz 20% ao ano quando o backtesting é bom, mas cara, 40% ao ano seria muito melhor e tudo o que tenho a fazer é estar disposto a aceitar rebaixamentos maiores!
Antes de lançar o meu fundo, lembro-me de estudar os resultados de desempenho de muitos Conselheiros de Negociação de Commodities sistemáticos, que são administradores de dinheiro regulamentados pela NFA. Muitos dos CTAs que há muito tempo tiveram um ótimo desempenho, mas volátil, nos primeiros anos, mas que se tornaram muito mais conservadores. Vai saber.
É minha opinião que sua verdadeira tolerância ao risco é provavelmente menor do que você pensa que é. Nunca se esqueça de que a sobrevivência e a preservação do capital é a coisa mais importante a considerar, e não o quanto você pode potencialmente fazer por ano com base nos seus backtests.
Ao executar sua estratégia ao vivo, espere experimentar completamente todo o espectro de emoções. No entanto, acho importante que você não tome decisões impulsivas com base em seus sentimentos, deixando que o medo ou a esperança levem a riscos excessivos ou tentando ultrapassar sua estratégia e fazer negócios com os sentimentos que você tem.
Fortes emoções de medo ou ganância podem levar a decisões ruins quando os sistemas são negociados. Computadores não precisam lidar com isso, então a melhor estratégia para lidar com isso, na minha opinião, é encontrar um sistema de negociação robusto, cumpri-lo e utilizar um processo de pesquisa antes de fazer qualquer alteração.
Suas emoções podem ajudá-lo a identificar pontos fracos e oportunidades potenciais em seu sistema de negociação. Se a volatilidade do seu desempenho comercial está deixando o seu medo o tempo todo, reduza seu risco.
Talvez você veja um movimento que você se arrepende de ter perdido. Ouça esse arrependimento e utilize backtests para explorar maneiras de modificar seu sistema para garantir que você não perca esse tipo de oportunidade no futuro.
Quando eu devolvi muitos lucros ao meu comércio de petróleo, fiquei muito enojado. Isto levou-me a fazer modificações no meu sistema de negociação, o que melhorou a gestão global de risco em riscos individuais de negociação aberta.
Colocando tudo junto.
Aqui estão alguns parâmetros para consideração ao projetar uma estratégia algorítmica direcional:
Risco de entrada por comércio.
Número de períodos de retorno do ATR # ATR múltiplo (multiplique este número de vezes dos períodos de retorno do ATR para o posicionamento de parada)
Filtro comercial (se aplicável)
Insira novas negociações somente quando a seguinte condição for atendida (ou seja, a tendência é baseada em médias móveis duplas)
Inserir parâmetros para o seu indicador técnico favorito Adicione qualquer outra lógica para escalar dentro / fora de negociações (trailing stop, ter lucros em X ATR, etc.)
Risco Máximo de Comércio Individual.
Risco Máximo de Negociação Individual = X% (Considerar os topos de trabalho ou reduzir as posições)
Risco Máximo da Carteira.
Risco Máximo da Carteira = Y% (Considerações sobre os tops ou r em p asições)
Outros parâmetros importantes para backtesting:
Isso pode ser calculado em termos de pips ou em termos percentuais, desde o preço de preenchimento até o preço mais baixo / mais alto na barra em que o negócio foi preenchido.
What do you think is essential to developing and running an algo strategy?
Questions, comments and feedback are welcome. Drop me a line at instructor@dailyfx .
To join my email distribution list, please fill out this form .
HYPOTHETICAL PERFORMANCE RESULTS HAVE MANY INHERENT LIMITA-TIONS, SOME OF WHICH ARE DESCRIBED BELOW. NO REPRESENTATION IS BE-ING MADE THAT ANY ACCOUNT WILL OR IS LIKELY TO ACHIEVE PROFITS OR LOSSES SIMILAR TO THOSE SHOWN. DE FATO, HÁ DIFERENÇAS FREQUENTEMENTE NÍVEIS ENTRE OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS E OS RESULTADOS REALIZADOS SUBSEQÜENTEMENTE ATINGIDOS POR QUALQUER PROGRAMA DE NEGOCIAÇÃO PARTICULAR.
UMA DAS LIMITAÇÕES DOS RESULTADOS DE DESEMPENHO HIPOTÉTICOS É QUE ELES SÃO GERALMENTE PREPARADOS COM O BENEFÍCIO DE HINDSIGHT. IN ADDI-TION, HYPOTHETICAL TRADING DOES NOT INVOLVE FINANCIAL RISK, AND NO HYPOTHETICAL TRADING RECORD CAN COMPLETELY ACCOUNT FOR THE IM-PACT OF FINANCIAL RISK IN ACTUAL TRADING. FOR EXAMPLE, THE ABILITY TO WITHSTAND LOSSES OR TO ADHERE TO A PARTICULAR TRADING PROGRAM IN SPITE OF TRADING LOSSES IS MATERIAL POINTS WHICH CAN ALSO AD-VERSELY AFFECT ACTUAL TRADING RESULTS. THERE ARE NUMEROUS OTHER FACTORS RELATED TO THE MARKETS IN GENERAL OR TO THE IMPLEMENTA-TION. DE QUALQUER PROGRAMA DE NEGOCIAÇÃO ESPECÍFICO QUE NÃO PODE SER TOTALMENTE CONSIDERADO PARA A PREPARAÇÃO DE RESULTADOS DE DESEMPENHO HIPOTÉTICOS E TODOS OS QUAIS PODEM AFETAR COM ANTECEDÊNCIA DE RESULTADOS REAIS.
Quaisquer opiniões, notícias, pesquisas, análises, preços ou outras informações contidas neste site são fornecidas como comentários gerais de mercado e não constituem conselhos de investimento. The FXCM group will not accept liability for any loss or damage, including without limitation to, any loss of profit, which may arise directly or indirectly from use of or reliance contained in the trading sig-nals, or in any accompanying chart analyses.
O DailyFX fornece notícias e análises técnicas sobre as tendências que influenciam os mercados monetários globais.
Próximos eventos.
Calendário Econômico Forex.
O desempenho passado não é indicação de resultados futuros.
O DailyFX é o site de notícias e educação do IG Group.
Construa estratégias melhores! Parte 3: O Processo de Desenvolvimento.
Esta é a terceira parte da série Build Better Strategies. Na parte anterior, discutimos as 10 ineficiências de mercado mais exploradas e fornecemos alguns exemplos de suas estratégias de negociação. Nesta parte, analisaremos o processo geral de desenvolvimento de um sistema comercial baseado em modelos. Como quase tudo, você pode fazer estratégias de negociação em (pelo menos) duas maneiras diferentes: há o caminho ideal, e é o caminho real. Começamos com o processo de desenvolvimento ideal, dividido em 10 etapas.
The ideal model-based strategy development.
Step 1: The model.
Select one of the known market inefficiencies listed in the previous part, or discover a new one. You could eyeball through price curves and look for something suspicious that can be explained by a certain market behavior. Or the other way around, theoretize about a behavior pattern and check if you can find it reflected in the prices. If you discover something new, feel invited to post it here! But be careful: Models of non-existing inefficiencies (such as Elliott Waves) already outnumber real inefficiencies by a large amount. It is not likely that a real inefficiency remains unknown to this day.
Once you’ve decided for a model, determine which price curve anomaly it would produce, and describe it with a quantitative formula or at least a qualitative criteria. You’ll need that for the next step. As an example we’re using the Cycles Model from the previous part:
(Cycles are not to be underestimated. One of the most successful funds in history – Jim Simons’ Renaissance Medallion fund – is rumored to exploit cycles in price curves by analyzing their lengths ( C i ), phases ( D i ) and amplitudes ( a i ) with a Hidden Markov Model. Don’t worry, we’ll use a somewhat simpler approach in our example.)
Step 2: Research.
Find out if the hypothetical anomaly really appears in the price curves of the assets that you want to trade. For this you first need enough historical data of the traded assets – D1, M1, or Tick data, dependent on the time frame of the anomaly. How far back? As far as possible, since you want to find out the lifetime of your anomaly and the market conditions under which it appears. Write a script to detect and display the anomaly in price data. For our Cycles Model, this would be the frequency spectrum:
EUR/USD frequency spectrum, cycle amplitude vs. cycle length in bars.
Check out how the spectrum changes over the months and years. Compare with the spectrum of random data (with Zorro you can use the Detrend function for randomizing price curves). If you find no clear signs of the anomaly, or no significant difference to random data, improve your detection method. And if you then still don’t succeed, go back to step 1.
Step 3: The algorithm.
Write an algorithm that generates the trade signals for buying in the direction of the anomaly. A market inefficiency has normally only a very weak effect on the price curve. So your algorithm must be really good in distinguishing it from random noise. At the same time it should be as simple as possible, and rely on as few free parameters as possible. In our example with the Cycles Model, the script reverses the position at every valley and peak of a sine curve that runs ahead of the dominant cycle:
This is the core of the system. Now it’s time for a first backtest. The precise performance does not matter much at this point – just determine whether the algorithm has an edge or not. Can it produce a series of profitable trades at least in certain market periods or situations? If not, improve the algorithm or write a another one that exploits the same anomaly with a different method. But do not yet use any stops, trailing, or other bells and whistles. They would only distort the result, and give you the illusion of profit where none is there. Your algorithm must be able to produce positive returns either with pure reversal, or at least with a timed exit.
In this step you must also decide about the backtest data . You normally need M1 or tick data for a realistic test. Daily data won’t do. The data amount depends on the lifetime (determined in step 2) and the nature of the price anomaly. Naturally, the longer the period, the better the test – but more is not always better. Normally it makes no sense to go further back than 10 years, at least not when your system exploits some real market behavior. Markets change extremely in a decade. Outdated historical price data can produce very misleading results. Most systems that had an edge 15 years ago will fail miserably on today’s markets. But they can deceive you with a seemingly profitable backtest.
Step 4: The filter.
No market inefficiency exits all the time. Any market goes through periods of random behavior. It is essential for any system to have a filter mechanism that detects if the inefficiency is present or not. The filter is at least as important as the trade signal, if not more – but it’s often forgotten in trade systems. This is our example script with a filter:
We apply a bandpass filter centered at the dominant cycle period to the price curve and measure its amplitude. If the amplitude is above a threshold, we conclude that the inefficiency is there, and we trade. The trade duration is now also restricted to a maximum of 10 cycles since we found in step 2 that dominant cycles appear and disappear in relatively short time.
What can go wrong in this step is falling to the temptation to add a filter just because it improves the test result. Any filter must have a rational reason in the market behavior or in the used signal algorithm. If your algorithm only works by adding irrational filters: back to step 3.
Step 5: Optimizing (but not too much!)
All parameters of a system affect the result, but only a few directly determine entry and exit points of trades dependent on the price curve. These ‘adaptable’ parameters should be identified and optimized. In the above example, trade entry is determined by the phase of the forerunning sine curve and by the filter threshold, and trade exit is determined by the exit time. Other parameters – such as the filter constants of the DominantPhase and the BandPass functions – need not be adapted since their values do not depend on the market situation.
Adaption is an optimizing procdure, and a big opportunity to fail without even noticing it. Often, genetic or brute force methods are applied for finding the “best” parameter combination at a profit peak in the parameter space. Many platforms even have “optimizers” para este fim. Although this method indeed produces the best backtest result, it won’t help at all for the live performance of the system. In fact, a recent study (Wiecki et. al. 2016) showed that the better you optimize your parameters, the worse your system will fare in live trading! The reason of this paradoxical effect is that optimizing to maximum profit fits your system mostly to the noise in the historical price curve, since noise affects result peaks much more than market inefficiencies.
Rather than generating top backtest results, correct optimizing has other purposes:
It can determine the susceptibility of your system to its parameters. If the system is great with a certain parameter combination, but loses its edge when their values change a tiny bit: back to step 3. It can identify the parameter’s sweet spots . The sweet spot is the area of highest parameter robustness, i. e. where small parameter changes have little effect on the return. They are not the peaks, but the centers of broad hills in the parameter space. It can adapt the system to different assets, and enable it to trade a portfolio of assets with slightly different parameters. It can also extend the lifetime of the system by adapting it to the current market situation in regular time intervals, parallel to live trading.
This is our example script with entry parameter optimization:
The two optimize calls use a start value ( 1.0 in both cases) and a range ( 0.7..2.0 ) for determining the sweet spots of the two essential parameters of the system. You can identify the spots in the profit factor curves (red bars) of the two parameters that are generated by the optimization process:
Sine phase in pi/4 units Amplitude threshold in pips.
In this case the optimizer would select a parameter value of about 1.3 for the sine phase and about 1.0 (not the peak at 0.9) for the amplitude threshold for the current asset (EUR/USD). The exit time is not optimized in this step, as we’ll do that later together with the other exit parameters when risk management is implemented.
Step 6: Out-of-sample analysis.
Of course the parameter optimization improved the backtest performance of the strategy, since the system was now better adapted to the price curve. So the test result so far is worthless. For getting an idea of the real performance, we first need to split the data into in-sample and out-of-sample periods. The in-sample periods are used for training, the out-of-sample periods for testing. The best method for this is Walk Forward Analysis. It uses a rolling window into the historical data for separating test and training periods.
Unfortunately, WFA adds two more parameters to the system: the training time and the test time of a WFA cycle. The test time should be long enough for trades to properly open and close, and small enough for the parameters to stay valid. The training time is more critical. Too short training will not get enough price data for effective optimization, training too long will also produce bad results since the market can already undergo changes during the training period. So the training time itself is a parameter that had to be optimized.
A five cycles walk forward analysis (add “ NumWFOCycles = 5; ” to the above script) reduces the backtest performance from 100% annual return to a more realistic 60%. For preventing that WFA still produces too optimistic results just by a lucky selection of test and training periods, it makes also sense to perform WFA several times with slightly different starting points of the simulation. If the system has an edge, the results should be not too different. If they vary wildly: back to step 3.
Step 7: Reality Check.
Even though the test is now out-of-sample, the mere development process – selecting algorithms, assets, test periods and other ingredients by their performance – has added a lot of selection bias to the results. Are they caused by a real edge of the system, or just by biased development? Determining this with some certainty is the hardest part of strategy development.
The best way to find out is White’s Reality Check. But it’s also the least practical because it requires strong discipline in parameter and algorithm selection. Other methods are not as good, but easier to apply:
Montecarlo . Randomize the price curve by shuffling without replacement, then train and test again. Repeat this many times. Plot a distribution of the results (an example of this method can be found in chapter 6 of the Börsenhackerbuch). Randomizing removes all price anomalies, so you hope for significantly worse performance. But if the result from the real price curve lies not far east of the random distribution peak, it is probably also caused by randomness. That would mean: back to step 3.
Step 8: Risk management.
Your system has so far survived all tests. Now you can concentrate on reducing its risk and improving its performance. Do not touch anymore the entry algorithm and its parameters. You’re now optimizing the exit. Instead of the simple timed and reversal exits that we’ve used during the development phase, we can now apply various trailing stop mechanisms. Por exemplo:
Instead of exiting after a certain time, raise the stop loss by a certain amount per hour. This has the same effect, but will close unprofitable trades sooner and profitable trades later.
This is our example script with the initial timed exit replaced by a stop loss limit that rises at every bar:
The for(open_trades) loop increases the stop level of all open trades by a fraction of the initial stop loss distance at the end of every bar.
Of course you now have to optimize and run a walk forward analysis again with the exit parameters. If the performance didn’t improve, think about better exit methods.
Step 9: Money management.
Money management serves three purposes. First, reinvesting your profits. Second, distributing your capital among portfolio components. And third, quickly finding out if a trading book is useless. Open the “Money Management” chapter and read the author’s investment advice. If it’s “invest 1% of your capital per trade”, you know why he’s writing trading books. He probably has not yet earned any money with real trading.
Suppose your trade volume at a given time t is V(t) . If your system is profitable, on average your capital C will rise proportionally to V with a growth factor c :
When you follow trading book advices and always invest a fixed percentage p of your capital, so that V (t) = p C(t) , your capital will grow exponentially with exponent p c :
Unfortunately your capital will also undergo random fluctuations, named Drawdowns . Drawdowns are proportial to the trade volume V(t) , and it can also be shown from statistical considerations that the maximum drawdown depth D max grows proportional to the square root of time t :
So, with the fixed percentage investment:
You can see that around the time T = 1/(q p) 2 a drawdown will eat up all your capital C(T) , no matter how profitable your strategy is and how you’ve choosen p ! That’s why the 1% rule is a bad advice. And why I suggest to clients not to raise the trade volume proportionally to their accumulated profit, but to its square root – at least when capital is mainly used for buffering drawdowns. Then, as long as the strategy does not deteriorate, they keep a safe distance from a margin call.
Dependent on whether you trade a single asset and algorithm or a portfolio of both, you can calculate the optimal investment with several methods. There’s the OptimalF formula by Ralph Vince , the Kelly formula by Ed Thorp , or mean/variance optimization by Harry Markowitz . Usually you won’t hard code reinvesting in your strategy, but calculate the investment volume externally, since you might want to withdraw or deposit money from time to time. This requires the overall volume to be set up manually, not by an automated process. A formula for proper reinvesting and withdrawing can be found in the Zorro manual.
Step 10: Preparation for live trading.
You can now define the user interface of your trading system. Determine which parameters you want to change in real time, and which ones only at start of the system. Provide a method to control the trade volume, and a ‘Panic Button’ for locking profit or cashing out in case of bad news. Display all trading relevant parameters in real time. Add buttons for re-training the system, and provide a method for comparing live results with backtest results, such as the Cold Blood Index. Make sure that you can supervise the system from whereever you are, for instance through an online status page. Don’t be tempted to look onto it every five minutes. But you can make a mighty impression when you pull out your mobile phone on the summit of Mt. Ararat and explain to your fellow climbers: “Just checking my trades.”
The real strategy development.
So far the theory. All fine and dandy, but how do you really develop a trading system? Everyone knows that there’s a huge gap between theory and practice. This is the real development process as testified by many seasoned algo traders:
Step 1. Visit trader forums and find the thread about the new indicator with the fabulous returns.
Step 2. Get the indicator working with a test system after a long coding session. Ugh, the backtest result does not look this good. You must have made some coding mistake. Debug. Debug some more.
Step 3. Still no good result, but you have more tricks up your sleeve. Add a trailing stop. The results now look already better. Run a week analysis. Tuesday is a particular bad day for this strategy? Add a filter that prevents trading on Tuesday. Add more filters that prevent trades between 10 and 12 am, and when the price is below $14.50, and at full moon except on Fridays. Wait a long time for the simulation to finish. Wow, finally the backtest is in the green!
Step 4. Of course you’re not fooled by in-sample results. After optimizing all 23 parameters, run a walk forward analysis. Wait a long time for the simulation to finish. Ugh, the result does not look this good. Try different WFA cycles. Try different bar periods. Wait a long time for the simulation to finish. Finally, with a 19-minutes bar period and 31 cycles, you get a sensational backtest result! And this completely out of sample!
Step 5. Trade the system live.
Step 6. Ugh, the result does not look this good.
Step 7. Wait a long time for your bank account to recover. Inbetween, write a trading book.
I’ve added the example script to the 2016 script repository. In the next part of this series we’ll look into the data mining approach with machine learning systems. We will examine price pattern detection, regression, neural networks, deep learning, decision trees, and support vector machines.
34 thoughts on “Build Better Strategies! Part 3: The Development Process”
I smell a book written by Italians….
Thanks for a great series of articles – I’m looking forward to testing out the concepts you’ve discussed. However, I failed at the first hurdle when I noticed my frequency spectrum over October 2015 didn’t match yours. Then I noticed the EURUSD spectrum says XAGUSD in the corner 🙂
Indeed, seems I’ve uploaded the wrong image.
WOW, look forward to the upcoming articles. You do such a great job condensing a great deal of info into simple and easy to read articles.
This is probably one of the best post and most important post I have read in the field. I have read some books about strategy development which are not as good as this post. You could write a book hehe … but I see you dont which means you win 🙂
These are great articles. Obrigado.
I’m curios to understand beside these modeling strategies, are you aware of quantitative strategies that takes into consideration broader set of more diverse datasets, like looking at economic indicators or social sentiment and combining with historical prices of different assets categories.
Sim. We did a couple model-based systems for clients that got additional information from the VIX or the COTR. I cannot say that using these datasets drastically improved profits, but in some cases they worked well for filters or for determining trend.
Dear Jcl, thank you so much for this blog and for your efforts in the Zorro community. I am just approaching it, and it looks like this could be really the environment where > 10 years of “puzzled” research come together!
This post is very fine, but I would ask you to go into some details about at least one point. You say: “The precise performance does not matter much at this point – just determine whether the algorithm has an edge or not”. How do you define and measure this edge? You might agree this is no trivial question, and you teach me how many ways there are to define and measure it (somebody suggesting to make it at the “signal” rather than “entry” level, see Peterson…).
For instance, if you apply your very first script to EURUSD, 1H, from 2011 to 2015, you get in the performance result a 0.98 profit factor, and average yearly loss of 5%, a Sharpe of -0.16. How do you decide to go on with research? Which are the parameters that you suggest for the first backtests? Is there a parameter-less measure of the edge? Is a SAR “system” really the best set-up for measuring edge, or this comes for instance by the application of an indicator/signal/entry logic + a filter?
These questions are where, due to the “combinatorial complexity” of possibilities (and theories around) I still start driving into the fog…
Muito obrigado!
Essa é uma boa pergunta. You’ll normally write an algorithm step by step, from a first simple and raw version to the final version. At some point you have to decide whether to continue, or go back and try different ways. So you’re permanently backtesting variants. You will not necessarily get good total profits at first. But when the method has an edge, it should at least be profitable in certain market periods and situations. That’s the periods and situations that you then analyze in more detail, for finding out why your algorithm works there and not elsewhere, and how you could detect them or filter them out.
There is no simple formula, every algorithm has a different approach. The same inefficiency can be exploited with thousands of different algorithms. Maybe 90% them do not work at all because they react to slow or are too sensitive to noise or for other reasons. You must always be prepared to abandon an algorithm when you can not find at least a temporary clear edge within a reasonable amount of time.
Thank you Jcl, very useful.
I am still puzzled, though. Surely your good systems could provide a benchmark for testing some of the measures around, like the e-ratio by C. Faith, or the “acrary edge test”, and perhaps still more (information gain and the like). I think that some statistic about “signals” (before going into rules, see again Peterson) could be very valuable, also when for instance looking into data mining for finding inefficiencies. Zorro seems the ideal environment for making such tests. And, perhaps you would agree, if we want to be strict and a bit “scientific”, we should try to avoid the use of “fat words” like “edge”, if we cannot measure it.
But your “hacker” approach seems very sound and productive (more than analysis paralysis, which is often my problem, surely!).
Really enjoyed this series of articles, thanks man!
Just an FYI, for more complex parameter optimization problems I would consider multimodal global optimization algorithms over unimodal local optimization algorithms because of the characteristics of the fitness landscape and the presence non stationarity optima / regimes 🙂
This is a different philosophy of parameter optimization. Multimodal optimization finds a local maximum in an irregular fitness landscape, while unimodal optimization finds the global maximum in a rather regular landscape. Clearly, the former gets higher performance in backtests. But the question is if a system will be robust and profitable in real trading when it has an irregular fitness landscape and was optimized at a local peak. I think: no. But this would be indeed an interesting question to check out, and maybe the topic of a future study and blog post.
jcl – First off, congrats on developing quality content! I am fortunate enough to have stumbled into this and it’s going to keep me busy for sometime. One question (among many others 🙂 I have.
You say “But do not yet use any stops, trailing, or other bells and whistles. They would only distort the result..”. In my backtests of an intraday trading system, I am using fixed stop loss and profit target and is an outcome from every training interval. My assumption was, these tie into the ADR (daily range or volatility) of the recent market conditions and hence should be tuned. However, I would love to hear your inputs on this and if this creates more curve fitting risk that I don’t see.
Thanks again for putting this altogether!
Yes, you can and should absolutely use volatility dependent stops and tune them. But I suggest not to do that in the early stage when you just want to find out if your algorithm works at all. Tuning and complex exits just makes it more difficult to decide if there really is an “edge”, or “alpha”, or “truth”, or whatever you call it, to your entry algorithm.
Do you have any news about the following (a dead link):
a new article was posted on the Financial Hacker blog:
Construa estratégias melhores! Part 4: Data Mining.
In 1996, Deep Blue was the first computer to win the chess championship. It took 20 more years until the leading Go player Lee Sedol was defeated by a computer program, AlphaGo. O Deep Blue era um sistema baseado em modelos com regras de xadrez hardwired. AlphaGo is a data-mining system, a deep …
You received this e-mail because you asked to be notified when new articles are posted.
Obrigado & amp; Best Regards!
O Hacker Financeiro.
Sorry for that – it was an email glitch by hitting a wrong button. I had started the article, but then something came up and I had not yet the time to finish it. But I’ll do that soon.
I did the Really-out-of-sample (ROOS) Test with 2015 historical data. My PF>1 and SR.
<1 and it give 2000pips at the end of the year. However the equity curve is flat with R=0.00.
I dont know if it make sense to go back to step 1 and try to improve R with risk control or if such a result is an indicator that my strategy has no edge from the beginning. I know it is dificult to say with just such info but I just wonder as a global question how bad or how go the ROOS has to be to keep using the strategy or to abandon it. Maybe the rule is that the strategy has to give the same results during 2015 as the backtest during the whole 2014?
The R2 value is not really relevant here, since R2 is a long-term parameter that needs a longer equity curve than only one year. There are two other questions that a ROOS test can answer: Does the result look very different to the results from any year before? And would you have started trading this system in January when you knew the end result in December?
Good to know that R2 isnt that important. 🙂
These are actually really good questions. Even Z12 taken a bad year can look not that good to go live with it. My DD, PF and MI and SR of the year in the ROOS are similar to the backtest result because there is also a flat period on the backtest too which produces similar DD. The question is if this flat period will keep on going and since I dont know yet how to filter it, it is like throwing a coin to go life. Could it be possible to use Cold Blood Index during the ROOS?
Yes, the CBI works for the ROOS period just as for live trading. The long flat periods are due to the filter – it’s not optimal here. This is not a commercial quality system, it’s only for demonstration.
Obrigado pela resposta.
I have an extrange situation now tho. My strategy past the ROOS test for the assets I prepare in the training period but I do not have any parameters optimized because I want to control the number of pips on risk per trade. However if I apply WFO then it is a disaster ( or almost ). On one side it can be due to overfitting ofc but then I do not know how the strategy can pass ROSS. On the other side I noticed in the performance report a big unbalance between long and short trades after the WFO. It looks like the most stable PF is obtained for a parameter value which actually produces only trades in one direcction and at the end, the result isnt that good. Can detrend solve that problem? Should the training consider the PF stability of long and short trades?
If I understood you right, your strategy passed the ROOS test with default parameters, but after optimizing with WFO it failed. The ROOS test must be done after WFO, not before. Otherwise it can be just a lucky selection of parameter default values. A long/short asymmetry after WFO is probably an artifact caused by a strong trend during the training periods. In that case you should indeed detrend the trade results in training.
Yes thats correct. I did not do WFO or parameter optimization the first time and I prepared the strategy so but then I begun again with a WFO to compare the strategies and in that case I got such a bad result. It is good to know that ROOS has to be done after WFO and that WFO is mandatory.
I detrended it and the problem was still there. It was indeed an artifact because I found out that the trades were placed in the wrong side for some of the assets due to a too big rollover so I probably updated the asset list on a wrong day.
Artigo agradável. Just beginning my algorithmic trading journey and I often refer back to this article when developing. You mention that “Your algorithm must be able to produce positive returns either with pure reversal, or at least with a timed exit.”
It seems that the suggestion here is to leave the trade after a reversal is detected, or when, let’s say, n candles have passed since the entry of the trade. Is this not highly dependent on how you define 1) a reversal and 2) the size n?
It seems that this too also introduces some selection bias into the initial steps of developing an algorithm.
No, with “reversal” I mean a trade reversal, not a price reversal. The algorithm opens a short trade, and this closes a long position, or vice versa. Most algorithms are symmetric, so they can go long or short.
Exceptions are long-only strategies for stocks or ETFs. They do not reverse, so you need some other means for closing a trade. In most cases the algorithm still produces a native close signal that is the opposite of the open signal. If not, you must use a timed exit. For determining n, you normally plot a price profile at trade entry. Zorro has a function for plotting such a profile. n is then a point after the price turns back.
Jcl thanks for the prompt reply!
It looks like a simple straight forward process. Find an indicator which gives a SR>1 on a test with a simple script in some assets and you are ready to go. The question could be: Is there a certain minimun amount of assets which have to give good results with the simple script in order to ensure that it has an edge or is it enough if just one/two/three assets produce good results?
I said that the process looks simple because it gets kind of more complicate when more assets and algos has to be added. In the tutorial it is written that at least 10 algos and 10 assets have to be combined in order to create a robuts strategy. I struggle in this part because eventhough I can find some algos which behave ok with the reversal script, I am not sure what is the right way to proceed when it is time to combine them.
Has this step-by-step framework protocol been empirically studied to determine its efficacy/reliability? How many systems generated and undergone such robustness tests using the whole procedure described above, have turned out to be profitable under live forward tests (and for how long)? Can we quantify all the results of the number of systems that failed these tests vs. the number of systems that have passed? Are there verified real accounts to provide evidence of efficacy for this particular framework? Has anybody attempted to compare this framework to Michael Harris’ [advertisement link removed] ?
Please, advertise your software on your own website, not on my blog. Obrigado. & # 8211; Assuming the question was serious: This article is not about a new invented “framework” for trade systems, or something like that. I’m describing the standard process of building a software model. This works in a similar way with any predictive model, not necessarily for trading.
Nice article, thanks JCL. Just one note on money management. According to Magdon-Ismail scaling of the expected MDD with T undergoes a phase transition from T to √T to log T as µ changes from negative to zero to positive. A drawdown will eat up all your capital C(T) at some time, but it’ll take more time. For example for a system with Kelly 12.5 it won’t take 40 years (for √T scaling) but something like 1 million years (for log T scaling).
This is correct; in the strong sense the √T scaling is only valid for systems with neither positive nor negative expectancy. But there are more factors involved. Magdon-Ismail considered a drift term µ > 0, which increases the time until crash, but did not consider a (very likely) autocorrelation of the results, which reduces the time until crash. So with assuming a √T scaling you’re more on the safe side than with log T.
Ajuste de curvas e otimização no desenvolvimento de estratégias de negociação.
O desenvolvimento de estratégias de negociação geralmente envolve otimização e ajuste de curva de algum tipo. Há visões diferentes e até conflitantes sobre o significado de otimização e ajuste de curva e seu impacto no desempenho da estratégia. Alguns afirmam que a otimização e o ajuste de curva são inevitáveis e até mesmo necessários, mas outros insistem que qualquer estratégia de negociação que seja otimizada ou adaptada à curva acabará falhando.
Em matemática, o ajuste de curva é o processo de encontrar uma curva que se adapte melhor a uma coleção de pontos de dados, no sentido de que alguma função objetiva sujeita a restrições é maximizada (ou minimizada). Por exemplo, mínimos quadrados é um método de ajuste de curvas que minimiza a soma dos resíduos quadrados. Um residual é a diferença entre um valor ajustado e um valor real. A função objetivo para minimizar ao usar este método para obter o melhor ajuste é a soma dos resíduos quadrados. Observe que um “melhor ajuste” é definido apenas em relação ao objetivo escolhido e esse ajuste de curva é essencialmente o resultado da otimização.
Ajuste de curvas e otimização.
Quando se adota a definição de que estratégias de negociação são processos que geram coleções de sinais de entrada e saída, então percebe-se que o que é feito essencialmente quando quaisquer parâmetros são ajustados via back-testing é que o tempo dos sinais é variado para que eles sejam ajustada em dados históricos de tal forma que alguma função objetiva seja otimizada. Isso não é um ajuste de curva no sentido usual porque não se está apenas tentando encontrar uma curva que melhor se adapte aos dados históricos, mas sim encontrar a melhor coleção de sinais de entrada que, em conjunto com os sinais de saída, maximizam algum objetivo. Esse processo é muito mais complicado e complicado do que simples ajuste de curva. Envolve a seleção ou a sincronização dos sinais de entrada e saída, de modo que uma função objetiva relacionada ao desempenho seja otimizada. Esse é um problema de otimização, e não apenas um problema de ajuste de curva. Como já mencionado, o ajuste de curva pode envolver otimização, mas o último é um processo com um escopo muito mais amplo e inclui muito mais possibilidades que o primeiro. Portanto, é melhor se referir a estratégias otimizadas ao invés de ajustadas a curvas, embora isso se torne mais uma questão de semântica para aqueles que entendem o processo em profundidade.
Vamos considerar uma estratégia de crossover de média móvel simples que gera sinais de entrada longos quando SMA (t1) & gt; SMA (t2), onde t1 e t2 são os períodos com t2 & gt; t1 e sinais de entrada curtos quando SMA (t1) & lt; SMA (t2) Na sua forma mais simples, esta é uma estratégia de paragem e inversão, isto é, quando um sinal oposto é gerado, a posição anterior é fechada e invertida. Essa estratégia não pode ser usada na prática, a menos que os valores de t1 e t2 sejam selecionados. Os valores geralmente são determinados por meio da otimização do desempenho usando o back-testing em dados históricos. Muitos acreditam que este processo resulta em estratégias que falham na negociação real porque são ajustadas à curva. Esta é uma afirmação válida?
Falhas de estratégia podem estar relacionadas a mudanças nas condições do mercado.
Na verdade, ninguém jamais provou matematicamente que as falhas de estratégias otimizadas, que estão bem documentadas, são principalmente devidas à otimização, ou o que é comumente chamado de ajuste de curva. Pode ser o caso de as falhas serem meramente devidas à natureza das estratégias e à sua incapacidade de se adaptar às mudanças nas condições do mercado. É mais provável que as estratégias de negociação otimizadas falharão em qualquer valor de seus parâmetros em algum momento. É a natureza da estratégia e não a otimização que causa a falha. A grande classe de estratégias de negociação baseada em indicadores de análise técnica tem alta probabilidade de falha, mas isso foi erroneamente atribuído com base em minha experiência no processo de otimização para configuração de parâmetros. Não importa se os parâmetros estão definidos para que pequenas alterações em seus valores resultem em desempenho estável. Esta não é uma questão da integridade do método de otimização usado, mas da natureza dessas estratégias de negociação.
Em meu artigo “Limitações de declarações quantitativas sobre avaliação de estratégia de negociação”, tenho um exemplo que mostra como as condições de mercado mudam e afetam o desempenho da estratégia, e que a seleção de parâmetros é irrelevante.
No entanto, qualquer otimização que cause seleção de coleções de entrada e saída é, em geral, um processo problemático, pois pode introduzir viés. Selecionar coleções que tiveram melhor desempenho no passado ignora o fato de que muitas outras coleções semelhantes falharam.
Voltando à estratégia de crossover de média móvel simples, é fácil entender que, dada uma série de dados históricos específicos, alterar os valores de t1 e t2 causará uma mudança no tempo dos sinais de entrada e saída. Nesse caso, selecionar qualquer coleta de sinais de entrada e saída que resulte de valores específicos dos parâmetros, de forma que alguma função objetivo seja maximizada, introduz um viés. Isso ocorre porque pode ser devido ao acaso que a coleção específica sobreviveu em condições específicas de mercado. No exemplo simples, cada coleção é completamente diferente das outras, no sentido de que tanto a entrada quanto os pontos de saída são diferentes. O que podemos fazer para minimizar o viés para que a integridade do processo de otimização não seja comprometida? Esta questão pode ser respondida se primeiro entendermos como diferentes tipos de estratégias são afetados pela otimização de seus parâmetros.
Uma classificação de três níveis de estratégias de negociação otimizadas.
Podemos distinguir três tipos de estratégias dependendo de como a otimização afeta sua coleção de pontos de entrada e saída:
Ajuste de curva tipo I: Quando os parâmetros das estratégias Tipo I são ajustados, os sinais de entrada e de saída são afetados, como, por exemplo, na estratégia de cruzamento de média móvel simples considerada antes. Nesse caso, a otimização e o ajuste de curva resultam em coleções de sinais de entrada e saída que diferem e a seleção de um que apresenta melhor desempenho apresenta um viés de seleção. Essas estratégias têm a maior probabilidade de falha.
Ajuste da curva do tipo II: Quando os parâmetros das estratégias do Tipo-II são ajustados, somente os sinais de entrada são afetados. Nesse caso, a otimização e o ajuste de curva resultam em coleções de sinais de entrada e saída que diferem apenas em sua parte de entrada. A seleção introduz menos preconceito do que com as estratégias do tipo I. Essas estratégias apresentam menor probabilidade de falha que as estratégias do tipo I. Exemplo: Digite long se SMA (t1) & gt; SMA (t2) e preço & lt; P e Exit long em P1 ou P2 onde P1 e P2 são preços fixos (preço de lucro e preço de parada).
Ajuste da curva do tipo III: Quando os parâmetros das estratégias do Tipo III são ajustados, somente os sinais de saída são afetados. Nesse caso, a otimização e o ajuste de curva resultam em coleções de sinais de entrada e saída que diferem apenas em sua parte de saída. A seleção introduz menos polarização do que no caso do Tipo I ou Tipo II. Essas estratégias têm a menor probabilidade de falha porque o tempo dos sinais de entrada não é afetado pela otimização. Exemplo: insira um tempo se Fechar de hoje & gt; Fecha de 2 dias atrás e Sai long no preço de entrada + x pontos ou no preço de entrada - y pontos, onde xey são o parâmetro para otimizar (meta de lucro e stop-loss).
Em geral, as estratégias que incluem indicadores envolvem ajuste de curva do tipo I. O ajuste da curva do tipo II raramente está presente na prática. O ajuste de curva do tipo III inclui a ampla classe de estratégias baseadas em padrões de preços sem parâmetros.
A maioria dos programas de software que descobrem estratégias de negociação geram automaticamente estratégias do tipo I. É irrelevante quantos testes estatísticos eles realizam para medir a significância dos resultados, uma vez que essas estratégias têm alta probabilidade de falha durante as negociações reais, devido à sua natureza e às mudanças nas condições de mercado. Note que nem todas as estratégias do Tipo III fazem sentido. Por exemplo, tentar descobrir essas estratégias sem um modelo de mercado orientador é um exercício de futilidade, pois há bilhões de combinações de recursos de ação de preço que podem resultar nesse tipo de estratégia e o viés de seleção é extremamente alto. No entanto, parece que, em quadros de curto prazo, essas estratégias podem ser mais eficazes se planejadas adequadamente.
A questão importante não é se uma estratégia é otimizada porque todas as estratégias são de uma maneira ou de outra, mas em que grau a otimização afeta a probabilidade de falha devido à sua natureza e às mudanças nas condições de mercado. As estratégias podem falhar devido a muitas razões, mas neste artigo lidamos com otimização e ajuste de curva. As estratégias de ajuste de curva do tipo III, conforme definido acima, parecem ter a menor probabilidade de falha se projetadas adequadamente. No entanto, na maioria dos casos, o design é ingênuo e não é guiado pelo modelo de mercado apropriado.
Este artigo foi originalmente publicado no Price Action Lab Blog.
Se você tiver dúvidas ou comentários, fique feliz em se conectar no Twitter: @mikeharrisNY.
Sobre o autor: Michael Harris é um comerciante e autor best-seller. Ele também é o desenvolvedor do primeiro software comercial para identificar padrões sem parâmetros na ação de preço há 17 anos. Nos últimos sete anos, ele trabalhou no desenvolvimento do DLPAL, um programa de software que pode ser usado para identificar anomalias de curto prazo em dados de mercado para uso com modelos de aprendizado fixos e de máquina. Clique aqui para mais.
Ao aplaudir mais ou menos, você pode nos indicar quais histórias realmente se destacam.
Michael Harris.
Quant trader sistemático e discricionário, autor de trading book e desenvolvedor de software de aprendizado de máquina DLPAL. Nenhum conselho de investimento. #quant #trading #finance.
No comments:
Post a Comment