Thursday 29 March 2018

Processo de desenvolvimento da estratégia comercial


Desenvolvendo uma Estratégia de Negociação.


Autores de seção superior.


Desenvolvendo uma Estratégia de Negociação.


Tim Wreford.


- Remove as emoções da negociação. Um comerciante que segue uma estratégia sabe o que fazer o que faz o mercado. Um comerciante que não tem uma estratégia tenta tomar decisões quando o mercado está aberto e é susceptível de se tornar emocionalmente ligado às posições. Eles podem experimentar pânico e indecisão quando o mercado não se move em seu favor, pois eles não têm uma resposta preparada.


- Tempo de espera. Desenvolver uma estratégia de negociação que tenha uma vantagem é um trabalho árduo. No entanto, uma vez desenvolvido, as regras podem ser facilmente automatizadas, liberando o comerciante de ter que assistir gráficos o dia inteiro e permitir tempo para desenvolver estratégias adicionais.


No entanto, o desenvolvimento de uma estratégia comercial efetiva 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 enganar o comerciante imprudente. Fundamentalmente, uma estratégia deve ser construída em torno de algum tipo de vantagem estatística. É essa vantagem que vai se desempenhar ao longo do tempo e criar fluxos de caixa positivos para o sistema e para o comerciante.


3. Escolhendo um instrumento para negociar.


4. O Trade Set-up.


8. Formas de melhorar o lucro por comércio.


Você precisa estar logado para publicar comentários ou avaliar este artigo.


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-chave 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 de esportes profissionais sabem disso, e essa idéia se aplica a sua organização, seu departamento, sua equipe e ndash; e mesmo para você como indivíduo.


Para ser bem sucedido, é saber como usar seu talento e recursos para melhor vantagem, e é muito difícil "ganhar" se você não possui este plano de jogo.


Este artigo apresenta-lhe 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 o qual a concorrência e a rentabilidade são importantes, seus objetivos serão diferentes dos de um departamento sem fins lucrativos ou governamental. Da mesma forma, os objetivos para um departamento ou equipe terão um escopo diferente de objetivos para sua organização como um todo.


Por exemplo, e dependendo do escopo e das circunstâncias, você pode querer desenvolver estratégias para:


Aumenta a lucratividade. Ganhe mais participação no mercado. Aumente as classificações de aprovação ou aumente a satisfação do cliente. Complete um projeto no orçamento.


Para determinar sua estratégia, você deve entender completamente os fatores ambientais internos e externos que o afetam. Com esse entendimento, você pode identificar suas vantagens claras e usá-las para ter sucesso. A partir daí, você pode fazer escolhas informadas e implementar sua estratégia de forma eficaz.


Assim, a criação de estratégias segue um processo em três estágios:


Analisando o contexto em que você está operando. Identificando opções estratégicas. Avaliando e selecionando as melhores opções.


Examinaremos esse processo e analisaremos algumas ferramentas úteis que podem ajudá-lo a desenvolver sua estratégia.


Etapa 1: Analisando seu Contexto e Ambiente.


Nesta primeira etapa, você garante que você se compreenda completamente e 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ê o 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, olhe suas Competências básicas. Estes destacam suas forças únicas e ajudam você a pensar sobre como você pode se afastar de seus concorrentes.


Analise o 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? Que cenários futuros são prováveis ​​em sua indústria, e como isso afetará o trabalho que você faz?


PEST Analysis, Porter's Diamond e Porter's Five Forces são ótimos pontos de partida para analisar o seu ambiente. Eles mostram onde você tem uma posição forte dentro do ambiente maior, e onde você pode ter problemas.


À medida que você se prepara para criar sua estratégia, certifique-se de que está trabalhando de uma maneira alinhada com as mudanças em seu ambiente operacional, em vez de trabalhar contra elas. Esses fatores externos geralmente estão fora do seu controle, então, se você perseguir uma estratégia que exige uma mudança em um desses elementos, você pode ter uma batalha longa, exaustiva e não lucrativa à sua frente.


Uma matriz TOWS pode ajudá-lo com sua análise interna e externa. Esta estrutura combina tudo o que você aprendeu em sua Análise SWOT (TOWS é SWOT em sentido inverso) e, em seguida, aplica-o ao desenvolvimento de uma estratégia que maximize pontos fortes e oportunidades ou minimize fraquezas e ameaças.


Analise seus clientes e partes interessadas.


Sua estratégia define como você vai ganhar, e ganhar é geralmente enquadrado pelo quão bem você satisfaz seus clientes. As empresas com fins lucrativos devem manter seus clientes e acionistas satisfeitos. Governos, organizações sem fins lucrativos e equipes de projetos também têm outras partes interessadas para satisfazer também. A criação da estratégia deve considerar essas necessidades.


Identifique seus clientes e partes interessadas. O que seus clientes desejam? E quem são as principais partes interessadas no seu sucesso? A análise das partes interessadas irá ajudá-lo a descobrir essas necessidades e preferências.


Além disso, veja seu mercado em detalhes. Responda questões-chave como "Como o nosso mercado é segmentado?", "Quais subpopulações podemos alcançar de forma econômica?" e "Qual é a nossa melhor mistura de marketing?"


Analise seus concorrentes.


Em uma empresa tradicional com fins lucrativos, você deve entender como seus produtos se comparam com os produtos dos concorrentes e quais são as competências dos seus concorrentes. Quão fácil, ou difícil, é entrar no seu mercado? Quais alternativas os clientes têm?


Nosso artigo sobre USP Analysis ajuda você a identificar maneiras pelas quais você pode competir de forma eficaz. Você também encontrará muitas ferramentas úteis que podem ajudá-lo a entender competidores em nosso artigo sobre Inteligência Competitiva.


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 você pode agregar valor, atingir os objetivos e contribuir para o sucesso organizacional.


Etapa 2: Identificando opções estratégicas.


Na Etapa 1, você desenvolveu uma compreensão 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 clara vantagem e cumprir seus objetivos. Aqui estão algumas atividades fundamentais que podem ajudá-lo a tomar essa decisão.


Opções de Brainstorm.


Use ferramentas de criatividade como Brainstorming, Reverse Brainstorming e Starbursting para explorar projetos que você poderia executar para desenvolver vantagem competitiva. Guia seu brainstorming com referência à declaração de missão da organização, mas, dependendo do seu papel na organização, considere o quão longe você deve ser limitado 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 até transformar suas ameaças em oportunidades.


Resolver problemas.


Uma abordagem de resolução de problemas também pode ajudar nesta fase. Se o seu problema é que você não está alcançando seus objetivos, pergunte a si mesmo como você pode garantir que você faça. (Se todos em sua indústria acharem difícil lidar com um problema específico, então você pode ganhar uma vantagem competitiva lidar com isso.)


Por exemplo, se você deseja aumentar suas classificações de satisfação do cliente em uma indústria afetada por relações precárias com o cliente, sua posição inicial é "baixa satisfação". Faça um brainstorming por que esse é o caso e crie opções estratégicas que possam aumentar a satisfação. Ferramentas como Análise de Causas Raiz, 5 Whys e Inquérito Apreciador podem dar-lhe algumas novas perspectivas interessantes sobre estes problemas.


Etapa 3: avaliação e seleção de opções estratégicas.


O estágio final é avaliar as opções estratégicas em detalhes e selecionar as que deseja seguir.


2018 Life Plan Toolkit Offer!


Faça deste ano seu melhor ano com o nosso 2018 Life Plan Toolkit, GRATUITAMENTE quando se juntar ao Mind Tools Club antes da meia-noite, 11 de janeiro.


Receba o boletim gratuito.


Aprenda novas habilidades de carreira todas as semanas e obtenha GRATUITAMENTE o nosso Livro de Trabalho de Plano de Desenvolvimento Pessoal quando você se inscrever.


Avalie as opções.


Por esta fase, você provavelmente identificou uma série de bons projetos que você poderia executar. Agora você deve avaliar estes 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é que você tenha concluído sua avaliação.


Comece por avaliar cada opção à luz dos fatores contextuais identificados no estágio 1. O que isso diz 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 detectar as possíveis conseqüências negativas de cada opção, o que pode ser muito fácil de perder. Certifique-se de que você explore estes completamente.


A Análise da Matriz de Decisão é particularmente útil para reunir critérios de decisão financeira e não financeira. Isso ajuda você a ponderar critérios de decisão individuais e considerar características subjetivas - como ajuste de equipe e a probabilidade de buy-in da equipe - bem como fatores objetivos, tangíveis, como custo e retorno sobre o investimento.


Escolha o melhor caminho para a frente.


Com a sua avaliação completa, você deve escolher a melhor opção estratégica ou opções estratégicas, certificando-se de que você não escolha tantas opções que espalhe seus recursos também.


Verifique suas idéias para consistência com a visão, a missão e os valores da sua organização, e atualize-os, se necessário. É fácil esquecer esses elementos críticos durante o planejamento estratégico, para garantir que o que você quer "ganhar" é algo que contribui para o objetivo geral da organização.


Verifique suas suposições usando a Escada de inferência. Isso ajuda você a confirmar a solidez do processo de raciocínio usado para desenvolver sua estratégia.


Há um grande debate e desentendimento 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 implementá-la com sucesso, e é aí que muitas pessoas se desviaram.


Quando você está colocando a sua estratégia em prática, considere os Três Cs de Estratégia de Implementação e ndash; Esclarecer, comunicar e Cascade & ndash; que foram identificados pelo consultor comercial Scott Edinger. Pergunte a cada um com um pouco mais de detalhes.


Esclareça sua estratégia.


Sua estratégia precisa ser compreendida por pessoas em todos os níveis da 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 conectar-se e não se esqueça de evitar jargões empresariais e & ldquo; corporate speak. & Rdquo;


Comunique sua estratégia.


Use todos os meios à sua disposição para comunicar sua estratégia à sua organização, tanto eletronicamente quanto face a face. Sua estratégia afetará todos, por isso é vital que eles compreendam seu novo foco e direção, e como ele irá informar seu próprio trabalho.


Cascue sua estratégia.


Elimine os & ldquo; nozes e parafusos & rdquo; de implementar sua estratégia em toda a organização. Consulte com os gerentes e criá-los com os aspectos práticos de aplicá-lo aos seus próprios departamentos, incluindo quaisquer requisitos de treinamento ou melhorias de processo que precisam ser feitas. É assim que a sua estratégia se torna realidade.


Veja nossos artigos sobre Análise VMOST e Balanced Scorecard para obter formas de preencher a lacuna entre o desenvolvimento e a implementação da estratégia e o nosso menu Gerenciamento de Projetos para mais técnicas que você pode usar para implementar a estratégia com sucesso.


Pontos chave.


Sua estratégia diz como você alcançará o sucesso, não importa como esse sucesso seja definido. E se você está desenvolvendo uma estratégia no nível pessoal, equipe ou organização, o processo é tão importante quanto o resultado.


Identifique suas capacidades únicas e compreenda como usar estas para sua vantagem, minimizando as ameaças. O processo e as ferramentas identificadas acima irão ajudá-lo a identificar uma variedade de estratégias potenciais para o sucesso, para que, em última análise, você possa escolher o que é certo para você.


Aplique isso à sua vida.


Prática de desenvolvimento da estratégia pensando nas suas próprias circunstâncias pessoais. Complete as análises abaixo para pensar sobre o seu caminho pessoal. Aqui estão algumas questões-chave a considerar:


Quais são seus pontos fortes, fracos, oportunidades ou ameaças pessoais e quais são suas "competências essenciais"? O que você é capaz de alcançar se você colocar sua mente nisso? Quais são as tendências da "grande imagem" em seu ambiente? Como você pode monitorar ou se adaptar a esses fatores externos? Quem são as pessoas importantes para o seu sucesso (seus stakeholders)? Quais opções você tem? Qual destes você deve considerar?


Este site ensina as habilidades que você precisa para uma carreira feliz e bem-sucedida; e esta é apenas uma das muitas ferramentas e recursos que você encontrará aqui na Mind Tools. Inscreva-se no nosso boletim informativo gratuito ou participe do Mind Tools Club e realmente supera sua carreira!


Oferta de ferramentas do plano de vida.


Defina metas poderosas para 2018 com nosso Kit de Ferramentas do Plano de Vida. Isto é GRATUITO quando você participa do Mind Tools Club antes da meia-noite, 11 de janeiro.


Comentários (9)


Bem-vindo ao Clube e prazer em saber que você está aproveitando nossos recursos aqui e que eles contribuíram para a sua aprendizagem para o seu Mestrado. Boa sorte com isso.


Mind Tools Team.


Receba o boletim gratuito.


Receba o boletim gratuito.


Aprenda novas habilidades de carreira todas as semanas e obtenha GRATUITAMENTE o nosso Livro de Trabalho de Plano de Desenvolvimento Pessoal quando você se inscrever.


Oferta de ferramentas do plano de vida do ano novo.


Defina metas poderosas para 2018 com nosso Kit de Ferramentas do Plano de Vida. Isto é GRATUITO quando você participa do Mind Tools Club antes da meia-noite, 11 de janeiro.


Mind Tools para sua organização.


Inspire sua equipe com mais de 2 000 recursos que os ajude a desenvolver suas habilidades e se tornarem mais eficazes no local de trabalho.


Recursos relacionados.


De Mind Tools.


Relógio Estratégico do Bowman.


Suas visualizações.


Forneça seus comentários.


O que Bugs você.


Deixe-nos saber suas sugestões ou quaisquer erros no site, e você pode ganhar um vale de $ 50 Amazon!


Clique aqui para nos contar.


Links patrocinados.


Meu Plano de Aprendizagem.


Adicionar artigo ao meu plano.


Salve meu plano.


Treinamento de Gestão e Treinamento de Liderança, Online.


Construa melhores estratégias! Parte 3: o processo de desenvolvimento.


Esta é a terceira parte da série Build Better Strategies. Na parte anterior, discutimos as 10 ineficiências do mercado mais exploradas e deram alguns exemplos de suas estratégias de negociação. Nesta parte, analisaremos o processo geral de desenvolvimento de um sistema de negociação baseado em modelo. Como praticamente qualquer coisa, você pode fazer estratégias de negociação em (pelo menos) duas maneiras diferentes: "É a maneira ideal, e é o caminho real. Começamos com o processo de desenvolvimento ideal, dividido em 10 etapas.


O desenvolvimento ideal da estratégia baseada em modelos.


Passo 1: o modelo.


Selecione uma das ineficiências de mercado conhecidas listadas na parte anterior, ou descubra uma nova. Você pode fazer o globo ocular através de curvas de preços e procurar algo suspeito que possa ser explicado por um certo comportamento do mercado. Ou o contrário, teorize sobre um padrão de comportamento e verifique se você pode encontrá-lo refletido nos preços. Se você descobrir algo novo, sinta-se convidado a publicá-lo aqui! Mas tenha cuidado: modelos de ineficiências não existentes (como Elliott Waves) já superam as ineficiências reais em grande quantidade. Não é provável que uma ineficiência real permaneça desconhecida até hoje.


Uma vez que você decidiu por um modelo, determine a anomalia da curva de preço que ele produziria, e descreva-a com uma fórmula quantitativa ou pelo menos um critério qualitativo. Você precisará disso para o próximo passo. Como exemplo, estamos usando o Modelo de Ciclos da parte anterior:


(Os ciclos não devem ser subestimados. Um dos fundos mais bem sucedidos da história & # 8211; Jim Simons & # 8217; Renaissance Medallion fund & # 8211; é rumorado para explorar ciclos nas curvas de preço, analisando seus comprimentos (C i), fases (D i) e amplitudes (ai) com um modelo de Markov oculto. Não se preocupe, usaremos uma abordagem um pouco mais simples em nosso exemplo).


Passo 2: Pesquisa.


Descubra se a anomalia hipotética realmente aparece nas curvas de preço dos ativos que deseja negociar. Para isso, você precisa primeiro de dados históricos suficientes dos ativos negociados e # 8211; D1, M1 ou Tick, dependendo do período da anomalia. Quão longe atrás? Na medida do possível, você quer descobrir a vida útil da sua anomalia e as condições do mercado sob as quais aparece. Escreva um script para detectar e exibir a anomalia nos dados de preços. Para o nosso Modelo de Ciclos, este seria o espectro de frequência:


Espectro de frequência EUR / USD, amplitude do ciclo vs. comprimento do ciclo nas barras.


Veja como o espectro muda ao longo dos meses e anos. Compare com o espectro de dados aleatórios (com Zorro você pode usar a função Detrend para aleatorizar curvas de preço). Se você não encontrar sinais claros da anomalia, ou nenhuma diferença significativa em dados aleatórios, melhore seu método de detecção. E se você ainda não conseguir, volte para o passo 1.


Passo 3: o algoritmo.


Escreva um algoritmo que gere os sinais comerciais para comprar na direção da anomalia. A ineficiência do mercado normalmente tem apenas um efeito muito fraco sobre a curva de preços. Então, seu algoritmo deve ser realmente bom ao distingui-lo do ruído aleatório. Ao mesmo tempo, deve ser o mais simples possível e confiar em poucos parâmetros gratuitos possível. No nosso exemplo com o Modelo de ciclos, o script inverte a posição em cada vale e pico de uma curva de seno que ultrapassa o ciclo dominante:


Este é o núcleo do sistema. Agora, é hora de um primeiro backtest. O desempenho preciso não importa muito neste ponto e # 8211; apenas determine se o algoritmo tem uma vantagem ou não. Pode produzir uma série de negócios lucrativos pelo menos em determinados períodos ou situações de mercado? Caso contrário, melhore o algoritmo ou escreva outro que explore a mesma anomalia com um método diferente. Mas ainda não use paradas, arrastar ou outros sinos e assobios. Eles apenas distorciam o resultado e dão-lhe a ilusão de lucro onde nenhum está lá. Seu algoritmo deve ser capaz de produzir retornos positivos com inversão pura ou pelo menos com uma saída temporizada.


Nesta etapa, você também deve decidir sobre os dados do backtest. Você normalmente precisa de M1 ou marca dados para um teste realista. Os dados diários ganharam # 8217; t fazer. O valor dos dados depende do tempo de vida (determinado no passo 2) e da natureza da anomalia de preços. Naturalmente, quanto mais o período, melhor o teste & # 8211; mas nem sempre é melhor. Normalmente, não faz sentido ir mais longe do que 10 anos, pelo menos não quando seu sistema explora algum comportamento de mercado real. Os mercados mudam extremamente em uma década. Os dados de preços históricos desatualizados podem produzir resultados muito enganadores. A maioria dos sistemas que tiveram uma vantagem há 15 anos falhará miseravelmente nos mercados de hoje. Mas eles podem enganá-lo com um backtest aparentemente rentável.


Passo 4: o filtro.


Nenhuma ineficiência de mercado sai todo o tempo. Qualquer mercado passa por períodos de comportamento aleatório. É essencial que qualquer sistema tenha um mecanismo de filtro que detecte se a ineficiência está presente ou não. O filtro é pelo menos tão importante como o sinal de comércio, se não mais, # 8211; mas é muitas vezes esquecido nos sistemas de comércio. Este é o nosso script de exemplo com um filtro:


Aplicamos um filtro de passagem de banda centrado no período de ciclo dominante para a curva de preços e mede sua amplitude. Se a amplitude estiver acima de um limiar, concluímos que a ineficiência existe, e nós negociamos. A duração do comércio agora também está restrita a um máximo de 10 ciclos, uma vez que encontramos no passo 2 que os ciclos dominantes aparecem e desaparecem em um tempo relativamente curto.


O que pode dar errado nesta etapa está caindo na tentação de adicionar um filtro apenas porque melhora o resultado do teste. Qualquer filtro deve ter uma razão racional no comportamento do mercado ou no algoritmo de sinal usado. Se o seu algoritmo só funcionar adicionando filtros irracionais: de volta ao passo 3.


Etapa 5: otimizando (mas não muito!)


Todos os parâmetros de um sistema afetam o resultado, mas apenas alguns determinam diretamente os pontos de entrada e saída de negócios dependentes da curva de preços. Estes & # 8216; adaptáveis ​​& # 8217; Os parâmetros devem ser identificados e otimizados. No exemplo acima, a entrada comercial é determinada pela fase da curva seno anterior e pelo limite do filtro, e a saída comercial é determinada pelo tempo de saída. Outros parâmetros & # 8211; tais como as constantes de filtro das funções de DominioPhase e BandPass & # 8211; não precisam ser adaptados, pois seus valores não dependem da situação do mercado.


A adaptação é um processo de otimização, e uma grande oportunidade de falhar sem sequer notar. Muitas vezes, os métodos de força genética ou bruta são aplicados para encontrar o & # 8220; melhor & # 8221; combinação de parâmetros em um pico de lucro no espaço de parâmetros. Muitas plataformas ainda têm o # optimizer & # 8220; # 8221; para esse fim. Embora esse método realmente produza o melhor resultado de backtest, ele não deve ajudar em absoluto para o desempenho ao vivo do sistema. De fato, um estudo recente (Wiecki et. al. 2018) mostrou que quanto melhor você otimize seus parâmetros, pior seu sistema será comercializado! A razão desse efeito paradoxal é que a otimização para o lucro máximo se adequa ao seu sistema principalmente ao ruído na curva de preço histórico, já que o ruído afeta os picos de resultados muito mais do que as ineficiências do mercado.


Em vez de gerar os principais resultados do backtest, a otimização correta tem outros propósitos:


Pode determinar a susceptibilidade do seu sistema aos seus parâmetros. Se o sistema for ótimo com uma certa combinação de parâmetros, mas perde sua vantagem quando seus valores mudam um minúsculo: de volta ao passo 3. Pode identificar os pontos doces do parâmetro # 8217; s. O ponto doce é a área de maior robustez dos parâmetros, ou seja, onde pequenas mudanças nos parâmetros têm pouco efeito sobre o retorno. Não são os picos, mas os centros de colinas longas no espaço de parâmetros. Pode adaptar o sistema a diferentes ativos e permitir o comércio de um portfólio de ativos com parâmetros ligeiramente diferentes. Também pode prolongar a vida útil do sistema adaptando-a à situação atual do mercado em intervalos de tempo regulares, paralelamente ao comércio ao vivo.


Este é o nosso script de exemplo com otimização de parâmetros de entrada:


As duas otimizações de chamadas usam um valor de início (1.0 em ambos os casos) e um intervalo (0.7..2.0) para determinar os pontos doces dos dois parâmetros essenciais do sistema. Você pode identificar os pontos nas curvas do fator de lucro (barras vermelhas) dos dois parâmetros que são gerados pelo processo de otimização:


Fase seno em pi / 4 unidades Limite de amplitude em pips.


Nesse caso, o otimizador selecionaria um valor de parâmetro de cerca de 1,3 para a fase seno e cerca de 1,0 (não o pico em 0,9) para o limite de amplitude para o ativo atual (EUR / USD). O tempo de saída não é otimizado nesta etapa, como nós vamos fazer isso mais tarde, juntamente com os outros parâmetros de saída quando o gerenciamento de riscos é implementado.


Passo 6: Análise fora da amostra.


Claro que a otimização de parâmetros melhorou o desempenho posterior da estratégia, já que o sistema agora estava melhor adaptado à curva de preços. Portanto, o resultado do teste até agora é inútil. Para ter uma idéia do desempenho real, primeiro precisamos dividir os dados em períodos de amostra e fora da amostra. Os períodos de amostra são usados ​​para treinar, os períodos fora da amostra para testes. O melhor método para isso é Walk Forward Analysis. Ele usa uma janela de rolamento nos dados históricos para separar os períodos de teste e treino.


Infelizmente, o WFA acrescenta mais dois parâmetros ao sistema: o tempo de treinamento e o tempo de teste de um ciclo WFA. O tempo de teste deve ser longo o suficiente para que os negócios sejam abertamente abertos e fechados e pequenos o suficiente para que os parâmetros permaneçam válidos. O tempo de treinamento é mais crítico. Treinamento muito curto não obterá dados de preço suficientes para otimização efetiva, o treinamento muito longo também produzirá resultados ruins, já que o mercado já pode sofrer mudanças durante o período de treinamento. Assim, o próprio tempo de treinamento é um parâmetro que precisa ser otimizado.


Uma análise de cinco ciclos a seguir para a frente (adicionar & # 8220; NumWFOCycles = 5; & # 8221; ao script acima) reduz o desempenho do backtest de 100% de retorno anual para um 60% mais realista. Para evitar que o WFA ainda produza resultados muito otimistas apenas por uma seleção afortunada de testes e períodos de treinamento, também faz sentido executar WFA várias vezes com pontos de partida ligeiramente diferentes da simulação. Se o sistema tiver uma vantagem, os resultados não devem ser muito diferentes. Se eles variarem de forma selvagem: de volta ao passo 3.


Passo 7: verificação de realidade.


Embora o teste esteja agora fora de amostra, o mero processo de desenvolvimento & # 8211; selecionando algoritmos, ativos, períodos de teste e outros ingredientes pelo desempenho deles # 8211; adicionou muitos preconceitos de seleção aos resultados. Eles são causados ​​por uma vantagem real do sistema, ou apenas pelo desenvolvimento tendencioso? Determinar isso com alguma certeza é a parte mais difícil do desenvolvimento da estratégia.


A melhor maneira de descobrir é o Reality Check da White & # 8217; s. Mas também é o menos prático porque requer uma forte disciplina na seleção de parâmetros e algoritmos. Outros métodos não são tão bons, mas são mais fáceis de aplicar:


Montecarlo. Aleatorizar a curva de preços, mexendo sem substituição, depois treine e teste novamente. Repita isso muitas vezes. Trace uma distribuição dos resultados (um exemplo deste método pode ser encontrado no capítulo 6 do Börsenhackerbuch). Randomizing remove todas as anomalias de preços, então você espera um desempenho significativamente pior. Mas se o resultado da curva de preços reais não estiver muito ao leste do pico de distribuição aleatória, provavelmente também é causado por aleatoriedade. Isso significaria: de volta ao passo 3.


Passo 8: Gerenciamento de riscos.


Seu sistema até agora sobreviveu a todos os testes. Agora você pode se concentrar em reduzir seus riscos e melhorar seu desempenho. Não toque mais o algoritmo de entrada e seus parâmetros. Agora você está otimizando a saída. Em vez das simples saídas de tempo e reversão que usamos durante a fase de desenvolvimento, agora podemos aplicar vários mecanismos de parada final. Por exemplo:


Em vez de sair depois de um certo tempo, levante a perda de stop em uma certa quantidade por hora. Isso tem o mesmo efeito, mas fechará negociações não lucrativas mais cedo e lucrativas depois de negociar.


Este é o nosso script de exemplo com a saída temporizada inicial substituída por um limite de perda de parada que sobe em cada barra:


O loop for (open_trades) aumenta o nível de parada de todos os negócios abertos por uma fração da distância inicial de perda de parada no final de cada barra.


Claro que agora você tem que otimizar e executar uma análise progressiva novamente com os parâmetros de saída. Se o desempenho não melhorou, pense em melhores métodos de saída.


Passo 9: Gerenciamento de dinheiro.


A gestão do dinheiro tem três propósitos. Primeiro, reinvestir seus lucros. Em segundo lugar, distribuindo seu capital entre os componentes do portfólio. E em terceiro lugar, descobrindo rapidamente se uma carteira de negociação é inútil. Abra o & # 8220; Gerenciamento de dinheiro & # 8221; capítulo e leia o conselho de investimento do autor. Se ele investir 1% de seu capital por troca & # 8221 ;, sabe por que ele está escrevendo livros comerciais. Ele provavelmente ainda não ganhou nenhum dinheiro com negociação real.


Suponha que seu volume comercial em um momento determinado t seja V (t). Se o seu sistema for rentável, em média, o seu capital C aumentará proporcionalmente a V com um fator de crescimento c:


Quando você segue os conselhos do livro de negociação e sempre investir uma porcentagem fixa p de seu capital, de modo que V (t) = p C (t), seu capital crescerá exponencialmente com o expo p c:


Infelizmente, seu capital também sofrerá flutuações aleatórias, denominadas Drawdowns. As tramas são proporcionais ao volume comercial V (t), e também pode ser mostrado por considerações estatísticas de que a profundidade máxima de remoção D max cresce proporcionalmente à raiz quadrada do tempo t:


Então, com o investimento percentual fixo:


Você pode ver que, ao redor do tempo, T = 1 / (q p) 2, uma retirada irá consumir todo o seu capital C (T), independentemente da rentabilidade da sua estratégia e como você escolheu p! É por isso que a regra de 1% é um mau conselho. E por que sugiro aos clientes que não aumentem o volume de negócios proporcionalmente ao seu lucro acumulado, mas a sua raiz quadrada & # 8211; pelo menos, quando o capital é usado principalmente para amortecimento de retiradas. Então, enquanto a estratégia não se deteriorar, eles mantêm uma distância segura de uma chamada de margem.


Dependendo de se trocar um único activo e algoritmo ou um portfólio de ambos, você pode calcular o investimento ideal com vários métodos. A fórmula OptimalF de Ralph Vince, a fórmula Kelly de Ed Thorp, ou a otimização média / variância por Harry Markowitz. Geralmente você ganhou o código rígido reinvestir em sua estratégia, mas calcula o volume de investimento externamente, pois você pode querer retirar ou depositar dinheiro de tempos em tempos. Isso exige que o volume geral seja configurado manualmente, não por um processo automatizado. Uma fórmula para reinvestir e retirar adequadamente pode ser encontrada no manual do Zorro.


Passo 10: Preparação para negociação ao vivo.


Agora você pode definir a interface do usuário do seu sistema comercial. Determine quais os parâmetros que deseja alterar em tempo real e quais são apenas no início do sistema. Forneça um método para controlar o volume de comércio e um & # 8216; Panic Button & # 8217; para travar lucro ou descontar em caso de más notícias. Exibir todos os parâmetros comerciais relevantes em tempo real. Adicione botões para re-treinamento do sistema e forneça um método para comparar os resultados ao vivo com os resultados do backtest, como o Cold Blood Index. Certifique-se de poder supervisionar o sistema de onde quer que seja, por exemplo, através de uma página de status on-line. Don & # 8217; t ser tentado a olhar para ele a cada cinco minutos. Mas você pode fazer uma grande impressão quando você tira seu celular na cimeira do Monte. Ararat e explique aos seus companheiros de escalada: & # 8220; Apenas verificando meus negócios. & # 8221;


O desenvolvimento da estratégia real.


Até agora, a teoria. Tudo bem e dandy, mas como você realmente desenvolve um sistema comercial? Todos sabem que existe um enorme fosso entre a teoria e a prática. Este é o verdadeiro processo de desenvolvimento, tal como atestado por muitos comerciantes de algo experientes:


Passo 1. Visite os fóruns do comerciante e encontre o tópico sobre o novo indicador com os fabulosos retornos.


Etapa 2. Faça com que o indicador funcione com um sistema de teste após uma longa sessão de codificação. Ugh, o resultado do backtest não parece tão bom. Você deve ter cometido algum erro de codificação. Depurar. Depurar um pouco mais.


Passo 3. Ainda não há bons resultados, mas você tem mais truques na sua manga. Adicione uma parada final. 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 2018 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 2018 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 2018 to 2018, 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…


Thank you so much!


This is a good question. 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:


Build Better Strategies! 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. Deep Blue was a model based system with hardwired chess rules. AlphaGo is a data-mining system, a deep …


You received this e-mail because you asked to be notified when new articles are posted.


Thanks & Best Regards!


The Financial Hacker.


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 2018 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 2018 as the backtest during the whole 2017?


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.


Thanks for the answer.


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.


Nice article. 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.


QuantStart.


Join the Quantcademy private membership portal that caters to the rapidly-growing retail quant trader community . You'll find a knowledgeable, like-minded group of quant traders ready to answer your most pressing quant trading questions.


Check out my ebook on quant trading where I teach you how to build profitable systematic trading strategies with Python tools, from scratch.


Take a look at my new ebook on advanced trading strategies using time series analysis, machine learning and Bayesian statistics, with Python and R .


By Frank Smietana on July 18th, 2017.


In this article Frank Smietana, one of QuantStart's expert guest contributors describes the Python open-source backtesting software landscape, and provides advice on which backtesting framework is suitable for your own project needs.


Backtesting is arguably the most critical part of the Systematic Trading Strategy (STS) production process, sitting between strategy development and deployment (live trading). If a strategy is flawed, rigorous backtesting will hopefully expose this, preventing a loss-making strategy from being deployed.


A number of related capabilities overlap with backtesting, including trade simulation and live trading. Backtesting uses historic data to quantify STS performance. Trading simulators take backtesting a step further by visualizing the triggering of trades and price performance on a bar-by-bar basis. Simulated/live trading deploys a tested STS in real time: signaling trades, generating orders, routing orders to brokers, then maintaining positions as orders are executed.


Most frameworks go beyond backtesting to include some live trading capabilities. This is convenient if you want to deploy from your backtesting framework, which also works with your preferred broker and data sources. Quantopian/Zipline goes a step further, providing a fully integrated development, backtesting, and deployment solution.


The Python community is well served, with at least six open source backtesting frameworks available. They are however, in various stages of development and documentation. If you enjoy working on a team building an open source backtesting framework, check out their Github repos.


Before evaluating backtesting frameworks, it’s worth defining the requirements of your STS.


What asset class(es) are you trading? While most of the frameworks support US Equities data via YahooFinance, if a strategy incorporates derivatives, ETFs, or EM securities, the data needs to be importable or provided by the framework. Asset class coverages goes beyond data. Can the framework handle finite length futures & options and generate roll-over trades automatically? What about illiquid markets, how realistic an assumption must be made when executing large orders?


What data frequency and detail is your STS built on? A trading system requiring every tick or bid/ask has a very different set of data management issues than a 5 minute or hourly interval. Hedge funds & HFT shops have invested significantly in building robust, scalable backtesting frameworks to handle that data volume and frequency. Some platforms provide a rich and deep set of data for various asset classes like S&P stocks, at one minute resolution.


What order type(s) does your STS require? At a minimum, limit, stops and OCO should be supported by the framework.


Level of support & documentation required. The early stage frameworks have scant documentation, few have support other than community boards.


The Components of a Backtesting Framework.


Data and STS acquisition: The acquisition components consume the STS script/definition file and provide the requisite data for testing. If the framework requires any STS to be recoded before backtesting, then the framework should support canned functions for the most popular technical indicators to speed STS testing. Users determine how long of a historical period to backtest based on what the framework provides, or what they are capable of importing.


Performance testing applies the STS logic to the requested historic data window and calculates a broad range of risk & performance metrics, including max drawdown, Sharpe & Sortino ratios. Most all of the frameworks support a decent number of visualization capabilities, including equity curves and deciled-statistics.


Optimization tends to require the lion’s share of computing resources in the STS process. If your STS require optimization, then focus on a framework that supports scalable distributed/parallel processing.


In the context of strategies developed using technical indicators , system developers attempt to find an optimal set of parameters for each indicator. Most simply, optimization might find that a 6 and 10 day moving average crossover STS accumulated more profit over the historic test data than any other combination of time periods between 1 and 20. Already with this trivial example, 20 * 20 = 400 parameter combinations must be calculated & ranked.


In a portfolio context , optimization seeks to find the optimal weighting of every asset in the portfolio, including shorted and leveraged instruments. On a periodic basis, the portfolio is rebalanced, resulting in the purchase and sale of portfolio holdings as required to align with the optimized weights.


Position sizing is an additional use of optimization, helping system developers simulate and analyze the impact of leverage and dynamic position sizing on STS and portfolio performance.


Six Backtesting Frameworks for Python.


Standard capabilities of open source Python backtesting platforms seem to include:


Event driven Very flexible, unrestrictive licensing Decent collection of pre-defined technical indicators Standard performance metric calculation/visualization/reporting capabilities.


PyAlgoTrade.


PyAlgoTrade is a muture, fully documented backtesting framework along with paper - and live-trading capabilities. Data support includes Yahoo! Finance, Google Finance, NinjaTrader and any type of CSV-based time-series such as Quandl. Supported order types include Market, Limit, Stop and StopLimit.


PyAlgoTrade supports Bitcoin trading via Bitstamp, and real-time Twitter event handling.


bt - Backtesting for Python.


bt “aims to foster the creation of easily testable, re-usable and flexible blocks of strategy logic to facilitate the rapid development of complex trading strategies”.


The framework is particularly suited to testing portfolio-based STS, with algos for asset weighting and portfolio rebalancing. Modifying a strategy to run over different time frequencies or alternate asset weights involves a minimal code tweak. bt is built atop ffn - a financial function library for Python.


Backtrader.


This platform is exceptionally well documented, with an accompanying blog and an active on-line community for posting questions and feature requests. Backtrader supports a number of data formats, including CSV files, Pandas DataFrames, blaze iterators and real time data feeds from three brokers. These data feeds can be accessed simultaneously, and can even represent different timeframes. Supported brokers include Oanda for FX trading and multi-asset class trading via Interactive Brokers and Visual Chart.


pysystemtrade.


pysystemtrade developer Rob Carver has a great post discussing why he set out to create yet another Python backtesting framework and the arguments for and against framework development. The backtesting framework for pysystemtrade is discussed in Rob’s book, "Systematic Trading".


pysystemtrade lists a number of roadmap capabilities, including a full-featured back tester that includes optimisation and calibration techniques, and fully automated futures trading with Interactive Brokers. Open source contributors are welcome.


Zipline is an algorithmic trading simulator with paper and live trading capabilities. Accessible via the browser-based IPython Notebook interface, Zipline provides an easy to use alternative to command line tools. Supported and developed by Quantopian, Zipline can be used as a standalone backtesting framework or as part of a complete Quantopian/Zipline STS development, testing and deployment environment. Zipline provides 10 years of minute-resolution historical US stock data and a number of data import options.


QSTrader is a backtesting framework with live trading capabilities. QuantStart Founder Michael Halls-Moore launched QSTrader with the intent of building a platform robust and scalable enough to service the needs of institutional quant hedge funds as well as retail quant traders. QSTrader currently supports OHLCV "bar" resolution data on various time scales, but does allow for tick data to be used.


Both backtesting and live trading are completely event-driven, streamlining the transition of strategies from research to testing and finally live trading. Core strategy/portfolio code is often identical across both deployments.


The main benefit of QSTrader is in its modularity, allowing extensive customisation of code for those who have specific risk or portfolio management requirements.


Embracing the Backtest.


It is human nature to focus on the reward of developing a (hopefully profitable) STS, then rush to deploy a funded account (because we are hopeful), without spending sufficient time and resources thoroughly backtesting the strategy. But backtesting is not just a gatekeeper to prevent us from deploying flawed strategies and losing trading capital, it also provides a number of diagnostics that can inform the STS development process. For example, testing an identical STS over two different time frames, understanding a strategy’s max drawdown in the context of asset correlations, and creating smarter portfolios by backtesting asset allocations across multiple geographies.


In future posts, we'll cover backtesting frameworks for non-Python environments, and the use of various sampling techniques like bootstrapping and jackknife for backtesting predictive trading models.


Just Getting Started with Quantitative Trading?


3 Reasons to Subscribe to the QuantStart Email List:


1. Quant Trading Lessons.


You'll get instant access to a free 10-part email course packed with hints and tips to help you get started in quantitative trading!


2. All The Latest Content.


Every week I'll send you a wrap of all activity on QuantStart so you'll never miss a post again.


Real, actionable quant trading tips with no nonsense.


3. The Trading Strategy Development Process.


Published Online: 25 SEP 2018.


Copyright ©2008 by Robert Pardo. Todos os direitos reservados.


The Evaluation And Optimization Of Trading Strategies, Second Edition.


How to Cite.


Pardo, R. (ed) (2018) The Trading Strategy Development Process, in The Evaluation And Optimization Of Trading Strategies, Second Edition, John Wiley & Sons, Inc., Hoboken, NJ, USA. doi: 10.1002/9781119196969.ch3.


Publication History.


Published Online: 25 SEP 2018 Published Print: 2 JAN 2018.


ISBN Information.


Print ISBN: 9780470128015.


Online ISBN: 9781119196969.


CHAPTER TOOLS.


Get PDF : This Chapter (132K) Get PDF : All Chapters Save to My Profile E-mail Link to this Chapter Export Citation for this Chapter Request Permissions.


Keywords:


Development and application of trading strategy; Walk-Forward Analysis; formulation; preliminary testing; optimization; performance and robustness; trading performance; refinement and evolution; philosophical approaches to strategy development; empirical development.


This chapter outlines the steps through which a trading strategy must evolve, beginning with formulation and precise specification, testing, optimization by way of Walk-Forward Analysis, and culminating in real-time trading. The eight steps that development and application of a trading strategy follow include: formulation; specification in computer-testable form; preliminary testing; optimization; evaluation of performance and robustness; trading of the strategy; monitoring of trading performance; refinement and evolution. This chapter comprises two parts: the first is an introduction to the philosophical orientation, and the second part is an overview of the development process. Two philosophical approaches to strategy development are the scientific approach and the path of empirical development.

No comments:

Post a Comment