Construa o próprio sistema de negociação
Sistemas de Negociação: Construindo um Sistema de Negociação.
Agora você deve estar familiarizado com alguns elementos comuns que compõem um sistema de negociação, as vantagens e desvantagens de usá-los, alguns dos diferentes mercados e estratégias que podem ser usados para construí-los e os componentes básicos de um sistema de negociação.
Vamos agora ver como construir um sistema básico de negociação do zero. Embora esse sistema de negociação não seja otimizado para o lucro, você aprenderá como todos os diferentes componentes se encaixam para criar um sistema de negociação funcional.
Escolhendo um mercado, estratégia e Tecnologia.
Visaremos o mercado cambial (forex), já que os dados estão disponíveis gratuitamente na GainCapital e em outras fontes. Para a estratégia, estaremos empregando uma estratégia de crossover de média móvel muito básica, segundo a qual ficamos longos se uma média móvel de curto prazo cruzar acima de uma média móvel de longo prazo. E, finalmente, estaremos usando a linguagem de programação Python e as populares bibliotecas NumPy, pandas e matplotlib para ler os dados e executar a estratégia.
Vamos supor que você esteja familiarizado com a linguagem de programação Python e a tenha instalado corretamente em seu computador. Se você não for, visite o site do Python para obter recursos de aprendizado ou implemente a mesma funcionalidade em outros idiomas e plataformas.
Configurando o Script.
O primeiro passo é criar um arquivo, chamado ma_cross. py, que abrigará a estratégia. No arquivo, começaremos importando todas as bibliotecas que precisaremos.
import matplotlib. pyplot como plt.
import numpy como np.
importar pandas como pd.
de pandas. io. data import DataReader.
A biblioteca pandas inclui uma função "rolling_mean" que cria médias móveis com base no preço de compra ou venda para cada tick no mercado forex. Uma vez que as médias móveis estiverem concluídas, construiremos uma série de "sinais" definindo a coluna igual a 1,0 quando a média móvel curta for maior que a média móvel longa ou 0,0, caso contrário. Podemos então usar as `posições` para gerar sinais de negociação que podem ser enviados para outro lugar.
Escrevendo a estratégia.
A estratégia pode ser implementada em Python.
def __init __ (self, pair, ticks, short_window = 100, long_window = 400):
sinais ['short_ma'] = pd. rolling_mean (ticks ['ask'], self. short_window, min_periods = 1)
sinais ['long_ma'] = pd. rolling_mean (ticks ['ask'], self. long_window, min_periods = 1)
sinais ['signal'] [self. short_window:] = np. where (sinais ['short_ma'] [self. short_window:] & gt; sinais ['long_ma'] [self. short_window:], 1,0, 0,0)
Esse código gera uma série de sinais sempre que ocorre um cruzamento de média móvel, em que 1.0 sinaliza que uma ordem de compra está sendo feita.
Colocando o código para uso.
O próximo passo é pegar esse código e usá-lo em conjunto com uma estratégia de backtesting para ver como ele seria executado no passado.
A maioria dos traders prefere usar ferramentas de backtesting online, como o Quantopian, onde você pode fazer upload de código e ver automaticamente os resultados. Usando essas ferramentas, o backtesting é tão fácil quanto importar as bibliotecas do Quantopian para o Python e colar o seu script. Em seguida, você pode executar um backtest completo usando datas simuladas, valores de conta e até mercados. Você pode ver retornos, alfa, beta, taxas de Sharpe e rebotes máximos para ter uma ideia de como a estratégia seria executada.
O próximo passo seria integrar a estratégia em um ambiente de negociação ao vivo. Muitas corretoras que oferecem negociações automatizadas incluirão APIs com as quais você pode interagir para fazer negócios. Por exemplo, o InteractiveBrokers tem uma API completa com bibliotecas para Python, Java,.NET e outras tecnologias. Usando essas bibliotecas, você pode facilmente transformar os sinais gerados em negociações que são executadas através da plataforma.
Na próxima seção, veremos algumas outras considerações importantes a serem lembradas.
Codificação de Sistemas de Negociação.
Por Justin Kuepper.
Como os sistemas de negociação automatizados são criados?
Este tutorial se concentrará na segunda e na terceira partes deste processo, onde suas regras são convertidas em um código que seu software de negociação pode entender e usar.
Vantagens e desvantagens.
Um sistema automatizado tira a emoção e o trabalho ocupado da negociação, o que permite que você se concentre em melhorar suas regras de estratégia e gerenciamento de dinheiro. Uma vez que um sistema lucrativo é desenvolvido, ele não requer nenhum trabalho de sua parte até que ele quebre, ou as condições do mercado exigem uma mudança. Desvantagens:
Se o sistema não for devidamente codificado e testado, grandes perdas podem ocorrer muito rapidamente. Às vezes é impossível colocar certas regras no código, o que dificulta o desenvolvimento de um sistema de negociação automatizado. Neste tutorial, você aprenderá como planejar e projetar um sistema de negociação automatizado, como converter esse design em código que seu computador entenderá, como testar seu plano para garantir o desempenho ideal e, finalmente, como colocar seu sistema em uso.
Construa seu sistema de negociação em 3 etapas.
Agora que você aprendeu os fundamentos da análise técnica. Vamos agora combinar todas essas informações e criar um sistema de negociação simples.
Isso deve lhe dar uma idéia do que você deve procurar quando você desenvolve seu próprio sistema de negociação forex.
Indicadores técnicos adicionais também são usados para confirmação antes de entrar em uma negociação.
Você aprenderá a usar esses vários indicadores técnicos para estabelecer níveis de entrada e saída "cristalinos" específicos.
Defina o seu período de tempo Determine o (s) acionador (es) de entrada Determine o (s) acionador (es) de saída
Configuração de Negociação.
Negociação no gráfico diário (swing trading) 5 SMA aplicado ao fechamento 10 SMA aplicado ao fechamento Stochasti c (14,3,3) RSI (9)
Regras de Negociação.
Regras de Entrada.
Os 5 SMA cruzam acima do 10 SMA e ambas as linhas estocásticas estão subindo (não entre se as linhas estocásticas já estiverem no território de sobre-compra) o RSI é maior que 50.
Os 5 SMA cruzam abaixo do 10 SMA e ambas as linhas estocásticas estão descendo E (não entrem se as linhas estocásticas já estiverem em território de sobrevenda) O RSI é menor que 50.
Saia das Regras.
Saia quando o 5 SMA cruzar o 10 SMA na direção oposta ao seu trade OU se o RSI cruzar de volta para 50 Sair quando o trade hits parar a perda de 100 pips.
Se o gráfico diário for muito lento para você, experimente diferentes períodos de tempo.
Lembre-se: Um sistema de negociação só é eficaz se for seguido!
Você precisa ter a disciplina para cumprir as regras!
Ok, vamos dar uma olhada em alguns gráficos e ver esse bebê em ação ...
Master Trading Systems.
Divirta-se se tornando um super-herói comercial!
Construa seus próprios sistemas de negociação:
Assuma o controle de seu dinheiro e tempo!
O que são sistemas de negociação? Eles são um conjunto de regras que você criou para ajudá-lo a investir no mercado. A melhor parte é você criar as regras que se encaixam em sua própria personalidade. Vou mostrar-lhe uma abordagem simples passo a passo para construir e dominar seus próprios sistemas de sucesso para aumentar sua renda e estilo de vida.
Se você é um INICIADOR e tem pensado em se tornar um profissional, mas não tem certeza se é certo para você ou quais serão seus próximos passos; Se você está procurando por informações AVANÇADAS e já se decidiu, ou se você é um MESTRE procurando por melhores maneiras de aprimorar suas habilidades, continue lendo!
Se você é um INICIADOR e está pensando em se tornar um profissional, mas não tem certeza se é certo para você ou quais serão seus próximos passos, recomendo que você comece com o Trading Basics. Esta seção é para aqueles que estão aprendendo a investir. Além disso, eu recomendo que você reserve um tempo para ler vários livros sobre diferentes sistemas de negociação e idéias antes de começar sua jornada. Se esses livros o deixarem animado e manter o seu interesse, então você pode ter o que é preciso para se tornar um profissional bem-sucedido. Se não, você economizou muito tempo e dinheiro, porque a negociação provavelmente não foi a escolha certa para você.
Para traders avançados, este site tem informações sobre gráficos e padrões, planos de negociação e estratégias para ajudá-lo a levar sua negociação para o próximo nível.
Aplicando as etapas descritas neste site pode ajudá-lo a se tornar um profissional bem sucedido. Cada uma delas, por si só, pode ajudar a aumentar suas chances de sucesso, mas, ao colocá-las todas juntas, você verá uma melhora significativa em sua vida e renda.
Eu recomendo que você comece com Trading Psychology primeiro, depois mude para Trading Plan, seguido por Trading Journal. Cada página terá mais recursos para ajudá-lo a criar seus próprios sistemas de sucesso que melhor se adaptam à sua personalidade.
Quer você esteja no nível INICIANTE, AVANÇADO e MESTRE, há informações pertinentes sobre os sistemas de negociação em todas as seções deste site. Por isso, incentivo você a ler qualquer seção de interesse.
Minha intenção é que as informações contidas neste site ajudem você a percorrer sua jornada, uma jornada para finalmente construir um sistema comercial mestre que se adapte à sua própria personalidade e que atenda a todos os objetivos para os quais você se dedica!
Começando: Construindo um Sistema de Negociação Totalmente Automatizado.
Nos últimos 6 meses, tenho focado no processo de construção da pilha completa de tecnologia de um sistema de negociação automatizado. Eu me deparei com muitos desafios e aprendi muito sobre os dois métodos diferentes de backtesting (Vectorised e Event driven). Na minha jornada para construir um backtester orientado a eventos, veio a minha surpresa que o que você iria acabar é perto de toda a pilha de tecnologia necessária para construir uma estratégia, fazer backtest e executar a execução ao vivo.
Meu maior problema ao enfrentar o problema foi a falta de conhecimento. Procurei em muitos lugares uma introdução à construção da tecnologia ou um blog que me orientasse. Eu encontrei alguns recursos que vou compartilhar com vocês hoje.
Para iniciantes:
Para os leitores novatos em negociações quantitativas, eu recomendaria o livro de Ernie P. Chan intitulado: Negociação Quantitativa: Como construir seu próprio negócio de comércio algorítmico. Este livro é o básico. Na verdade, é o primeiro livro que li sobre negociação quantitativa e mesmo assim achei muito básico, mas há algumas notas que você deve tomar.
Da página 81-84 Ernie escreve sobre como, no nível de varejo, uma arquitetura de sistema pode ser dividida em estratégias semi-automatizadas e totalmente automatizadas.
Um sistema semi-automatizado é adequado se você quiser fazer algumas transações por semana. Ernie recomenda usar o Matlab, R ou até mesmo o Excel. Eu usei todas as 3 plataformas e este é o meu conselho:
Saltar do Matlab, custou muito dinheiro e só consegui acesso aos laboratórios da universidade. Não há muito material de treinamento como blogs ou livros que ensinem como codificar uma estratégia usando o Matlab. R tem toneladas de recursos que você pode utilizar para aprender como construir uma estratégia. Meu blog favorito cobrindo o tópico é: QuantStratTradeR é executado por Ilya Kipnis. É mais provável que o Microsoft Excel inicie onde você não tem experiência em programação. Você pode usar o Excel para negociações semi-automáticas, mas isso não vai funcionar quando se trata de construir a pilha completa de tecnologias.
Estrutura semiautomática pg 81.
Sistemas de negociação totalmente automatizados são para quando você deseja colocar automaticamente as negociações com base em um feed de dados ao vivo. Eu codifiquei o meu em C #, o QuantConnect também usa o C #, o QuantStart orienta o leitor através da construção em Python, o Quantopian usa o Python, o HFT provavelmente usará o C ++. Java também é popular.
Estrutura de negociação completamente automatizada página 84.
Passo 1: Conseguir um bom começo.
Faça o Programa Executivo em Algorithmic Trading oferecido pela QuantInsti. Acabei de começar o curso e o primeiro conjunto de palestras foi na arquitetura do sistema. Teria me poupado cerca de 3 meses de pesquisa se eu tivesse começado aqui. As palestras me acompanharam através de cada componente que eu precisaria, bem como uma descrição detalhada do que cada componente precisa fazer. Abaixo está uma captura de tela de um de seus slides usados na apresentação:
Você também pode usar essa estrutura geral ao avaliar outros sistemas de negociação automáticos.
No momento em que escrevo, estou apenas na terceira semana de palestras, mas estou confiante de que um praticante será capaz de construir uma estratégia comercial totalmente automatizada que poderia, com um pouco de refinamento, ser transformada no começo de um fundo de hedge quantitativo. .
Nota: o curso não está focado na construção da pilha de tecnologia.
Etapa 2: codifique um backtester baseado em eventos básicos.
Blog de Michael Hallsmore, quantstart & amp; livro “Negociação Algorítmica Bem Sucedida”
Este livro tem seções dedicadas à construção de um robusto backtester orientado a eventos. Ele orienta o leitor através de vários capítulos que explicarão sua escolha de idioma, os diferentes tipos de backtesting, a importância do backtesting orientado a eventos e como codificar o backtester.
Michael introduz o leitor às diferentes classes necessárias em um projeto orientado a objetos. Ele também ensina o leitor a construir um banco de dados mestre de títulos. É aqui que você verá como a arquitetura do sistema da QuantInsti se encaixa.
Nota: Você precisará comprar o livro dele: “Successful Algorithmic Trading”, seu blog deixa de fora muita informação.
Passo 3: Volte para o TuringFinance.
O programa EPAT Reading “Successful Algorithmic Trading” & amp; codificando um backtester em um idioma diferente de sua escolha.
Você deve ir para um blog chamado TuringFinance e ler o artigo intitulado "Algorithmic Trading System Architecture" Por: Stuart Gordon Reid. Em seu post ele descreve a arquitetura seguindo as diretrizes dos padrões ISO / IEC / IEEE 42010 e padrão de descrição de arquitetura de engenharia de software.
Eu achei este post muito técnico e tem algumas ótimas idéias que você deve incorporar em sua própria arquitetura.
Uma captura de tela de seu post.
Etapa 4: Estude os sistemas de negociação de código aberto.
4.1) Quantopian.
Escusado será dizer que Quantopian deve ser adicionado a esta lista e tenho vergonha de dizer que não passei muito tempo usando sua plataforma (devido à minha escolha de idioma). Quantopian tem muitas vantagens, mas as que mais se destacam para mim são as seguintes:
Fácil de aprender Python Acesso gratuito a muitos conjuntos de dados Uma grande comunidade e competições Eu amo como eles hospedam a QuantCon!
Quantopian é os líderes de mercado neste campo e é amado por todos os quants! Seu projeto de código aberto está sob o nome de código Zipline e isso é um pouco sobre isso:
“O Zipline é o nosso mecanismo de código aberto que alimenta o backtester no IDE. Você pode ver o repositório de código no Github e contribuir com solicitações de pull para o projeto. Há um grupo do Google disponível para procurar ajuda e facilitar discussões. ”
Aqui está um link para sua documentação:
4.2) QuantConnect.
Para aqueles que não estão familiarizados com o QuantConnect, eles fornecem um mecanismo completo de negociação algorítmica de código aberto. Aqui está um link.
Você deve dar uma olhada no código deles, estudá-lo, & amp; dê-lhes louvor. Eles são competição de quantopianos.
Eu gostaria de aproveitar esta oportunidade para agradecer à equipe da QuantConnect por me deixar escolher o cérebro deles e pelo serviço brilhante que eles fornecem.
Aqui está um link para sua documentação:
Observações finais:
Espero que este guia ajude os membros da comunidade. Eu gostaria de ter essa percepção 6 meses atrás quando comecei a codificar nosso sistema.
Eu gostaria de falar com a comunidade e perguntar: “Que bons cursos de negociação algorítmica você conhece?” Eu gostaria de escrever um post que analise o tópico e forneça uma classificação. Há alguma recomendação para criar um sistema de negociação totalmente automatizado que você gostaria de adicionar a este post?
Construindo seu próprio sistema de negociação.
Nosso primeiro artigo nesta série de sistemas de negociação discutiu os prós e contras de construir seu próprio sistema de negociação versus comprar um na prateleira. Se você está inclinado a construir, aqui estão os passos necessários.
Primeiro você deve determinar seu horizonte de tempo: curto prazo, médio prazo ou longo prazo. "O comércio de curto prazo requer mais capital porque seus negócios são mais curtos e capturam menos lucro e as comissões são definidas em uma porcentagem maior", disse. diz Justin Kuepper, um escritor financeiro da Accelerize New Media Inc. "Para negócios de longo prazo, você também precisa de capital suficiente para dar conta da volatilidade".
Em seguida, decida quais mercados você irá negociar e se você será um seguidor de tendências ou um operador de reversão. Como um trader de tendência, você está procurando principalmente as melhores saídas, enquanto que para a negociação de reversão de tendência, você está procurando as melhores entradas.
Uma vez que você decida que tipo de trader você quer ser, você precisa escolher os indicadores apropriados para sua metodologia de negociação e mercados.
Os principais indicadores incluem o Índice de Canal de Commodities (CCI), o Indicador de Momento, o Índice de Força Relativa (RSI), o Oscilador Estocástico e o Williams% R.
Os indicadores de atraso incluem as médias móveis e a divergência de convergência da média móvel (MACD).
Kuepper diz que o RSI e o MACD são usados para determinar a força de uma tendência para os pontos de entrada e as médias móveis são usadas para encontrar saídas porque são indicadores atrasados.
O próximo passo é construir seu sistema de negociação. Um componente chave é os dados. & ldquo; Porque o projetista do sistema deve usar um extensivo backtesting, o histórico de preços passado é essencial para a construção de um sistema de negociação, & rdquo; Kuepper diz.
Michael Browne, vice-presidente de Operações e ProphetX da DTN Market Access, concorda. "Sem dados sólidos, não importa quais indicadores você usa, ou quão sofisticado é o seu software, sua negociação não será bem-sucedida".
Esses dados podem ser integrados ao software de desenvolvimento de sistemas comerciais ou como um feed de dados separado. Os dados ao vivo são geralmente fornecidos por uma taxa mensal, enquanto os dados atrasados podem ser obtidos gratuitamente. Na DTN, o pacote básico custa US $ 50 por mês mais taxas de câmbio para dados em tempo real.
Tão importante quanto dados é software. Kuepper diz que os recursos comuns permitem que o trader coloque operações automaticamente e codifique um sistema de negociação. A colocação automática de negociações geralmente requer permissão do corretor e pode ser cara. Codificar um sistema de negociação envolve a implementação de regras para o seu sistema. Cada indicador que você usa tem um conjunto de parâmetros (regras) que você deve programar em seu software de negociação. Por exemplo, usa (MetaQuotes Language).
Às vezes, essa programação pode ser feita automaticamente por meio de uma interface gráfica do usuário. Isso permite que você crie regras sem aprender uma linguagem de programação. Aqui está um exemplo de um sistema de crossover de média móvel:
Se SMA (20) CrossOver EMA (13) entrar então;
Se SMA (20) CrossUnder EMA (13), em seguida, sair;
Um sistema de negociação é criado simplesmente digitando as regras na janela de código do seu software e salvando-as. O software gera automaticamente entradas e saídas.
& ldquo; Colocar o código em um sistema é um grande esforço, & rdquo; Browne diz. O sistema robusto médio pode ter até meio milhão de linhas de código. Embora possa demorar um pouco para codificar seu sistema, isso não é muito complicado. & ldquo; Muitas vezes, apenas ler o manual e experimentar deve permitir-lhe captar as noções básicas da linguagem que o seu software utiliza, & rdquo; Kuepper diz.
Também é importante reverter sua estratégia. & ldquo; O software de desenvolvimento de sistemas geralmente contém um aplicativo de backtesting simples que permite definir uma fonte de dados, inserir informações de conta e backtest por qualquer período de tempo com o clique de um mouse, & rdquo; Kuepper diz.
Após o backtest ser executado, é gerado um relatório que descreve os resultados. Isso inclui lucro, número de negociações malsucedidas / bem-sucedidas, dias consecutivos em baixa, número de negociações e um gráfico geral de desempenho.
Kuepper diz que o backtesting e o comércio de papel são essenciais para o desenvolvimento bem-sucedido de um sistema de negociação e o lembra de levar em conta as taxas e o slippage. & ldquo; Certifique-se de que você está usando a comissão real e conta com preenchimentos imprecisos. & rdquo; Super-otimização é outro perigo. “Não adapte o sistema a um ambiente de mercado muito específico; tente ser rentável em um ambiente tão amplo quanto possível, & rdquo; ele diz.
Seu sistema de negociação irá gerar entradas e saídas com base em suas regras que você pode entrar no mercado manualmente. A automação completa de sua negociação, onde seu sistema de negociação executa todos os seus sinais eletronicamente, é possível, mas é mais amplamente usada por traders profissionais e institucionais que podem arcar com o custo de US $ 1.400 por mês. Além do custo, seu corretor deve oferecer uma interface de programação de aplicativos para o seu sistema se conectar eletronicamente e ser capaz de se conectar a todas as trocas de mercados que você está negociando, e seu sistema deve ser robusto o suficiente para confiar no piloto automático.
Kuepper recomenda negociação manual até que você esteja confiante no desempenho e consistência do seu sistema.
& ldquo; Leva muito tempo para desenvolver um sistema comercial bem sucedido, e antes de aperfeiçoá-lo, você pode ter que suportar algumas perdas de negociação ao vivo para detectar falhas. O teste de retorno não pode representar perfeitamente as condições do mercado ao vivo e o comércio de papel pode ser impreciso, & rdquo; ele diz. & ldquo; Se o seu sistema perder dinheiro, volte para a prancheta e veja onde deu errado. & rdquo;
Câmbio de Moedas.
Este é um artigo de acompanhamento no nosso post introdutório Algorithmic Trading 101. Espero que você tenha entendido os conceitos básicos de Algorithmic Trading e seus benefícios. Agora, vamos nos preparar para construir seu próprio sistema de negociação a partir do zero. Este artigo descreveria todos os passos necessários para criar seu primeiro sistema Algorithmic Trading. Nós usaremos nossa ferramenta favorita Amibroker para criar o Algoritmo de Negociação.
Pré-requisitos:
Conhecimento elementar de análise técnica. Experiência prática em Amibroker e AFL Coding.
Confira nossa série tutorial Amibroker aqui.
Etapa 1: formule seu plano de negociação.
O primeiro passo seria fazer uma lista de verificação dos parâmetros com base nos quais você toma suas decisões de negociação. Esses parâmetros devem ser algo que possa ser formulado em um Algoritmo, evitando estritamente elementos de intuição ou especulação. Pode ser tão simples quanto decisões baseadas no tempo, como a compra de um determinado estoque no primeiro dia de cada mês, ou decisões baseadas em análises técnicas, como a fuga da Trendline, com volume crescente. Você também deve planejar seu valor de investimento para cada transação, prazo para negociação, bem como o seu stoploss e metas. Depois de ter formulado o seu plano, você deve validá-lo contra um monte de ações para ver se ele realmente funciona. Este passo é muito importante antes de você pular para os próximos passos. Se o seu plano funcionar por 50% do tempo, com uma taxa de Risco-Recompensa de pelo menos 1: 2, então é bom convertê-lo em um Algoritmo.
Etapa 2: converta sua ideia em um algoritmo.
Em seguida, você deve começar a escrever um código para o seu plano de negociação formulado. Um código nada mais é do que um monte de declarações através das quais o computador pode entender sua lógica de compra / venda. Nós usaríamos o Amibroker Formula Language (AFL) para escrever Algoritmo de Negociação. É uma linguagem de programação de alto nível e muito fácil de entender se você começar do básico. Até mesmo uma pessoa sem experiência em programação pode aprender AFL e evitar gastos desnecessários em AFLs caras e prontas. Confira este post para o tutorial da AFL do zero. Suponhamos que você negocie com base no cruzamento de média móvel exponencial no período de tempo diário. Você compraria uma ação quando 50 EMA cruzassem 200 EMA abaixo e vendesse quando 50 EMA cruzassem 200 EMA de cima. Por uma questão de simplicidade, consideremos que é uma estratégia apenas de compra. Abaixo está o código AFL simples para essa lógica.
É assim que parece quando aplicado no gráfico:
Passo 3: Backtest seu algoritmo.
Backtesting é um processo para validar o desempenho do seu Algoritmo em Dados Históricos. Isso é algo semelhante ao que você fez na Etapa 1 manualmente. Amibroker tem um mecanismo de backtest muito poderoso que pode fazer isso em segundos. Você só precisa importar dados históricos de seus scripts favoritos para o Amibroker. Confira este link para fazer o download dos dados intraday de 1 minuto para Nifty e Banknifty. A fim de entender o processo detalhado de backtesting na Amibroker, por favor, consulte o link abaixo da documentação oficial:
Para backtest esta estratégia de Crossover de EMA, usaremos o NSE Nifty como nosso scrip preferido, com o capital inicial de 200.000 rúpias. Digamos que compramos 2 lotes (150 nos) por transação. Uma vez que você backtest esta estratégia, você receberá um relatório detalhado que inclui o seu anual CAGR, Drawdown, Lucro Líquido / Perda% etc. Você pode entender vários parâmetros no relatório Amibroker Backtest aqui.
Riqueza Robótica.
Postado em 14 de outubro de 2016 por Kris Longmore.
Este post vem até você do Dr. Tom Starke, um bom amigo de Robot Wealth. Tom é um físico, desenvolvedor de quant e um experiente operador de algo, com grande interesse em aprendizado de máquina e computação quântica. Estou muito feliz que Tom esteja compartilhando seu conhecimento e experiência com a comunidade Robot Wealth. Para você, Tom.
Ao contrário da maioria das outras empresas, a negociação algorítmica tem a vantagem de fornecer um feedback quase instantâneo sobre o quanto você é bom em sua empresa. Para qualquer um que seja numericamente inclinado, essa é uma proposta muito atraente. Eu tenho visto artigos escritos sobre este assunto, mas eles nunca abordaram muitos dos problemas que eu encontrei em minha jornada. Neste post eu gostaria de falar sobre isso um pouco como uma inspiração ou talvez um impedimento para todas as pessoas que lêem isso e consideram fazer dinheiro dessa maneira.
Nada poderia ser mais surpreendente, um sistema que funciona sozinho e constantemente cuspia dinheiro para financiar estadias prolongadas em Bali, na América do Sul ou com sua mãe, se é isso que você procura. No entanto, como você deve ter adivinhado, não é assim tão simples, mesmo para os mais experientes especialistas em matemática - math-wiz ou gênio da programação. Primeiro de tudo, o comércio de algo é multidisciplinar por natureza. Isso torna muito divertido e desafiador ao mesmo tempo. Você tem que estar bem informado sobre áreas como ciências da computação, matemática, análise de dados e algumas finanças, embora eu tenha descoberto que as pessoas que entendem os primeiros assuntos normalmente aprendem rapidamente as finanças.
Talvez você possa pensar que a falta de conhecimento em algumas dessas áreas pode ser resolvida conhecendo as pessoas certas e se unindo a elas. Pode, mas pela minha experiência, as chances de sucesso não são grandes. Eu pessoalmente conheci três caras com extenso conhecimento de informática que se juntaram a traders institucionais para desenvolver ideias de negociação em sistemas automatizados - nenhum deles funcionou.
Porque isto é assim? Na minha experiência, os traders freqüentemente trabalham com análises técnicas e respondem a sinais de negociação, que para eles são “óbvios”, compram e vendem, e eles geralmente ganham bom dinheiro com isso. O problema aqui é que a consciência deles é muito bem sintonizada para ver os sinais relevantes que têm potencial e eles são quase cegos para os que estão lá, mas obviamente não fazem sentido. Na opinião deles, os sinais que eles usam funcionam 100%. Um computador, no entanto, não tem a capacidade de discernir os sinais que fazem sentido e os que não o fazem, apenas executam independentemente. Como resultado, o trader acha que o cara do computador cometeu erros no programa e o programador acha que as estratégias do trader não são boas e, finalmente, elas seguem seu próprio caminho.
Pegue uma instituição típica, um quant desenvolve um protótipo de seu sistema, diz o MATLAB, e o cara de TI o converte em C ++ para ser executado na plataforma do fundo. Um algoritmo bem projetado contém muitas sutilezas que o desenvolvedor provavelmente não entenderá exatamente e pequenos erros podem matar completamente o desempenho do sistema.
Estes são cenários comuns e eu tive o meu quinhão disso também. Eu estou pronto para o trabalho em equipe, mas a realidade é que antes que você possa terceirizar partes do seu projeto, você tem que entender isso muito bem.
Agora, digamos que você vem de um fundo quantitativo e você leu todos os livros, fez os exercícios, correu um monte de backtests e você está pronto para ir. Você começa a construir sua própria plataforma e percebe que há uma série de show-stoppers, como obter bons dados de mercado, dados históricos, conexões de corretores e afins. Esses problemas são mais significativos do que você pensa. A solução mais fácil é obter uma conexão da Bloomberg, mas ela tem um custo significativo. Além disso, um típico terminal Bloomberg não é realmente construído para executar algos sofisticados de processamento de números. Como sobre corretores interativos? Sim, pode funcionar, mas a sua API está longe de ser perfeita e os seus dados históricos são irritantemente cheios de erros e os seus dados de mercado também têm muitos sinais falsos, o que pode ser prejudicial para a sua estratégia. Tudo isso pode ser resolvido, mas confie em mim, não é fácil. Os pequenos detalhes criam a complexidade e leva tempo até para aprender sobre todas as armadilhas que podem surgir.
Mas aqui está a coisa: se isso fosse fácil, eu nunca teria entrado nisso porque a complexidade cria oportunidades. Eu gosto de aprender e gosto de resolver problemas, por isso é muito divertido. No processo eu aprendi mais do que durante todo o meu PhD de física ... o quão legal é isso?
Como você começa depende inteiramente de suas habilidades e preferências, mas permita-me dar algumas recomendações.
Primeiro de tudo, encontre o corretor de comissão mais baixo possível. Comissões são o maior assassino de uma boa estratégia. Um ponto base (1 por cento de 1 por cento) não parece muito, mas cada ponto de base extra de comissão que é adicionado ao seu comércio traz para você regimes de comércio totalmente diferentes. Mais comissão significa que você tem que esperar mais tempo para sair, suas estratégias são mais arriscadas e menos consistentes.
Em segundo lugar, não tente automatizar tudo imediatamente. Estratégias semi-automatizadas são realmente muito legais. O que isto significa é que sua máquina lhe fornece os sinais e você executa a execução manualmente (desde que você não esteja executando 46 trades por segundo). Implementar boas estratégias de execução automatizadas é realmente bastante complicado. O que você faz quando o seu negócio não é preenchido? Ou fica parcialmente preenchido? Ou você não pode sair no preço que você quer? Ou você vê que pode ser preenchido em breve, então é ok esperar um pouco? Ou você quer cancelar imediatamente? Se você fez isso manualmente, é muito mais fácil desenvolver algo que leve em consideração todos os cenários que você possa encontrar.
Com sistemas semiautomatizados, se você segue estoicamente o que sua estratégia lhe diz para fazer, pode funcionar bem, já que você não precisa se preocupar em também observar o mercado ao mesmo tempo. Nós todos conhecemos os caras com 6 telas na frente deles tentando entender o que acontece no mercado - eu nunca vi um grupo de pessoas mais ansioso, privado de sono e cheio de adrenalina do que aqueles. Muitas vezes, eles nem sequer têm uma estratégia e apenas reagem ao que consideram racional.
Ao desenvolver seu sistema, você perceberá que até mesmo o melhor sistema totalmente automatizado do mundo não permitirá que você se deite na praia, beba bebidas geladas e relaxe enquanto os comércios se aproximam e ganham dinheiro. Digamos que sua estratégia realmente funcione bem e gere lucro, mas, de repente, sua internet é interrompida ou seu servidor tem uma sobrecarga de energia. O seu sistema trava ou se reconecta suavemente e continua? Você tem um servidor de backup que é executado em sincronia e pode assumir (não é trivial)? Você pode de alguma forma fechar todas as suas posições abertas através de uma conexão de internet alternativa? Ou talvez você faça o caminho de Warren Buffet e deixe suas posições abertas pelos próximos 24 anos. E se a sua estratégia sofrer um grande drawdown? É esperado ou vai além do limite aceitável e você tem que reduzir as perdas? Você pré-determinou em que ponto você faz isso?
Isso nos leva a considerações sobre como você projeta seu sistema. Minha jornada e provavelmente a sua começarão com um design simples que apenas faz o que deve ser feito, mas de forma bastante lenta e ineficiente. Você segue em frente para executar os bits em paralelo, introduz o processamento de eventos complexos e acaba executando as diferentes partes do seu comerciante por meio de soquetes em servidores externos que trocam mensagens de forma assíncrona. Eu conversei com todos eles e aprendi uma boa quantidade de ciência da computação ao longo do caminho. Se você ainda não é um desenvolvedor experiente, recomendo começar de forma simples, em vez de criar um grande sistema imediatamente. A propósito, esse foi um dos meus primeiros erros humilhantes - tudo bem, todos nós aprendemos. Até agora, construí uma grande variedade de sistemas diferentes, do simples ao complexo, e cada um deles ajudou-me a compreender diferentes aspectos do campo.
Também é útil fazer backtest de execução simulada, uma vez que algumas estratégias sofrem significativamente quando o slippage, o impacto no mercado e outros fatores são levados em consideração. Muitas vezes, os testes para sinais de negociação, portfólio e execução podem ser executados separadamente, o que simplifica o processo e facilita a análise e a compreensão.
Um grande obstáculo, especialmente para pessoas que vêm da ciência da computação e finanças, é o processamento e a interpretação estatística dos dados de backtest que eles coletaram. Não é trivial e pode levar anos de experiência para ser bom nisso. Os dados contam histórias, aprendem a encontrar essas histórias nos números.
Se você chegou até aqui e está no início de sua jornada, pode se sentir um pouco sobrecarregado, mas pense desta forma: há todas essas coisas incríveis que você pode aprender no seu caminho que eventualmente o iluminarão. Se fosse fácil, todo mundo faria isso.
Se você me perguntar qual é o aspecto mais importante que você precisa para que isso funcione, eu diria que é uma visão. Visão do que você realmente quer alcançar. Isso, mais do que qualquer outra coisa, vai te puxar na direção certa. Na minha opinião sincera, não são as pessoas mais inteligentes que conseguem isso, são os visionários. Se você não tem certeza do que estou falando, sugiro que dê uma olhada nos livros de nomes como Charles Haanel, Napoleon Hill e Wallace D. Wattles. Se você é um cientista, analista financeiro, engenheiro de software ou cabeleireiro, você terá grandes lacunas em seu conhecimento e é preciso determinação para preenchê-los. Então, vá em frente, construa sua visão, coloque suas mangas e comece!
Комментарии
Отправить комментарий