Um algoritmo é um conjunto específico de instruções claramente definidas destinadas a realizar uma tarefa ou processo.
O comércio algorítmico (negociação automatizada, negociação em caixa preta ou simplesmente algo-trading) é o processo de uso de computadores programados para seguir um conjunto definido de instruções para colocar um comércio para gerar lucros a uma velocidade e freqüência impossíveis para um comerciante humano. Os conjuntos definidos de regras são baseados em tempo, preço, quantidade ou qualquer modelo matemático. Além das oportunidades de lucro para o comerciante, o algo-trading torna os mercados mais líquidos e torna a negociação mais sistemática descartando impactos emocionais humanos nas atividades comerciais. (Para mais, consulte Picking the Right Algorithmic Trading Software.)
Suponha que um comerciante siga esses critérios de comércio simples:
Compre 50 ações de uma ação quando sua média móvel de 50 dias excede a média móvel de 200 dias. Vende ações da ação quando sua média móvel de 50 dias está abaixo da média móvel de 200 dias.
Usando este conjunto de duas instruções simples, é fácil escrever um programa de computador que monitorará automaticamente o preço das ações (e os indicadores de média móvel) e colocará as ordens de compra e venda quando as condições definidas forem atendidas. O comerciante não precisa mais manter um relógio para preços e gráficos ao vivo, ou colocar as ordens manualmente. O sistema de negociação algorítmica automaticamente faz isso para ele, identificando corretamente a oportunidade comercial. (Para mais informações sobre as médias móveis, consulte Médias móveis simples, faça as tendências se destacarem.)
[Se você quiser saber mais sobre as estratégias comprovadas e pontuais que podem eventualmente ser trabalhadas em um sistema de comércio alorítico, confira o Curso de Torneio de Dia de Torneio da Invastopedia Academy. ]
Benefícios da negociação algorítmica.
A Algo-trading oferece os seguintes benefícios:
Negociações executadas com os melhores preços Posicionamento instantâneo e preciso da ordem comercial (com altas chances de execução nos níveis desejados) Negociações cronometradas corretamente e instantaneamente, para evitar mudanças de preços significativas Custos de transação reduzidos (veja o exemplo de falta de implementação abaixo) Verificações automatizadas simultâneas em múltiplos condições de mercado Reduziu o risco de erros manuais na colocação dos negócios Backtest o algoritmo, com base nos dados históricos e em tempo real disponíveis Reduzida a possibilidade de erros por comerciantes humanos com base em fatores emocionais e psicológicos.
A maior parte do dia-a-dia é a negociação de alta freqüência (HFT), que tenta capitalizar a colocação de um grande número de pedidos em velocidades muito rápidas em múltiplos mercados e múltiplos parâmetros de decisão, com base em instruções pré-programadas. (Para obter mais informações sobre o comércio de alta freqüência, consulte Estratégias e Segredos de Empresas de Negociação de Alta Freqüência (HFT).)
O Algo-trading é usado em muitas formas de atividades de comércio e investimento, incluindo:
Investidores de médio a longo prazo ou empresas de compra (fundos de pensão, fundos de investimento, companhias de seguros) que adquirem ações em grandes quantidades, mas não querem influenciar os preços das ações com investimentos discretos e de grande porte. Os comerciantes de curto prazo e os participantes do lado da venda (fabricantes de mercado, especuladores e arbitragentes) se beneficiam da execução comercial automatizada; Além disso, ajudas de algo-trading na criação de liquidez suficiente para os vendedores no mercado. Os comerciantes sistemáticos (seguidores de tendências, comerciantes de pares, hedge funds, etc.) acham muito mais eficiente programar suas regras comerciais e permitir que o programa seja comercializado automaticamente.
O comércio algorítmico proporciona uma abordagem mais sistemática ao comércio ativo do que os métodos baseados na intuição ou instinto do comerciante humano.
Estratégias de negociação algorítmica.
Qualquer estratégia de negociação algorítmica exige uma oportunidade identificada que seja rentável em termos de melhoria de ganhos ou redução de custos. As seguintes são estratégias de negociação comuns usadas em algo-trading:
As estratégias de negociação algorítmicas mais comuns seguem as tendências em médias móveis, fuga de canais, movimentos no nível de preços e indicadores técnicos relacionados. Estas são as estratégias mais fáceis e simples de implementar através de negociação algorítmica porque essas estratégias não envolvem fazer previsões ou previsões de preços. Os negócios são iniciados com base na ocorrência de tendências desejáveis, que são fáceis e direitas de implementar através de algoritmos sem entrar na complexidade da análise preditiva. O exemplo acima mencionado de média móvel de 50 e 200 dias é uma tendência popular seguindo a estratégia. (Para mais informações sobre as estratégias de negociação de tendências, consulte: Estratégias simples para capitalizar as tendências.)
Comprar um estoque cotado duplo a um preço mais baixo em um mercado e simultaneamente vendê-lo a um preço mais alto em outro mercado oferece o diferencial de preço como lucro ou arbitragem sem risco. A mesma operação pode ser replicada para ações versus instrumentos de futuros, pois os diferenciais de preços existem de tempos em tempos. Implementar um algoritmo para identificar esses diferenciais de preços e colocar as ordens permite oportunidades lucrativas de forma eficiente.
Os fundos do índice definiram períodos de reequilíbrio para que suas participações fossem compatíveis com seus respectivos índices de referência. Isso cria oportunidades rentáveis para comerciantes algorítmicos, que capitalizam os negócios esperados que oferecem lucros de 20 a 80 pontos base, dependendo do número de ações no fundo do índice, apenas antes do reequilíbrio do fundo do índice. Essas negociações são iniciadas através de sistemas de negociação algorítmica para execução atempada e melhores preços.
Muitos modelos matemáticos comprovados, como a estratégia de negociação neutra do delta, que permitem a negociação de combinações de opções e sua segurança subjacente, onde os negócios são colocados para compensar deltas positivos e negativos, de modo que o portfólio delta seja mantido em zero.
A estratégia de reversão média baseia-se na ideia de que os preços altos e baixos de um bem são um fenômeno temporário que retorna periodicamente ao seu valor médio. Identificar e definir uma faixa de preço e implementar algoritmos com base em isso permite que os negócios sejam colocados automaticamente quando o preço do recurso entra e sai do seu alcance definido.
A estratégia de preços médios ponderados por volume quebra uma grande ordem e libera pedaços menores determinados dinamicamente da ordem para o mercado usando perfis de volume histórico específicos de estoque. O objetivo é executar a ordem perto do preço médio ponderado do volume (VWAP), beneficiando assim o preço médio.
A estratégia de preço médio ponderado no tempo quebra uma grande ordem e libera dinamicamente determinados pedaços menores da ordem para o mercado usando intervalos de tempo uniformemente divididos entre o início e o fim do tempo. O objetivo é executar a ordem perto do preço médio entre os horários de início e término, minimizando assim o impacto no mercado.
Até que a ordem comercial seja totalmente preenchida, este algoritmo continua enviando ordens parciais, de acordo com o índice de participação definido e de acordo com o volume negociado nos mercados. A "estratégia de etapas" relacionada envia ordens a uma porcentagem definida pelo usuário de volumes de mercado e aumenta ou diminui essa taxa de participação quando o preço da ação atinge os níveis definidos pelo usuário.
A estratégia de falta de implementação visa minimizar o custo de execução de uma ordem através da negociação do mercado em tempo real, economizando assim o custo da ordem e beneficiando do custo de oportunidade da execução atrasada. A estratégia aumentará a taxa de participação direcionada quando o preço das ações se mover de forma favorável e diminuí-lo quando o preço das ações se mover de forma adversa.
Existem algumas classes especiais de algoritmos que tentam identificar "acontecimentos" do outro lado. Esses "algoritmos de sniffing", usados, por exemplo, por um market maker market market têm a inteligência interna para identificar a existência de qualquer algoritmo no lado da compra de uma grande ordem. Essa detecção através de algoritmos ajudará o fabricante de mercado a identificar grandes oportunidades de ordem e permitir que ele se beneficie ao preencher os pedidos a um preço mais alto. Isso às vezes é identificado como front-running de alta tecnologia. (Para obter mais informações sobre negociação de alta freqüência e práticas fraudulentas, consulte: Se você comprar ações on-line, você está envolvido em HFTs.)
Requisitos técnicos para negociação algorítmica.
Implementar o algoritmo usando um programa de computador é a última parte, batida com backtesting. O desafio é transformar a estratégia identificada em um processo informatizado integrado que tenha acesso a uma conta de negociação para fazer pedidos. São necessários os seguintes:
Conhecimento de programação de computador para programar a estratégia de negociação necessária, programadores contratados ou software de negociação pré-fabricado Conectividade de rede e acesso a plataformas de negociação para colocar os pedidos Acesso a feeds de dados de mercado que serão monitorados pelo algoritmo para oportunidades de colocar pedidos A capacidade e infra-estrutura para voltar a testar o sistema uma vez construído, antes de entrar em operação em mercados reais Dados históricos disponíveis para backtesting, dependendo da complexidade das regras implementadas no algoritmo.
Aqui está um exemplo abrangente: o Royal Dutch Shell (RDS) está listado na Amsterdam Stock Exchange (AEX) e London Stock Exchange (LSE). Vamos construir um algoritmo para identificar oportunidades de arbitragem. Aqui estão algumas observações interessantes:
AEX negocia em Euros, enquanto a LSE negocia em libras esterlinas. Devido à diferença horária de uma hora, a AEX abre uma hora antes da LSE, seguido de ambas as trocas comerciais simultaneamente durante as próximas horas e depois de negociar somente na LSE durante a última hora à medida que o AEX fecha .
Podemos explorar a possibilidade de negociação de arbitragem nas ações da Royal Dutch Shell listadas nesses dois mercados em duas moedas diferentes?
Um programa de computador que pode ler os preços atuais do mercado Os feeds de preços de LSE e AEX A taxa de câmbio para a taxa de câmbio GBP-EUR Capacidade de colocação de pedidos que podem rotear a ordem para a troca correta do recurso Back-testing em feeds históricos de preços.
O programa de computador deve executar o seguinte:
Leia o preço de entrada do estoque RDS de ambas as bolsas Usando as taxas de câmbio disponíveis, converta o preço de uma moeda para outra. Se houver uma discrepância de preço suficientemente grande (descontando os custos de corretagem) levando a uma oportunidade rentável, então coloque a compra ordem em troca de preços mais baixos e ordem de venda em troca de preços mais elevados Se as ordens forem executadas conforme desejado, o lucro de arbitragem seguirá.
Simples e fácil! No entanto, a prática de negociação algorítmica não é simples de manter e executar. Lembre-se, se você pode colocar um comércio gerado por algo, os outros participantes do mercado podem também. Conseqüentemente, os preços flutuam em milissegundos e até mesmo em microssegundos. No exemplo acima, o que acontece se o seu comércio de compras for executado, mas o comércio de vendas não acontece à medida que os preços de venda mudam quando o seu pedido atinge o mercado? Você vai acabar sentado com uma posição aberta, tornando sua estratégia de arbitragem inútil.
Existem riscos e desafios adicionais: por exemplo, riscos de falha do sistema, erros de conectividade de rede, atrasos de tempo entre ordens comerciais e execução e, o mais importante de tudo, algoritmos imperfeitos. O algoritmo mais complexo é o backtesting mais rigoroso antes de ser posto em ação.
The Bottom Line.
A análise quantitativa do desempenho de um algoritmo desempenha um papel importante e deve ser examinada criticamente. É excitante ir pela automação auxiliada por computadores com a noção de ganhar dinheiro sem esforço. Mas é preciso certificar-se de que o sistema está completamente testado e os limites exigidos são definidos. Os comerciantes analíticos devem considerar a aprendizagem de sistemas de programação e construção por conta própria, ter confiança em implementar as estratégias certas de forma infalível. O uso cauteloso eo teste completo de algo-trading podem criar oportunidades rentáveis. (Para mais informações, consulte Como codificar seu próprio robô Algo Trading.)
Twicet.
Você está aqui: Treinamento de Mercados Globais »Estratégias de Opções Algoritmicas.
Estratégias de opções algorítmicas.
Esta oficina de dois dias explora estratégias de negociação algorítmicas sobre opções e instrumentos de volatilidade.
Os delegados aprenderão a construir e fazer backtest de uma série de estratégias de algoritmo efetivas, incluindo o comércio intraday baseado em eventos, o escalonamento de gama, o comércio de dispersão e o comércio inverso de transição transversal. Também serão discutidas estratégias sobre produtos de volatilidade, bem como técnicas de previsão de volatilidade.
Este curso será conduzido usando o MATLAB, embora a experiência neste pacote não seja necessária.
Esboço de Curso.
Visão geral das opções e volatilidades.
+ Quais os riscos que você deseja proteger?
+ Delta, gama, theta e vega.
+ Straddles e estrangulamentos.
+ Volatilidade: realizada e implícita. Podemos prever isso?
Tutorial para MATLAB.
+ Pesquisa rápida de sintaxe: aritometria, arrays, funções.
+ Os prós e os contras da utilização do MATLAB como plataforma de backtesting vis-Г - vis R e Python.
Negociação baseada em eventos.
+ Podemos beneficiar da volatilidade de compra antes dos anúncios econômicos?
+ Um conto de dois eventos.
+ Backtesting intraday straddles e strangles estratégias com dados de alta freqüência.
Gamma Scalping.
+ O apelo teórico do escalpelo gamma.
+ O gamma é escalonado de longa ou baixa volatilidade?
+ Backtesting gamma scalping em futuros e opções de petróleo bruto.
Dispersão de Negociação.
+ Uma analogia com arbitragem de índice.
+ O perfil de risco do comércio de dispersão.
+ Várias alternativas de implementação.
+ Análise de dispersão de prova no SPX: a maldição da dimensionalidade.
Reversão média transversal da volatilidade implícita.
+ Time series vs. reversão média transversal.
+ A volatilidade percebida significa-reverter? Implica a volatilidade?
+ Backtesting um portfólio de opções de estoque.
+ Por que o retorno é tão alto? Alavancagem de uma posição de opção.
+ Riscos de uma estratégia de reversão média transversal em opções.
Votação de negociação sem opções.
+ Trading VX usando previsões de retorno VX.
+ Usando o GARCH para prever a volatilidade.
+ A maneira contra-intuitiva de negociar XIV usando previsões de volatilidade SPY.
QuantStart.
Junte-se ao portal de membros privados da Quantcademy que atende à comunidade de comerciantes de varejo de varejo em rápido crescimento. Você encontrará um grupo bem informado de mentalistas quant pronto para responder suas perguntas comerciais mais importantes.
Confira meu ebook sobre o comércio de quant, onde eu ensino você como criar estratégias de negociação sistemáticas lucrativas com ferramentas Python, desde o início.
Dê uma olhada no meu novo ebook sobre estratégias de negociação avançadas usando análise de séries temporais, aprendizado de máquina e estatísticas bayesianas, com Python e R.
Por Michael Halls-Moore em 19 de abril de 2013.
Neste artigo, quero apresentar-lhe os métodos pelos quais eu próprio identifico estratégias de negociação algorítmicas rentáveis. Nosso objetivo hoje é entender em detalhes como encontrar, avaliar e selecionar esses sistemas. Vou explicar como as estratégias de identificação são tanto sobre preferências pessoais quanto sobre o desempenho da estratégia, como determinar o tipo e a quantidade de dados históricos para o teste, como avaliar de forma imparcial uma estratégia de negociação e, finalmente, como avançar para a fase de backtesting e implementação estratégica.
Identificando suas próprias preferências pessoais para negociação.
Para ser um comerciante bem sucedido - de forma discricionária ou algorítmica - é necessário fazer-se algumas perguntas honestas. O Trading oferece a você a capacidade de perder dinheiro em uma taxa alarmante, por isso é necessário "conhecer você mesmo" tanto quanto é necessário entender a estratégia escolhida.
Eu diria que a consideração mais importante na negociação é estar ciente de sua própria personalidade. O comércio e o comércio algorítmico em particular, requer um grau significativo de disciplina, paciência e desapego emocional. Como você está deixando um algoritmo executar sua negociação para você, é necessário ser resolvido para não interferir com a estratégia quando está sendo executado. Isso pode ser extremamente difícil, especialmente em períodos de redução prolongada. No entanto, muitas estratégias que mostraram ser altamente rentáveis em um backtest podem ser arruinadas por uma simples interferência. Compreenda que se você deseja entrar no mundo da negociação algorítmica, você será testado emocionalmente e, para ser bem-sucedido, é necessário trabalhar com essas dificuldades!
A próxima consideração é uma das vezes. Você tem um emprego a tempo inteiro? Você trabalha a tempo parcial? Você trabalha em casa ou tem uma longa viagem diária? Essas perguntas ajudarão a determinar a freqüência da estratégia que você deve procurar. Para aqueles de você no emprego a tempo inteiro, uma estratégia de futuros intradiária pode não ser apropriada (pelo menos até que seja totalmente automatizada!). Suas restrições de tempo também ditarão a metodologia da estratégia. Se sua estratégia é freqüentemente negociada e dependente de feeds de notícias caras (como um terminal da Bloomberg), você terá claramente que ser realista sobre sua capacidade de executar com sucesso durante o escritório! Para aqueles de vocês com muito tempo, ou as habilidades para automatizar sua estratégia, você pode querer examinar uma estratégia mais técnica de negociação de alta freqüência (HFT).
Minha opinião é que é necessário realizar pesquisas contínuas sobre suas estratégias de negociação para manter um portfólio consistentemente lucrativo. Poucas estratégias permanecem "sob o radar" para sempre. Assim, uma parte importante do tempo atribuído à negociação será na realização de pesquisas em andamento. Pergunte a si mesmo se você está preparado para fazer isso, pois pode ser a diferença entre uma forte rentabilidade ou um declínio lento em relação a perdas.
Você também precisa considerar seu capital de negociação. O valor mínimo ideal geralmente aceito para uma estratégia quantitativa é de 50,000 USD (aproximadamente £ 35,000 para nós no Reino Unido). Se eu estivesse começando de novo, eu começaria com uma quantidade maior, provavelmente mais perto de 100,000 USD (aproximadamente £ 70,000). Isso ocorre porque os custos de transação podem ser extremamente caros para estratégias de média a alta freqüência e é necessário ter capital suficiente para absorvê-los em tempos de redução. Se você está considerando começar com menos de 10.000 USD, então você precisará se restringir a estratégias de baixa freqüência, negociando em um ou dois ativos, já que os custos de transação irão comer rapidamente em seus retornos. Interactive Brokers, que é um dos corretores mais amigáveis para aqueles com habilidades de programação, devido à sua API, tem uma conta de varejo mínima de 10.000 USD.
A habilidade de programação é um fator importante na criação de uma estratégia de negociação algorítmica automatizada. Estar bem informado em uma linguagem de programação como C ++, Java, C #, Python ou R permitirá que você crie o sistema de armazenamento de dados, o sistema de backtest e o sistema de execução de ponta a ponta. Isso tem uma série de vantagens, cujo chefe é a capacidade de estar completamente atento a todos os aspectos da infra-estrutura comercial. Também permite que você explore as estratégias de freqüência mais alta, pois você terá o controle total da sua "pilha de tecnologia". Embora isso signifique que você possa testar seu próprio software e eliminar erros, também significa mais tempo gasto na codificação de infra-estrutura e menos na implementação de estratégias, pelo menos na parte anterior da sua carreira de trading. Você pode achar que você está confortável negociando no Excel ou MATLAB e pode terceirizar o desenvolvimento de outros componentes. Eu não recomendaria isso no entanto, especialmente para aqueles que negociavam em alta freqüência.
Você precisa se perguntar o que você espera alcançar por meio de negociação algorítmica. Você está interessado em um rendimento regular, pelo qual você espera obter lucros de sua conta de negociação? Ou, você está interessado em um ganho de capital a longo prazo e pode se negociar sem a necessidade de retirar fundos? A dependência de renda determinará a freqüência de sua estratégia. As retiradas de renda mais regulares exigirão uma estratégia de negociação de maior freqüência com menor volatilidade (ou seja, uma proporção Sharpe mais alta). Os comerciantes de longo prazo podem pagar uma frequência comercial mais tranquila.
Finalmente, não se ilude com a noção de tornar-se extremamente rico num curto espaço de tempo! O comércio de Algo não é um esquema rápido e rápido - se alguma coisa pode ser um esquema rápido e rápido. É preciso disciplina, pesquisa, diligência e paciência importantes para serem bem-sucedidos no comércio algorítmico. Pode levar meses, senão anos, gerar rentabilidade consistente.
Sourcing Algorithmic Trading Ideas.
Apesar das percepções comuns em contrário, é realmente bastante direto localizar estratégias de negociação rentáveis no domínio público. Nunca as idéias comerciais estão mais disponíveis do que hoje. Revistas de finanças acadêmicas, servidores de pré-impressão, blogs comerciais, fóruns de negociação, revistas comerciais semanais e textos especializados fornecem milhares de estratégias de negociação com as quais basear suas idéias.
Nosso objetivo como pesquisadores quantitativos de negócios é estabelecer um pipeline estratégico que nos forneça um fluxo de idéias comerciais em andamento. Idealmente, queremos criar uma abordagem metódica para sourcing, avaliação e implementação de estratégias que encontramos. Os objetivos do pipeline são gerar uma quantidade consistente de novas idéias e fornecer-nos uma estrutura para rejeitar a maioria dessas idéias com o mínimo de consideração emocional.
Devemos ser extremamente cuidadosos para não permitir influências cognitivas na nossa metodologia de tomada de decisão. Isso pode ser tão simples como ter uma preferência por uma classe de ativos sobre outra (o ouro e outros metais preciosos vêm à mente) porque são percebidos como mais exóticos. Nosso objetivo sempre deve ser encontrar estratégias consistentemente lucrativas, com expectativas positivas. A escolha da classe de ativos deve basear-se em outras considerações, como restrições de capital de negociação, taxas de corretagem e capacidades de alavancagem.
Se você não está completamente familiarizado com o conceito de estratégia comercial, então o primeiro lugar a procurar é com os livros didáticos estabelecidos. Os textos clássicos fornecem uma ampla gama de idéias mais simples e diretas, para se familiarizarem com a negociação quantitativa. Aqui está uma seleção que eu recomendo para aqueles que são novos para negociação quantitativa, que gradualmente se tornam mais sofisticados enquanto você trabalha através da lista:
Para uma lista mais longa de livros de negociação quantitativos, visite a lista de leitura QuantStart.
O próximo lugar para encontrar estratégias mais sofisticadas é com fóruns de negociação e blogs comerciais. No entanto, uma nota de cautela: muitos blogs comerciais dependem do conceito de análise técnica. A análise técnica envolve a utilização de indicadores básicos e psicologia comportamental para determinar tendências ou padrões de reversão nos preços dos ativos.
Apesar de ser extremamente popular no espaço comercial geral, a análise técnica é considerada um pouco ineficaz na comunidade de finanças quantitativas. Alguns sugeriram que não é melhor que ler um horóscopo ou estudar folhas de chá em termos de seu poder preditivo! Na realidade, existem indivíduos bem-sucedidos que utilizam análises técnicas. No entanto, como quants com uma caixa de ferramentas matemática e estatística mais sofisticada à nossa disposição, podemos facilmente avaliar a eficácia de tais estratégias "baseadas em TA" e tomar decisões baseadas em dados, em vez de basear nossas em considerações ou preconceitos emocionais.
Aqui está uma lista de bem-respeitados blogs e fóruns de negociação algorítmica:
Depois de ter tido alguma experiência na avaliação de estratégias mais simples, é hora de olhar para as ofertas acadêmicas mais sofisticadas. Algumas revistas acadêmicas serão de difícil acesso, sem inscrições elevadas ou custos pontuais. Se você é um membro ou ex-aluno de uma universidade, você poderá obter acesso a algumas dessas revistas financeiras. Caso contrário, você pode olhar para os servidores de pré-impressão, que são repositórios de internet de rascunhos finais de documentos acadêmicos que estão sendo submetidos a revisão pelos pares. Uma vez que estamos apenas interessados em estratégias que possamos replicar com sucesso, fazer backtest e obter rentabilidade, uma revisão por pares é de menor importância para nós.
A principal desvantagem das estratégias acadêmicas é que muitas vezes podem estar desatualizadas, exigir dados históricos obscuros e dispendiosos, negociar classes de ativos ilíquidas ou não influenciar taxas, derrapagens ou propagação. Também não está claro se a estratégia de negociação deve ser realizada com ordens de mercado, ordens limitadas ou se contém perdas de parada, etc. Portanto, é absolutamente essencial replicar a estratégia o melhor que puder, fazer o backtest e adicionar uma transação realista custos que incluem tantos aspectos das classes de ativos que você deseja negociar.
Aqui está uma lista dos servidores de pré-impressão mais populares e revistas financeiras das quais você pode criar ideias:
E sobre como formar suas próprias estratégias quantitativas? Isso geralmente requer (mas não está limitado a) conhecimento em uma ou mais das seguintes categorias:
Microestrutura de mercado - Para estratégias de freqüência mais altas em particular, pode-se usar a microestrutura do mercado, ou seja, a compreensão da dinâmica do livro de pedidos, a fim de gerar rentabilidade. Diferentes mercados terão várias limitações tecnológicas, regulamentos, participantes do mercado e restrições que estão abertas à exploração através de estratégias específicas. Esta é uma área muito sofisticada e os profissionais de varejo terão dificuldade em ser competitivos neste espaço, particularmente porque a competição inclui fundos de hedge quantitativos grandes e bem capitalizados com fortes capacidades tecnológicas. Estrutura do fundo - Os fundos de investimento em conjunto, como fundos de pensão, parcerias de investimento privado (hedge funds), consultores de negociação de commodities e fundos de investimento, são limitados por uma forte regulamentação e suas grandes reservas de capital. Assim, certos comportamentos consistentes podem ser explorados com aqueles que são mais ágeis. Por exemplo, grandes fundos estão sujeitos a restrições de capacidade devido ao seu tamanho. Assim, se eles precisam rapidamente descarregar (vender) uma quantidade de valores mobiliários, eles terão que diminuí-lo para evitar "mover o mercado". Algoritmos sofisticados podem tirar proveito disso, e outras idiossincrasias, em um processo geral conhecido como arbitragem de estrutura de fundos. Aprendizado de máquinas / inteligência artificial - Os algoritmos de aprendizagem de máquinas tornaram-se mais prevalentes nos últimos anos nos mercados financeiros. Os classificadores (como Naive-Bayes, et al.) Correspondentes de função não-linear (redes neurais) e rotinas de otimização (algoritmos genéticos) foram todos usados para prever caminhos de ativos ou otimizar estratégias de negociação. Se você tem um histórico nesta área, você pode ter alguma visão sobre como determinados algoritmos podem ser aplicados a certos mercados.
Há, é claro, muitas outras áreas para investigar quants. Vamos discutir como apresentar estratégias personalizadas em detalhes em um artigo posterior.
Ao continuar monitorando essas fontes em uma base semanal, ou mesmo diária, você está se preparando para receber uma lista consistente de estratégias de uma variedade diversificada de fontes. O próximo passo é determinar como rejeitar um grande subconjunto dessas estratégias, a fim de minimizar o desperdício de seu tempo e os recursos de backtesting em estratégias que provavelmente não serão lucrativas.
Avaliando Estratégias de Negociação.
A primeira consideração, e indiscutivelmente mais óbvia, é se você realmente entende a estratégia. Você poderia explicar a estratégia de forma concisa ou exigir uma série de advertências e listas de parâmetros infinitas? Além disso, a estratégia tem uma base boa e sólida na realidade? Por exemplo, você poderia apontar alguma lógica comportamental ou restrição da estrutura do fundo que possa estar causando o (s) padrão (s) que você está tentando explorar? Esta restrição suportaria uma mudança de regime, como uma dramática perturbação do ambiente regulatório? A estratégia depende de regras estatísticas ou matemáticas complexas? Aplica-se a qualquer série de tempo financeiro ou é específico para a classe de ativos em que se afirma ser lucrativo? Você deve constantemente pensar nesses fatores ao avaliar novos métodos comerciais, caso contrário você pode desperdiçar uma quantidade significativa de tempo tentando fazer backtest e otimizar estratégias não lucrativas.
Uma vez que você tenha determinado que você entende os princípios básicos da estratégia, você precisa decidir se ele se encaixa com o seu perfil de personalidade acima mencionado. Esta não é uma consideração tão vaga quanto parece! As estratégias diferirão substancialmente em suas características de desempenho. Existem certos tipos de personalidade que podem lidar com períodos mais significativos de redução ou estão dispostos a aceitar um maior risco de retorno maior. Apesar do fato de que nós, como quants, tentamos eliminar todo o viés cognitivo possível e devemos avaliar uma estratégia de forma imparcial, os preconceitos sempre entrarão. Por isso, precisamos de um meio consistente e sem emoção para avaliar o desempenho das estratégias . Aqui está a lista de critérios que eu julgo uma nova estratégia potencial por:
Metodologia - O impulso da estratégia está baseado, o retorno médio, o mercado neutro, direcional? A estratégia baseia-se em técnicas de aprendizado estatístico ou de máquinas complexas (ou complexas) que são difíceis de entender e exigem um doutorado em estatísticas para entender? Essas técnicas introduzem uma quantidade significativa de parâmetros, o que pode levar a um viés de otimização? A estratégia é susceptível de suportar uma mudança de regime (ou seja, uma nova regulamentação potencial dos mercados financeiros)? Sharpe Ratio - O índice de Sharpe caracteriza heuristicamente o índice de recompensa / risco da estratégia. Quantifica quanto retorno você consegue para o nível de volatilidade sofrido pela curva patrimonial. Naturalmente, precisamos determinar o período e a frequência em que esses retornos e volatilidade (ou seja, o desvio padrão) são medidos. Uma estratégia de freqüência mais alta exigirá maior taxa de amostragem do desvio padrão, mas um período de tempo geral mais curto, por exemplo. Alavancagem - A estratégia exige alavancagem significativa para ser lucrativa? A estratégia exige o uso de contratos de derivativos alavancados (futuros, opções, swaps) para fazer um retorno? Estes contratos alavancados podem ter uma forte volatilidade e, portanto, podem facilmente levar a chamadas de margem. Você tem o capital comercial e o temperamento para essa volatilidade? Frequência - A frequência da estratégia está intimamente ligada à sua pilha de tecnologia (e, portanto, à experiência tecnológica), ao índice Sharpe e ao nível geral dos custos de transação. Todas as outras questões consideradas, as estratégias de maior freqüência requerem mais capital, são mais sofisticadas e difíceis de implementar. No entanto, assumindo que seu mecanismo de teste de backtest é sofisticado e livre de erros, eles geralmente terão taxas Sharpe muito maiores. Volatilidade - A volatilidade está fortemente relacionada ao "risco" da estratégia. A relação Sharpe caracteriza isso. A maior volatilidade das classes de ativos subjacentes, se não coberta, muitas vezes leva a uma maior volatilidade na curva patrimonial e, portanto, menores índices de Sharpe. Naturalmente, suponho que a volatilidade positiva seja aproximadamente igual à volatilidade negativa. Algumas estratégias podem ter maior volatilidade negativa. Você precisa estar ciente desses atributos. Ganhe / Perda, Lucro / Perda Médio - As estratégias serão diferentes nas suas ganhos / perdas e características médias de lucro / perda. Pode-se ter uma estratégia muito lucrativa, mesmo que o número de negócios perdidos exceda o número de negociações vencedoras. As estratégias de impulso tendem a ter esse padrão, pois dependem de um pequeno número de "grandes sucessos" para serem lucrativos. As estratégias de reversão média tendem a ter perfis opostos onde mais dos negócios são "vencedores", mas os negócios perdidos podem ser bastante graves. Drawdown máximo - A redução máxima é a maior queda percentual global na curva de equidade da estratégia. As estratégias de Momentum são bem conhecidas por sofrerem períodos de redução prolongada (devido a uma série de muitos negócios perdidos incrementais). Muitos comerciantes vão desistir em períodos de redução prolongada, mesmo que os testes históricos sugeriram que este é "business as usual" para a estratégia. Você precisará determinar qual porcentagem de redução (e em que período de tempo) você pode aceitar antes de deixar de negociar sua estratégia. Esta é uma decisão altamente pessoal e, portanto, deve ser considerada com cuidado. Capacidade / liquidez - No nível de varejo, a menos que você esteja negociando em um instrumento altamente ilíquido (como um estoque de pequena capital), você não terá que se preocupar muito com a capacidade da estratégia. A capacidade determina a escalabilidade da estratégia para aumentar o capital. Muitos dos maiores hedge funds sofrem de importantes problemas de capacidade à medida que suas estratégias aumentam em alocação de capital. Parâmetros - Certas estratégias (especialmente aquelas encontradas na comunidade de aprendizagem de máquinas) requerem uma grande quantidade de parâmetros. Todo parâmetro adicional que uma estratégia exige deixa-o mais vulnerável ao viés de otimização (também conhecido como "ajuste de curva"). Você deve tentar segmentar estratégias com o menor número possível de parâmetros ou garantir que você tenha quantidades suficientes de dados para testar suas estratégias. Benchmark - Quase todas as estratégias (a menos que sejam caracterizadas como "retorno absoluto") são medidas em relação a um benchmark de desempenho. O benchmark geralmente é um índice que caracteriza uma grande amostra da classe de ativos subjacentes em que a estratégia negocia. Se a estratégia negociar ações americanas de grande capitalização, o S & P500 seria uma referência natural para medir sua estratégia. Você ouvirá os termos "alfa" e "beta", aplicado a estratégias deste tipo. Vamos discutir esses coeficientes em profundidade em artigos posteriores.
Observe que não discutimos os retornos reais da estratégia. Por que é isso? De forma isolada, os retornos realmente nos fornecem informações limitadas sobre a eficácia da estratégia. Eles não lhe dão uma visão de alavancagem, volatilidade, benchmarks ou requisitos de capital. Assim, as estratégias raramente são avaliadas apenas em seus retornos. Considere sempre os atributos de risco de uma estratégia antes de analisar os retornos.
Nesta fase, muitas das estratégias encontradas em seu pipeline serão rejeitadas, uma vez que não atenderão aos requisitos de capital, alavancar restrições, tolerar a tolerância máxima ou preferências de volatilidade. As estratégias que permanecem podem agora ser consideradas para testes anteriores. No entanto, antes disso é possível, é necessário considerar um critério de rejeição final - o dos dados históricos disponíveis para testar essas estratégias.
Obtenção de dados históricos.
Hoje em dia, a amplitude dos requisitos técnicos em todas as classes de ativos para o armazenamento histórico de dados é substancial. Para se manter competitivo, tanto o lado da compra (fundos) como os de venda (bancos de investimento) investem fortemente em sua infraestrutura técnica. É imperativo considerar sua importância. Em particular, estamos interessados em requisitos de tempo, precisão e armazenamento. Agora vou descrever os conceitos básicos de obtenção de dados históricos e como armazená-lo. Infelizmente, este é um tópico muito profundo e técnico, então não poderei dizer tudo neste artigo. No entanto, vou escrever muito mais sobre isso no futuro, já que minha experiência na indústria anterior no setor financeiro estava principalmente preocupada com aquisição, armazenamento e acesso de dados financeiros.
Na seção anterior, estabelecemos um pipeline de estratégia que nos permitiu rejeitar certas estratégias com base em nossos próprios critérios de rejeição pessoal. Nesta seção, vamos filtrar mais estratégias com base em nossas próprias preferências para obter dados históricos. As principais considerações (especialmente no nível do profissional varejista) são os custos dos dados, dos requisitos de armazenamento e do seu nível de experiência técnica. Também precisamos discutir os diferentes tipos de dados disponíveis e as diferentes considerações que cada tipo de dados nos impõe.
Vamos começar discutindo os tipos de dados disponíveis e os principais problemas sobre os quais devemos pensar:
Dados fundamentais - Isso inclui dados sobre tendências macroeconômicas, como taxas de juros, índices de inflação, ações corporativas (dividendos, estoque-divisões), registros da SEC, contas corporativas, números de ganhos, relatórios de culturas, dados meteorológicos etc. Esses dados são freqüentemente usados para valorizar as empresas ou outros ativos em uma base fundamental, ou seja, por meio de alguns fluxos de caixa futuros esperados. Não inclui séries de preços de ações. Alguns dados fundamentais estão disponíveis gratuitamente nos sites do governo. Outros dados fundamentais históricos de longo prazo podem ser extremamente caros. Os requisitos de armazenamento geralmente não são particularmente grandes, a menos que milhares de empresas estejam sendo estudadas de uma só vez. Dados de notícias - Os dados de notícias são geralmente de natureza qualitativa. Consiste em artigos, postagens de blog, postagens de microblog ("tweets") e editoriais. As técnicas de aprendizagem de máquinas, como os classificadores, costumam ser usadas para interpretar o sentimento. Esses dados também são freqüentemente disponíveis gratuitamente ou baratos, por meio da assinatura de meios de comunicação. Os bancos de dados de armazenamento de documentos "NoSQL" mais novos foram projetados para armazenar esse tipo de dados qualitativos não estruturados. Dados do preço do recurso - Este é o domínio de dados tradicional do quant. Consiste em séries temporais de preços dos ativos. As ações (ações), produtos de renda fixa (títulos), commodities e preços de câmbio se enquadram nesta classe. Os dados históricos diários são geralmente simples de obter para as classes de ativos mais simples, como ações. No entanto, uma vez que a precisão e a limpeza estão incluídas e os preconceitos estatísticos removidos, os dados podem se tornar caros. Além disso, os dados das séries temporais geralmente possuem requisitos de armazenamento significativos, especialmente quando os dados intradiários são considerados. Instrumentos Financeiros - Ações, títulos, futuros e opções derivadas mais exóticas possuem características e parâmetros muito diferentes. Assim, não existe uma estrutura de banco de dados "tamanho único" que possa acomodá-los. Deve ser dado um cuidado significativo à concepção e implementação de estruturas de banco de dados para vários instrumentos financeiros. Vamos discutir a situação ao longo de quando chegamos a construir um banco de dados mestre de valores mobiliários em futuros artigos. Frequência - Quanto maior a frequência dos dados, maiores são os custos e os requisitos de armazenamento. Para estratégias de baixa frequência, os dados diários são frequentemente suficientes. Para estratégias de alta freqüência, pode ser necessário obter dados de nível de tiquetaque e até mesmo cópias históricas de determinados dados de cadastro de trocas comerciais. A implementação de um mecanismo de armazenamento para esse tipo de dados é muito tecnicamente intensiva e só é adequada para aqueles que possuem uma sólida base de programação / técnica. Pontos de referência - As estratégias descritas acima serão muitas vezes comparadas a uma referência. Isso geralmente se manifesta como uma série de tempo financeiro adicional. Para as ações, isso geralmente é um benchmark de estoque nacional, como o índice S & P500 (US) ou FTSE100 (Reino Unido). Para um fundo de renda fixa, é útil comparar-se com uma cesta de títulos ou produtos de renda fixa. A "taxa livre de risco" (ou seja, a taxa de juros apropriada) também é outra referência amplamente aceita. Todas as categorias de classe de ativos possuem um benchmark favorecido, por isso será necessário pesquisar isso com base em sua estratégia específica, se desejar ganhar interesse em sua estratégia externamente. Tecnologia - As pilhas de tecnologia por trás de um centro de armazenamento de dados financeiros são complexas. Este artigo apenas pode arranhar a superfície sobre o que está envolvido na construção de um. No entanto, ele se centra em torno de um mecanismo de banco de dados, como um Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS), como MySQL, SQL Server, Oracle ou um Document Storage Engine (ou seja, "NoSQL"). Isso é acessado através do código de aplicativo "lógica comercial" que consulta o banco de dados e fornece acesso a ferramentas externas, como MATLAB, R ou Excel. Muitas vezes, esta lógica de negócios está escrita em C ++, C #, Java ou Python. Você também precisará hospedar esses dados em algum lugar, seja em seu próprio computador pessoal, seja remotamente através de servidores de internet. Produtos como o Amazon Web Services tornaram isso mais simples e barato nos últimos anos, mas ainda exigirá conhecimentos técnicos significativos para alcançar de forma robusta.
Como pode ser visto, uma vez que uma estratégia tenha sido identificada através do pipeline, será necessário avaliar a disponibilidade, os custos, a complexidade e os detalhes de implementação de um determinado conjunto de dados históricos. Você pode achar que é necessário rejeitar uma estratégia baseada unicamente em considerações de dados históricos. Esta é uma grande área e equipes de doutorados trabalham em grandes fundos garantindo que os preços sejam precisos e oportunos. Não subestime as dificuldades de criar um centro de dados robusto para os seus efeitos de backtesting!
Eu quero dizer, no entanto, que muitas plataformas de backtesting podem fornecer esses dados para você automaticamente - a um custo. Assim, demorará muito da dor de implementação para você, e você pode se concentrar exclusivamente na implementação e otimização da estratégia. Ferramentas como a TradeStation possuem essa capacidade. No entanto, minha visão pessoal é implementar o máximo possível internamente e evitar a terceirização de partes da pilha para fornecedores de software. Eu prefiro estratégias de freqüência mais altas devido aos seus índices de Sharpe mais atraentes, mas muitas vezes estão fortemente acoplados à pilha de tecnologia, onde a otimização avançada é crítica.
Agora que discutimos os problemas relacionados aos dados históricos, é hora de começar a implementar nossas estratégias em um mecanismo de teste. Este será o assunto de outros artigos, pois é uma área de discussão igualmente grande!
Apenas iniciando o comércio quantitativo?
3 razões para se inscrever na QuantStart List:
1. Quant Trading Lessons.
Você terá acesso instantâneo a um curso gratuito de 10 partes, com sugestões e dicas para ajudá-lo a começar a negociação quantitativa!
2. Todo o conteúdo mais recente.
Todas as semanas, vou enviar-lhe um envoltório de todas as atividades no QuantStart para que você nunca mais perca uma postagem novamente.
Real, dicas de negociação viáveis, sem tonturas.
Comércio Algoritmico de Opções, Parte 1.
Apesar dos muitos recursos interessantes das opções, os comerciantes privados raramente se aproveitam (claro que eu estou falando aqui de opções sérias, e não de opções binárias). Talvez as opções sejam impopulares devido à sua reputação de ser complexas. Ou devido à sua falta de suporte pela maioria das ferramentas de software de negociação. Ou devido às etiquetas de preço das poucas ferramentas que os suportam e dos dados históricos que você precisa para negociação algorítmica. Qualquer que seja o # 8211; recentemente fizemos vários contratos de programação para sistemas de negociação de opções, e fiquei surpreso que mesmo sistemas simples pareciam produzir lucros relativamente consistentes. Especialmente as opções de venda aparecem mais lucrativas do que a negociação / convencional & # 8217; instrumentos. Este artigo é o primeiro de uma mini-série sobre ganhar dinheiro com negociação de opções algorítmicas.
Opções 101.
As opções são explicadas em muitos sites e em muitos livros de negociação, então aqui é apenas uma visão geral rápida. Uma opção é um contrato que dá ao seu proprietário o direito de comprar (opção de compra) ou vender (opção de venda) um ativo financeiro (o subjacente) a um preço fixo (o preço de exercício) em ou antes de uma data fixa (data de caducidade) . Se você vende uma opção curta (escreva), você está tendo o outro lado do comércio. Então, você pode entrar em uma posição de 4 maneiras diferentes: comprar uma ligação, comprar uma venda, vender uma chamada curta, vender uma curta. E isso com todas as combinações possíveis de preços de exercício e datas de caducidade.
O prémio é o preço que você paga ou coleciona para comprar ou vender uma opção. É muito inferior ao preço do estoque subjacente. Os principais mercados de opções geralmente são liquidos, então você pode comprar, escrever ou vender qualquer momento com qualquer preço de exercício razoável e data de validade. Se o preço subjacente atual (o preço à vista) de uma opção de compra estiver acima do preço de exercício, a opção está no dinheiro; caso contrário, está fora do dinheiro. O contrário é verdadeiro para colocar opções. In-the-money é bom para o comprador e ruim para o vendedor. As opções no dinheiro podem ser exercidas e são então trocadas pelo subjacente ao preço de exercício. A diferença de local e greve é o lucro do comprador e a perda do vendedor. As opções de estilo americano podem ser exercidas a qualquer momento, opções de estilo europeu apenas no vencimento.
As opções fora do dinheiro não podem ser exercidas, pelo menos não com lucro. Mas eles não são inúteis, já que eles ainda têm a chance de entrar no dinheiro antes do vencimento. O valor de uma opção depende dessa chance e pode ser calculado para opções européias de preço à vista, greve, caducidade, taxa de rendimento sem risco, taxa de dividendos e volatilidade subjacente com a famosa fórmula de Black-Scholes. Esse valor é a base da opção premium. O verdadeiro prémio pode desviar ligeiramente devido à oferta, demanda e tentativas de prever a tendência de preços subjacentes.
Ao reverter a fórmula com um processo de aproximação, a volatilidade pode ser calculada a partir do prémio real. Esta volatilidade implícita é como o mercado espera que o subjacente flutue na próxima vez. As derivadas parciais do valor da opção são os gregos (Delta, Vega & # 8211; don & # 8217; t sabe o que a letra grega deve ser & # 8211; e Theta). Eles determinam em que direção e quão forte, o valor irá mudar quando um parâmetro de mercado muda.
Aquela & # 8217; s todas as informações básicas necessárias para opções de negociação. Por sinal, é interessante comparar os desempenhos das estratégias dos livros comerciais. Embora os sistemas de negociação forex ou de estoque descritos nesses livros sejam principalmente de beliche e perca já em um backtest simples, não é assim com os sistemas de opção. Eles muitas vezes ganham no backtests. E isso, embora eu tenha certeza de que quase nenhum autor realmente os testou. Os autores de livros de negociação de opções são apenas mais inteligentes do que outros autores de livros comerciais? Talvez, mas nós veremos que há uma explicação alternativa.
Por que as opções de negociação?
Eles são mais complexos e mais difíceis de negociar, e você precisa de uma fórmula vencedora do Prêmio Nobel para calcular um valor que de outra forma seria simplesmente uma diferença de preço de entrada e saída. Apesar de tudo isso, as opções oferecem muitas vantagens maravilhosas em relação a outros instrumentos financeiros:
Alta alavancagem. Com US $ 100 você pode comprar apenas algumas ações, mas opções de várias centenas de ações. Risco controlado. Uma posição curta em um estoque pode limpar sua conta; As posições nas opções podem ser inteligentes combinadas para limitar o risco de qualquer maneira desejada. E, ao contrário de uma perda de parada, é um limite de risco real. Dimensões adicionais. Os lucros obtidos apenas dependem da subida ou queda dos preços. Os lucros das opções podem ser alcançados com o aumento da volatilidade, a queda da volatilidade, os preços se deslocam em um intervalo, fora de um intervalo ou quase qualquer outro comportamento de preços imagináveis. Fogo e esqueça. As opções expiram, então você não precisa de um algoritmo para fechá-las (a menos que você queira vender ou exercê-las em condições especiais). E você não paga nenhuma comissão de saída por uma opção expirada. Vantagem do vendedor. Devido ao prémio, as opções ainda podem produzir um lucro para o vendedor, mesmo que o subjacente se mova na direção errada.
A ética do hacker exige que você não apenas reivindique algo, mas prová-lo. Para se familiarizar com as opções, deixe colocar a última reclamação, o vendedor aproveita para testar:
Este é um sistema de troca de opções muito simples. Ele escreve aleatoriamente opções de chamada ou colocação e mantém as posições abertas até que expiram. Devido à aleatoriedade de colocar / chamar é agnóstico de tendências. Antes de pesquisar os detalhes do código, basta executá-lo no modo [Teste] algumas vezes (você precisará do Zorro versão 1.53 ou superior). Você notará que o resultado é diferente em qualquer momento, mas é mais frequentemente positivo do que negativo, mesmo que a comissão seja subtraída do lucro. Um resultado típico:
Você pode ver que a maioria dos negócios ganha, mas quando eles perdem, eles perdem grandes. Agora, inverta a estratégia e compre as opções em vez de vendê-las: Substitua enterShort () por enterLong (). Execute-o novamente algumas vezes (o script precisa de cerca de 3 segundos para um backtest). Você verá agora que o resultado é mais freqüentemente negativo. na verdade, quase sempre.
Parece que as opções, pelo menos, os contratos SPY testados, de fato, favorecem o vendedor. Isso é um pouco semelhante à expectativa positiva de posições longas em ações, ETFs ou futuros de índice, mas as vantagens do vendedor de opções são mais fortes e independentes da direção do mercado. Isso pode explicar uma grande parte dos resultados positivos dos sistemas de opções em livros de negociação. Por que há compradores de opções? As opções são muitas vezes compradas sem fins lucrativos, mas como um seguro contra tendências de preços desfavoráveis do subjacente. E por que a vantagem do vendedor não é arbitrada pelos tubarões do mercado? Talvez porque não há muitas negociações algorítmicas com opções, e porque há de qualquer forma mais baleias do que tubarões nos mercados financeiros.
Funções para opções.
Podemos ver que as opções de negociação e backtesting requer algumas mais funções do que apenas negociar o subjacente. Sem opções, o mesmo sistema de comércio aleatório seria reduzido a esse breve script:
As opções exigem (pelo menos) três funções adicionais:
dataLoad (1, & # 8221; SPY_Options. t8 & # 8243 ;, 9) carrega dados de opções históricas do arquivo & # 8220; SPY_Options. t8 & # 8221; em um conjunto de dados. Os dados de opções incluem não apenas os preços de oferta e oferta, mas também o preço de exercício, a data de validade, o tipo & # 8211; colocar ou ligar, americano ou europeu de qualquer opção, e alguns dados adicionais raramente utilizados, como o interesse aberto. Ao contrário dos preços históricos, os dados das opções geralmente são caros. Você pode comprá-lo de fornecedores como iVolatility. Mas existe uma maneira alternativa de obtê-lo gratuitamente, que eu descreverei abaixo.
A coluna do centro lista os preços de exercício e as datas de validade diferentes, as partes direita e esquerda são os preços de oferta e de oferta e os tamanhos de livro de pedidos para a chamada atribuída (esquerda) e as opções de venda (à direita). Os preços são por ação; um contrato de opção sempre cobre um certo número de ações, normalmente 100. Então, você pode ver na lista acima que você coletará $ 15 premium quando você escrever uma opção de chamada SPY que expira na próxima semana (03 de fevereiro de 2017) com US $ 230 preço de exercício. Se a SPY não ganhou mais de $ 230 até essa data, os US $ 15 são seus lucros. Se ele resultou em US $ 230 e 10 centavos e a opção é exercida (acontece automaticamente quando expira no dinheiro), você ainda mantém US $ 5. Mas se de repente subisse para US $ 300 (talvez Trump anunciasse novos muros ao redor dos EUA, tudo pago por si mesmo), você deve suportar uma perda de $ 6985.
A imagem exibe 54 contratos, mas esta é apenas uma pequena parte da cadeia de opções, pois há muitas datas de caducidade e preços de exibição disponíveis. A cadeia de opções SPY pode conter até 10.000 opções diferentes. Todos eles são baixados para o PC com a função contractUpdate acima, o que pode demorar alguns segundos a ser concluído.
contrato (Tipo, 30, preçoClose ()) seleciona uma opção específica da cadeia de opções baixada anteriormente. O tipo (PUT ou CALL), os dias até a expiração (30) e a greve (priceClose () é o preço atual do subjacente) são informações suficientes para selecionar a melhor opção de ajuste. Note-se que, para obter preços de exercício corretos no backtest, baixamos os dados de preços subjacentes com a bandeira UNADJUSTED. Os preços de greve são sempre desajustados.
Uma vez que um contrato é selecionado, o próximo enterLong () ou enterShort () compra ou vende a opção no mercado. A cláusula if () verifica se o contrato está disponível e a data de expiração é diferente do anterior (para garantir que somente contratos diferentes sejam negociados). Os limites de entrada, de paragem ou de lucro funcionariam como de costume, agora só se aplicam ao valor da opção, o prémio, em vez do preço subjacente. O backtest pressupõe que quando uma opção é exercida ou expira no dinheiro, o subjacente é vendido imediatamente e o lucro é registrado na conta do comprador e deduzido da conta do vendedor. Se a opção expirar para fora do dinheiro, a posição simplesmente desaparece. Portanto, não nos preocupamos com a saída de posições nesta estratégia. Além dessas diferenças, as opções de negociação funcionam de acordo com a negociação de qualquer outro instrumento financeiro.
Estratégias de opções de backtesting.
Aqui é uma maneira fácil de se enriquecer. Abra uma conta do IB e execute um software que registre as cadeias de opções e os preços do contrato em intervalos de um minuto. Isso é o que alguns fornecedores de dados fizeram nos últimos 5 anos, e agora eles estão querendo vender seus tesouros de dados. Embora você possa facilmente pagar vários milhares de dólares por algumas cadeias de opções de ações principais, não tenho certeza de quem realmente possui os direitos autorais desses dados # 8211; o vendedor, o corretor, a troca ou os participantes do mercado? Esta pode ser uma área cinzenta legal. De qualquer forma, você precisa de dados históricos para o desenvolvimento de estratégias de opções, caso contrário, você não pode fazer o backtest deles.
Aqui é um método para obtê-lo de graça e sem problemas legais:
Este script é um pouco mais longo do que os scripts Zorro habituais que postei aqui, então eu não o expliquei detalhadamente. Ele gera cadeias de opções artificiais para qualquer dia de 2011-2017 e as armazena em um arquivo de dados histórico. Os preços das opções são calculados a partir do preço subjacente, da volatilidade, da taxa de juros livre de risco atual e da taxa de dividendos do subjacente. Ele usa três faixas de preços de exercício e datas de caducidade em qualquer sexta-feira dos próximos 180 dias. Você precisa de R instalado para executá-lo, e também o pacote RQuantlib para calcular os valores das opções. Todas as funções são descritas no manual Zorro. A função yield () retorna a taxa de rendimento atual das contas do Tesouro dos EUA e contractVal () calcula o prémio ao resolver uma equação diferencial com todos os parâmetros da opção. O código-fonte de ambas as funções pode ser encontrado no arquivo de contrato. c incluir.
Devido ao solucionador de equações diferenciais lentas e ao grande número de opções, o script precisa de várias horas para ser concluído. Aqui é uma comparação dos dados gerados com dados reais de opções SPY:
A linha azul são os preços das opções artificiais, a linha preta são os preços reais comprados de um fornecedor de dados de opções, tanto para contratos SPY de 3 semanas com 10 pontos de distância spot-strike. Você pode ver que os preços combinam bastante bem. Existem pequenas diferenças que podem ser parcialmente aleatórias, parcialmente causadas por anomalias na oferta e na demanda. Para estratégias que exploram essas anomalias & # 8211; que inclui todas as estratégias baseadas em volatilidade implícita e # 8211; Você precisará de preços reais de opções históricas. Para as estratégias de opções que exploram apenas as mudanças de preço ou de volatilidade do subjacente, os dados artificiais provavelmente irão fazer. Veja, lendo este artigo até o final, você já salvou alguns milhares de dólares.
Conclusão.
Opções e combinações de opções podem ser usadas para criar instrumentos financeiros artificiais com propriedades muito interessantes. As estratégias de opções, especialmente as opções de venda, são mais propensas a serem lucrativas do que outras estratégias. As estratégias de opções algorítmicas são um pouco, mas não muito mais complexas do que estratégias com outros instrumentos financeiros.
Eu incluí todos os scripts no repositório de script de 2017 e também um conjunto de dados históricos com as taxas de rendimento (caso contrário, você precisava da ponte Quandl ou do Zorro S para baixá-los). Você precisará do Zorro 1.53 ou superior, atualmente disponível no & # 8220; Beta & # 8221; link da página de download do Zorro. A mensagem de erro da versão Zorro gratuita sobre a ponte Quandl não suportada pode ser ignorada, devido às taxas de rendimento incluídas, o script será executado no entanto.
No próximo artigo, analisaremos mais de perto os valores das opções e os métodos para combinar opções para limitar o risco ou negociar intervalos de preços arbitrários. Essas combinações com nomes engraçados como "Iron Condor" e # 8221; ou & # 8220; Borboleta & # 8221; são muitas vezes referidos como estratégias de opções, mas não são & # 8211; são apenas instrumentos financeiros artificiais. Como você os troca é até a estratégia real. Algumas estratégias de opções simples, mas consistentemente rentáveis serão o tema do terceiro artigo desta mini-série.
48 pensamentos sobre & ldquo; Algorithmic Options Trading, Part 1 & rdquo;
Artigo muito interessante Eu tenho um sistema de troca automático de opções criado pelos desenvolvedores do Zorro (ótimo trabalho, por sinal) e é muito interessante ver que minha estratégia gera resultados semelhantes à sua estratégia # 8220; aleatória # 8221 ;. Estou ansioso para os próximos artigos desta mini-série.
Gostaria de perguntar, você tem alguma idéia se seu livro será traduzido para o inglês em breve? Adoraria ler o livro.
Eu estou totalmente interessado nestes mini artigos da série. Por favor, deixe-me saber a próxima série.
Obrigado # 8211; sim, uma versão de livro em inglês está planejada, eu só devo encontrar algum tempo para revisar a tradução bruta. Andrés: você pode inserir o seu no campo de inscrição à direita.
Bom artigo, gostaria de lhe perguntar o que são bons livros ou onde posso aprender a negociar com opções. Obrigado.
Estou certo, porque esses preços artificiais e reais se relacionam com uma espécie de sintético & # 8221; opção feita como uma série rolada de opções reais com a data de validade mais próxima e greve dinamicamente alterada (dependendo do preço subjacente)?
Investopedia e Tastytrade têm alguns tutoriais e vídeos sobre opções. - Não foi lançada a série, mas uma cadeia de opções com diferentes greves e datas de expiração, assim como na vida real. Caso contrário, o backtest não seria realista.
Quando você está comparando os preços artificiais com os preços reais, você está usando ataque ATM? O ponto inteiro, para mim, de testar uma estratégia de negociação de opções versus dados de opções reais é que, nas asas, os volumes implícitos serão muito superiores aos gerados artificialmente.
As greves utilizadas foram cerca de 10 pontos ITM.
Obrigado por publicar este interessante artigo. Posso saber quando os outros dois artigos desta mini-série serão publicados?
Quando eu tiver algum tempo & # 8230; 🙂
Que bom artigo! Os resultados do sistema de comércio aleatório são semelhantes aos CBOE S & amp; P 500 PutWrite Index e faz sentido.
Muito obrigado por este artigo! Estava pensando nisso no outro dia.
Eu gosto muito dos artigos deste blog. Atualmente, estou negociando opções de compra de prazo de 1 ano de ações específicas.
Meu maior problema com a vantagem do vendedor & # 8221; que contradiz o risco controlado & # 8221; declaração.
& # 8220; Algo que muitas vezes confunde os investidores é se, ou não, ser uma chamada curta e uma longa colocação são iguais. Intuitivamente, isso pode ter algum sentido, uma vez que as chamadas e colocações são contratos quase opostos, mas ser uma chamada curta e um longo tempo não é o mesmo. Quando você é comprido, você tem que pagar o prêmio e o pior caso resultará em perda do prêmio. No entanto, quando você recebe uma chamada curta, você coleciona a opção premium, mas você está exposto a uma grande quantidade de risco & # 8221;
Então, quando você escreve (nua), seu risco é ilimitado. O curto período de tempo de expiração (30 dias) é salva-lo na maioria dos casos, mas isso é uma auto-ilusão. Este método é muito semelhante aos bots de negociação de fraude, onde 99,5% dos bots do tempo estão ganhando pouco (e. G. Call premium) quantidade de dinheiro, no entanto, quando você perde, você arrisca grande quantidade de seu dinheiro.
O risco prolongado ou o risco de comerciantes são limitados e eles escolhem opções fora do dinheiro para multiplicar seus ganhos e, paralelamente, eles reduzem sua chance vencedora.
Eu estaria interessado em LEAPS (1+ ano de expiração longo / put opções) backtest.
Apenas faça isso. Faça o download do Zorro 1.54 no fórum do usuário e execute um sistema com o LEAPS. Para isso, você precisa aumentar o & # 8220; DaysMax & # 8221; variável no script de geração de dados de opções acima de 1 ano (365) ou 2 anos (2 * 365) para incluir contratos de longo prazo. O script precisará um pouco mais de tempo para a geração de dados.
Uma vez que as opções de negociação são um novo recurso Zorro, eu estou me perguntando se a parte do manual Broker do manual (zorro-trader / manual / en / brokerplugin. htm) foi suficientemente atualizada para atender as opções de manipulação.
Eu estou pedindo porque eu estou tentando escrever um plugin DLL para TradeKing (em breve para ser renomeado para Ally Invest). Eles possuem ações, ETFs e contratos de opções. Corretor muito baixo de barreira para entrada também ($ 0 necessário para obter acesso à API).
Para opções, implemente as funções básicas da API mais 5 funções BrokerCommand: GET_POSITION, GET_OPTIONS, GET_UNDERLYING, SET_SYMBOL e SET_MULTIPLIER.
Artigo fantástico, obrigado por compartilhar, testei o código e baixei os dados das opções através do script, tudo pareceu fazer o download de OK e me fazer um arquivo T8 de 48mb para o SPY, mas quando eu executar o script aleatório, não obtenho quaisquer negociações. É a primeira vez que eu corri o zorro (I & # 8217; m na última versão baixada há 2-3 dias), por isso realmente não tenho certeza do que eu estou fazendo de errado.
Qualquer ajuda será apreciada e espero ansiosamente o próximo episódio nesta série fascinante 😉
Aqui está a saída do log:
Opções de testeSellRandom SPY.
Conta simulada AtivosIB.
Período de barra 24 horas (média 2233 min)
Período de teste 12.01.2011-01.06.2016 (1270 bars)
Período de busca 80 bares (16 semanas)
Modo de simulação realista (deslizamento 5,0 segundos)
Spread 2.0 pips (roll 0.00 / 0.00)
Contratos por lote 1.0.
Perda / perda bruta 0,00 $ / -0,00 $ (-1p)
Lucro médio de 0,00 $ / ano, 0,00 $ / mês, 0,00 $ / dia.
Dispensa máxima -0.00 $ -1% (MAE -0.00 $ -1%)
Tempo de inatividade total 0% (TAE 0%)
Tempo máximo de queda de 0 minutos a partir de setembro de 2010.
Margem máxima aberta 0.00 $
Risco máximo aberto 0,00 $
Volume comercial 0,00 $ (0,00 $ / ano)
Custos de transação 0.00 $ spr, 0.00 $ slp, 0.00 $ rol.
Capital requerido 0 $
Número de negócios 279 (52 / ano, 1 / semana, 1 / dia)
Percentagem de ganhos de 0,0%
Vitória / perda máxima 0.00 $ / & # 8211; 0.00 $
Lucro médio de lucro 0,00 $ -1. $ P (+ 0.0p / -1. $ P)
Deslizamento do comércio médio 0,00 $ 1. $ p (+ 0.0p / -1. $ P)
Barras de comércio médio 23 (+0 / -23)
Barras comerciais máximas 26 (5 semanas)
Tempo no mercado 506%
Negociações abertas máximas 6.
Raio de perda máxima 279 (não correlacionado 279)
Retorno anual 0%
Taxa Sharpe 0,00.
Critério de Kelly 0,00.
R2 coeficiente 1.000.
Nível de confiança AR DDMax Capital.
Análise de portfólio OptF ProF Win / Loss Wgt%
e um trecho do arquivo de log & # 8230;
[1338: Sex 13.05.16 19:00] +0 +0 6/271 (206.21)
[SPY :: SC1272] Ligue para 20160513 204.0 03.5713 não negociado hoje!
[SPY :: SC1272] Chamada expirada 1 20160513 204,0 0207: +0,00 às 19:00:00.
[1339: Seg 16.05.16 19:00] +0 +0 5/272 (204.96)
[1340: Ter 17.05.16 19:00] +0 +0 5/272 (206.46)
[1341: Qua 18.05.16 19:00] +0 +0 5/272 (204.44)
[1342: Qui 19.05.16 19:00] +0 +0 5/272 (204.06)
[SPY :: SC4278] Escreva 1 Ligue 20160624 205.0 03.4913 às 19:00:00.
[1343: Sex 20.05.16 19:00] +0 +0 6/272 (204.92)
[SPY :: SP1773] Coloque 20160520 208.0 04.2851 não negociado hoje!
[SPY :: SP1773] Expirou 1 Coloque 20160520 208.0 0204: +0.00 às 19:00:00.
[1344: Seg 23.05.16 19:00] +0 +0 5/273 (205.51)
[1345: Ter 24.05.16 19:00] +0 +0 5/273 (206.17)
[1346: Qua 25.05.16 19:00] +0 +0 5/273 (208.67)
[1347: Qui 26.05.16 19:00] +0 +0 5/273 (209.44)
[SPY :: SC4779] Escreva 1 Ligue 20160701 209.0 03.7358 às 19:00:00.
[1348: Sex 27.05.16 19:00] +0 +0 6/273 (209.53)
[SPY :: SP2274] Coloque 20160527 208.0 03.3622 não negociado hoje!
[SPY :: SP2274] Expirou 1 Coloque 20160527 208.0 0209: +0.00 às 19:00:00.
[1349: Ter 31.05.16 19:00] +0 +0 5/274 (210.56)
[SPY :: SC2775] Capa 1 Ligue 20160531 207.0 02.2309: +0.00 às 19:00:00.
[SPY :: SC3276] Capa 1 Ligue 20160531 205.0 05.1843: +0.00 às 19:00:00.
[SPY :: SP3777] Capa 1 Coloque 20160531 206.0 00.8602: +0.00 às 19:00:00.
[SPY :: SC4278] Capa 1 Ligue 20160531 205.0 04.9463: +0.00 às 19:00:00.
[SPY :: SC4779] Capa 1 Ligue 20160531 209.0 02.8347: +0.00 às 19:00:00.
[1350: Qua 01.06.16 19:00] +0 +0 0/279 (209.12)
Eu vejo que as posições são todas abertas com zero volume, como se você tivesse definido a quantidade de contratos para 0. Você usou o script não modificado do repositório?
I & # 8217; m usando o arquivo OptionsSimulate. c diretamente do arquivo Zip.
Eu instalei R e as bibliotecas Quantlib e a ponte R pareceu funcionar bem também.
O topo do arquivo.
string FileName = & # 8220; Histórico \\ SPY_SimOptions. t8 & # 8221 ;;
var StrikeMax [3] =; // 3 intervalos de ataque com diferentes passos.
var StrikeStep [3] =; // larguras de passo para os 3 intervalos.
int DaysMax = 180;
var BidAskSpread = 2.5; // Bid / Ask spread em percentagem.
var Dividendo = 0,02;
int Type = 0; // ou EUROPEO, ou FUTURO.
LookBack = 21; // por volatilidade.
Lamentamos as perguntas do n00b, são ferramentas e sistemas realmente interessantes e queria testar alguns spreads de crédito verticais usando este código como base para o SPY e talvez alguns outros instrumentos!
Não é uma questão de noob, na verdade é minha culpa. Eu apenas vejo que eu esqueci de definir as opções multiplicadoras no script. Isso não importava com a versão anterior do Zorro, uma vez que o multiplicador era 100 por padrão, mas agora deve ser configurado porque as opções podem ter multiplicadores muito diferentes.
I & # 8217; corrigiu o script acima. Obrigado por me notificar!
Sim, foi isso!
Obtendo resultados agora, muito obrigado pela sua ajuda jcl.
I & # 8217; m agora para colocar $ 1mm em uma conta e trocar este bebê 😉
Você tem alguma idéia quando você vai começar a trabalhar no resto dos artigos desta série?
Parece que o código abaixo não está funcionando mais.
O arquivo CSV SPY. csv é preenchido com este conteúdo:
QECx05, O URL que você solicitou está incorreto. Use a seguinte URL em vez disso: / api / v3 / datasets /: database_code /: dataset_code.
Desculpe, na verdade, esse arquivo era de Quandl, e precisa de uma assinatura paga.
Do Yahoo eu recebo o erro Can & # 8217; t baixar o SPY do Yahoo.
Alguém que tenha o mesmo problema?
Eu acho que todos estão tendo o mesmo problema, já que o Yahoo mudou seu protocolo na semana passada. Se você se deparar com problemas como esse, procure uma solução não só no meu blog, mas primeiro no fórum Zorro:
Obrigado por esta informação útil sobre sistemas de negociação automatizados!
Eu sou muito novo para isso, mas acho que este é um negócio muito maior do que você faz parecer som:
& gt; Existem pequenas diferenças que podem ser parcialmente aleatórias, parcialmente causadas por anomalias na oferta e na demanda. Para estratégias que exploram essas anomalias, você precisará de dados históricos reais.
Ter uma volatilidade precisa é essencial. Sem isso, você não está apenas escrevendo uma estratégia que não explore essas anomalias, você está escrevendo uma que as ignora completamente. É comparável ao gerar o preço de estoque, escolhendo um número aleatório com base na distribuição de probabilidade das semanas anteriores e # 8217; preços ou alisando todos os maiores movimentos.
Os preços das opções são baseados em expectativas sobre o futuro, mas (a menos que eu não entenda seu código), você está avaliando-os com base no passado. As diferenças serão mais pronunciadas em subjacentes diferentes de SPY, particularmente em torno do tempo de renda (digamos AAPL, MSFT ou GOOG).
Também acho difícil pensar em uma estratégia que não explore a diferença entre a volatilidade implícita e real. Mesmo um delta de 16/5 colocado na SPY só funciona tão bem como porque a IV é muito mais alta do que deveria ser.
Sim, as mudanças nos preços das opções devido à expectativa de volatilidade, talvez quando a abordagem da notícia da empresa pertence às anomalias mencionadas. A regra geral é: para anomalias que também têm um efeito sobre o subjacente, você pode usar os preços artificiais. Para anomalias que afetam apenas as opções, mas não o subjacente, você precisará comprar dados das opções históricas reais.
Quão bons serão os dados simulados se eu mudar o BarPeriod = 1440 para ser BarPeriod = 1?
Teoricamente, tão bom ou ruim quanto os dados diários, já que o priciple é o mesmo. Mas eu ainda não fiz testes com dados de opções de 1 minuto. Isso é uma grande quantidade de dados.
& # 8220; Devido ao solucionador de equação diferencial lenta e ao grande número de opções, o script precisa de várias horas para concluir. & # 8221;
Quanto mais rápido você acha que isso poderia ser se o R / Quantmod fosse substituído por C / C ++? Estou pensando em gerar muitos dados sintéticos.
Eu acredito que ele é _ C ++, pelo menos o Quantlib subjacente está programado em C ++. A sobrecarga R é provavelmente insignificante. O problema não é o código, mas a matemática. A resolução numérica de equações diferenciais é lenta. Black-Scholes é muito mais rápido, mas apenas para opções europeias. Se você realmente possui muitos dados para gerar, pode fazer sentido verificar a velocidade de diferentes métodos de aproximação para opções americanas.
Percebo que a volatilidade é fixada em 20 no script acima para gerar preços de opções sintéticas. Poderia não haver um argumento para que a volatilidade seja 30 dias e calculada programaticamente a partir do subjacente?
O que você quer dizer com & # 8220: 30 dias e # 8221 ?? 20 é o período de volatilidade usual nos cálculos financeiros, já que equivale aproximadamente a um mês. 30 provavelmente não faria muita diferença.
Você usa uma estimativa única de Volatilidade, eu acho: por exemplo, 16 para o S & amp; P. Mas, de forma contínua, será muito amplamente, o que é, naturalmente, parte do motivo pelo qual os preços das opções mudam tanto: como a volatilidade aumenta, o preço da opção também. Se, portanto, você usar uma média móvel de volatilidade de 20 (ou 30) dias, você obterá preços de opções sintéticas mais precisos do que simplesmente assumir um plano 16 único para o S & amp; P quando às vezes o real pode ser 10, às vezes 30. Não tenho olhou para a arquitetura do zorro e, portanto, não é agora se é principalmente vetor, ou olhar ou o que. De qualquer forma, seria possível incluir a média móvel do dia relevante da volatilidade do instrumento subjacente ao invés de uma figura fixa.
Mas lá novamente é o que você faz, talvez? HistVolOV = VolatilidadeOV (20) & # 8211; talvez este seja 20 dias? Não é 20%?
Uma pergunta não é uma declaração.
De qualquer forma, parece um maravilhoso software. Apenas vou seguir o manual.
Sim, parece Vol é uma série temporal. Desculpe incomodá-lo.
Sim, a volatilidade anualizada dos últimos 20 dias. Se fosse 20%, eu teria escrito: HistVolOV = 0,2.
Não. Não o corta. Você não pode usar uma única medida de volatilidade histórica para tudo, desde uma opção de um mês até um prazo de validade de 24 meses. Talvez o esquema inteiro seja inválido. Por exemplo, IV para um vencimento de dois anos do SPX é atualmente de 15%, enquanto uma opção que expira nos próximos dias é de 5% de ish.
Pode ser inválido usar dados manufaturados. Exceto se você tratá-lo como uma espécie de teste de Monte Carlo: isso é o que pode / poderia ter acontecido / pode acontecer.
Anthony, o script está calculando o preço atual de uma opção. O preço atual depende da volatilidade atual. Não há volatilidade de 24 meses atrás.
Você calcula o valor das opções européias com a fórmula Black Scholes e as opções americanas, como no script acima, com um método de aproximação. Ambos os métodos normalmente usam 20 dias de volatilidade. The volatility sampling method can differ, but the 20 days are pretty common to all options trading software that I know. And you can see from the comparison with real prices above that this period works rather well.
No, you can not calculate the current price of an option on any given day in that way. There is no way to accurately reproduce implied volatility hence price on any given date in the past. And it is the implied volatility we are interested in, not the historic. I totally agree on Black Scholes of course and its uses but it is cart before horse to expect to plug in 20 day volatility as at 3rd January 1985 and expect it to come up with an accurate price as traded at the close on that day for the SPX for any given strike or expiry.
It’s looking at it the wrong way around.
What you can try is to play around with different methods of estimating what the implied vol/ price MAY have been on 3rd Jan 1985 for a given strike and expiry of an SPX option.
For instance you might use 5 day historic volatility for an option expiring in a week and 252 day volatility for an option expiring in a year. Or you might imply volatilities by looking at the term structure of VIX futures contracts from 2004. Or at least use the VIX index itself going back to 1986 as input for 30 day volatility.
Whatever you do you won’t really be producing anything like what was actually traded on the day. Or at least not consistently and accurately over all expiries and strikes.
I believe that the process you describe does have a value but that the outcome of both the prices produced and the back tests resulting therefrom will be more akin to a random moet carlo process than to a back test on actual traded price data.
I believe it is a valuable process but that what is produced is a series of parallel universes: what might have happened to a given strategy over a given period of time using implied volatilities which may or may not have been traded.
Sorry to be long winded and I am an admirer of both your product and your script above. I would not have thought of generating fake option prices had I not seen your excellent article.
But in my opinion at least you need to rethink your input into the BS formula as far as volatility is concerned.
Incidentally please be well aware that I admire your product and your thoughts. Don’t imagine I am being difficult. Equally please don’t imagine I believe I am “right”!
I am just enjoying the journey and the dialogue with you and hoping together we can improve each other’s understanding of the topic.
Mine is limited!
Say the date you are looking atis 7th January 1987. On that day historic SPX volatility calculated over 20 trading days was 15.23. Historic volatility on that day for the past 252 days was 14.65.
For 5 days it was 18.
Now say I am trying to “calculate” (guess) a price (which might have been traded on 7th January 1987) for an option expiring in 5 days, 20 days and 252 days. Lets assume ATM.
My suspicion is that it would not be helpful to use 15.23 for all three expiries.
Thank you for your kind words. Finance is complex. My knowledge is even more limited and I’m daily surprised by some results that I didn’t expect. & # 8211; In your example, the 15.23% volatility is the correct value. If you used a higher volatility period for higher expiration, then it depends on whether it’s still annualized volatility or just volatility of a longer time. In the latter case the results are off by some factor, in the former case they are based on too old volatility and thus not up to date. & # 8211; You’re right about the implied volatility, since it is affected by the difference of theoretical and real option value. So you cannot use the script above for getting it. Otherwise you would just get back some approximation of the current volatility. You need real option prices for IV.
No comments:
Post a Comment