Sistemas comerciais: projetando seu sistema - Parte 1.
A seção anterior deste tutorial analisou os elementos que compõem um sistema comercial e discutiu as vantagens e desvantagens de usar esse sistema em um ambiente comercial real. Nesta seção, construímos esse conhecimento examinando quais mercados são especialmente adequados ao comércio de sistemas. Em seguida, analisaremos mais detalhadamente os diferentes gêneros dos sistemas de negociação.
O mercado de ações é provavelmente o mercado mais comum para o comércio, especialmente entre novatos. Nesta arena, dominam grandes players, como Warren Buffett e Merrill Lynch, e as estratégias tradicionais de investimento em crescimento e valor são, de longe, as mais comuns. No entanto, muitas instituições investiram significativamente na concepção, desenvolvimento e implementação de sistemas de negociação. Investidores individuais estão se juntando a essa tendência, embora lentamente.
A grande quantidade de ações disponíveis permite que os comerciantes testem sistemas em muitos tipos diferentes de ações - tudo, desde estoques extraterrestre extremamente voláteis (OTC) até chips azuis não voláteis.
A eficácia dos sistemas de negociação pode ser limitada pela baixa liquidez de algumas ações, especialmente os problemas de OTC e rosa.
As comissões podem comer em lucros gerados por negócios bem-sucedidos e podem aumentar as perdas. OTC e ações de folhas cor-de-rosa geralmente incorrem em taxas de comissão adicionais.
Os principais sistemas de negociação utilizados são aqueles que procuram valor - isto é, sistemas que usam parâmetros diferentes para determinar se uma segurança é subvalorizada em comparação com o desempenho passado, seus pares ou o mercado em geral.
O mercado de câmbio, ou forex, é o maior e mais líquido mercado do mundo. Os governos, bancos e outras grandes instituições do mundo trocam trilhões de dólares no mercado cambial todos os dias. A maioria dos comerciantes institucionais no forex conta com sistemas de negociação. O mesmo vale para os indivíduos no forex, mas alguns comerciais com base em relatórios econômicos ou pagamentos de juros.
A liquidez neste mercado - devido ao enorme volume - torna os sistemas de negociação mais precisos e eficazes.
Não há comissões neste mercado, apenas se espalha. Portanto, é muito mais fácil fazer muitas transações sem aumentar os custos.
Em comparação com o valor das ações ou commodities disponíveis, o número de moedas para o comércio é limitado. Mas, devido à disponibilidade de "pares de moedas exóticas" - ou seja, moedas de países menores - o alcance em termos de volatilidade não é necessariamente limitado.
Os principais sistemas de negociação utilizados no forex são aqueles que seguem as tendências (um ditado popular no mercado é "a tendência é seu amigo"), ou sistemas que compram ou vendem em breakouts. Isso ocorre porque os indicadores econômicos geralmente causam grandes movimentos de preços ao mesmo tempo.
Os mercados de ações, divisas e commodities oferecem negociação de futuros. Este é um veículo popular para o comércio de sistemas devido ao maior valor de alavancagem disponível e ao aumento da liquidez e da volatilidade. No entanto, esses fatores podem cortar as duas formas: podem amplificar seus ganhos ou amplificar suas perdas. Por esse motivo, o uso de futuros é geralmente reservado para comerciantes avançados de sistemas individuais e institucionais. Isso ocorre porque os sistemas de negociação capazes de capitalizar o mercado de futuros exigem uma personalização muito maior, usam indicadores mais avançados e levam muito mais tempo para desenvolver.
Cabe ao investidor individual decidir qual mercado é mais adequado ao comércio de sistemas - cada um tem suas próprias vantagens e desvantagens. A maioria das pessoas está mais familiarizada com os mercados de ações, e essa familiaridade facilita o desenvolvimento de um sistema de negociação. No entanto, forex é normalmente pensado para ser a plataforma superior para operar sistemas de negociação - especialmente entre os comerciantes mais experientes. Além disso, se um comerciante decide capitalizar o aumento de alavancagem e volatilidade, a alternativa de futuros está sempre aberta. Em última análise, a escolha está nas mãos do desenvolvedor do sistema.
O método mais comum de negociação de sistema é o sistema de tendências. Na sua forma mais fundamental, este sistema simplesmente espera um movimento de preço significativo, depois compra ou vende nessa direção. Este tipo de bancos de sistemas na esperança de que esses movimentos de preços mantenham a tendência.
Sistemas médios móveis.
Freqüentemente usado na análise técnica, uma média móvel é um indicador que mostra simplesmente o preço médio de uma ação ao longo de um período de tempo. A essência das tendências é derivada dessa medida. A maneira mais comum de determinar a entrada e a saída é um cruzamento. A lógica por trás disso é simples: uma nova tendência é estabelecida quando o preço cai acima ou abaixo da média do preço histórico (tendência). Aqui está um gráfico que traça tanto o preço (linha azul) quanto o Mestre de 20 dias (linha vermelha) da IBM:
O conceito fundamental por trás deste tipo de sistema é semelhante ao de um sistema de média móvel. A idéia é que quando um novo alto ou baixo é estabelecido, o movimento do preço provavelmente continuará na direção do breakout. Um indicador que pode ser usado na determinação de breakouts é um simples Bollinger Band & reg; sobreposição. Bollinger Bands & reg; mostram médias de preços altos e baixos, e ocorrem breakouts quando o preço atende às bordas das bandas. Aqui está um gráfico que traça o preço (linha azul) e Bollinger Bands & reg; (linhas de cinza) da Microsoft:
Desvantagens de Trend-Following Systems:
Requisição de decisão empírica necessária - Ao determinar tendências, sempre há um elemento empírico a considerar: a duração da tendência histórica. Por exemplo, a média móvel pode ser nos últimos 20 dias ou nos últimos cinco anos, então o desenvolvedor deve determinar qual é o melhor para o sistema. Outros fatores a serem determinados são os altos e baixos médios em sistemas de breakout.
Lagging Nature - As médias móveis e os sistemas de breakout estarão sempre atrasados. Em outras palavras, eles nunca podem atingir o topo ou a parte inferior de uma tendência. Isso inevitavelmente resulta em uma perda de lucros potenciais, o que às vezes pode ser significativo.
Efeito Whipsaw - Entre as forças de mercado que são prejudiciais ao sucesso dos sistemas de tendência, este é um dos mais comuns. O efeito whipsaw ocorre quando a média móvel gera um sinal falso - isto é, quando a média cai apenas para o alcance, de repente, inverte a direção. Isso pode levar a perdas maciças, a menos que sejam utilizadas efetivas perdas de parada e técnicas de gerenciamento de risco.
Sideways Markets - Os sistemas de tendência seguinte são, por natureza, capazes de ganhar dinheiro somente em mercados que realmente fazem tendências. No entanto, os mercados também se movem de lado, ficando dentro de um certo intervalo por um longo período de tempo.
Pode ocorrer volatilidade extrema - Ocasionalmente, os sistemas que seguem a tendência podem experimentar alguma volatilidade extrema, mas o comerciante deve manter seu sistema. A incapacidade de fazê-lo resultará em falhas garantidas.
Basicamente, o objetivo com o sistema contra-tendência é comprar no menor baixo e vender no mais alto. A principal diferença entre este e o sistema de tendência seguinte é que o sistema contra-tendência não é auto-corretivo. Em outras palavras, não há tempo definido para sair de posições, e isso resulta em um potencial de downside ilimitado.
Tipos de sistemas de contra-tendência.
Muitos tipos diferentes de sistemas são considerados sistemas de contra-tendência. A idéia aqui é comprar quando o impulso em uma direção começa a desaparecer. Isso geralmente é calculado usando osciladores. Por exemplo, um sinal pode ser gerado quando os estocásticos ou outros indicadores de força relativa caem abaixo de certos pontos. Existem outros tipos de sistemas de negociação contra tendência, mas todos compartilham o mesmo objetivo fundamental: comprar baixo e vender alto.
Requisição de decisões e requisitos mecânicos - Por exemplo, um dos fatores que o desenvolvedor do sistema deve decidir é os pontos nos quais os indicadores de força relativa se desvanecem.
Pode ocorrer volatilidade extrema - esses sistemas também podem experimentar alguma volatilidade extrema e uma incapacidade de manter o sistema apesar dessa volatilidade resultará em falhas garantidas.
Desvantagem ilimitada - Como mencionado anteriormente, existe um potencial de downside ilimitado porque o sistema não é auto-corrigido (não há tempo definido para sair de posições).
Os principais mercados para os quais os sistemas de negociação são adequados são os mercados de ações, divisas e futuros. Cada um desses mercados tem suas vantagens e desvantagens. Os dois principais gêneros de sistemas de negociação são os sistemas de tendência e de contra-tendência. Apesar de suas diferenças, ambos os tipos de sistemas, em seus estágios de desenvolvimento, requerem uma tomada de decisão empírica por parte do desenvolvedor. Além disso, esses sistemas estão sujeitos a extrema volatilidade e isso pode exigir algum vigor - é essencial que o comerciante do sistema fique com seu sistema durante esses tempos. Na próxima parcela, examinaremos mais de perto como projetar um sistema de negociação e discutir alguns dos softwares que os comerciantes do sistema usam para facilitar sua vida.
Sistemas de Negociação: Construindo um Sistema.
Até agora, discutimos os componentes básicos dos sistemas de negociação, os critérios que eles devem atender e algumas das muitas decisões empíricas que um projetista deve fazer. Nesta seção, examinaremos o processo de construção de um sistema comercial, as considerações que precisam ser feitas e alguns pontos-chave a serem lembrados.
Dados - Como o projetista do sistema deve usar testes extensivos, o histórico de preços passados é essencial para a construção de um sistema de negociação. Esses dados podem ser integrados no software de desenvolvimento do sistema de negociação ou como um feed de dados separado. Os dados ao vivo geralmente são fornecidos por uma taxa mensal, enquanto os dados de idade podem ser obtidos gratuitamente.
Coloque automaticamente trades - Isso muitas vezes requer permissão do final do corretor porque uma conexão constante deve estar em vigor entre o software e a corretora. As negociações devem ser executadas imediatamente e a preços exatos para garantir a conformidade. Para que seu software faça negócios para você, tudo o que você precisa fazer é inserir o número da conta e a senha e tudo o resto é feito automaticamente. Por favor, note que usar esse recurso é estritamente opcional.
Depois que o teste de volta é executado, é gerado um relatório que descreve os detalhes dos resultados. Este relatório geralmente inclui lucro, número de negociações un / bem sucedidas, dias consecutivos baixos, número de negócios e muitas outras coisas que podem ser úteis ao tentar determinar como solucionar problemas ou melhorar o sistema. Finalmente, o software geralmente cria um gráfico que mostra o crescimento do investimento ao longo do período de tempo testado.
2. Design - O design é o conceito por trás do seu sistema, a maneira como os parâmetros são usados para gerar lucros ou prejuízos. Você implementa essas regras e parâmetros, programando-os. Às vezes, esta programação pode ser feita automaticamente através de uma interface de usuário gráfica. Isso permite que você crie regras sem aprender uma linguagem de programação. Aqui está um exemplo de um sistema de cross-over médio móvel:
Se SMA (20) CrossUnder EMA (13), então, saia;
O sistema é criado simplesmente digitando as regras na janela e salvando-as. As referências para as diferentes funções disponíveis (por exemplo, osciladores e tais) podem ser encontradas clicando no ícone do livro. A maioria dos softwares terá uma referência similar disponível no próprio programa ou em seu site. Depois de criar as regras desejadas e codificar o sistema, você simplesmente salva o arquivo. Então, você pode usá-lo selecionando-o na tela principal.
Em que mercado eu quero trocar? Que período de tempo devo usar? Qual a série de preços que devo usar? Qual subconjunto de ações devo usar para testar?
Tenha em mente que os sistemas de negociação devem ser consistentemente lucrativos em muitos mercados. Ao personalizar o período de tempo e as séries de preços demais, você pode manchar os resultados e produzir resultados não característicos.
Execute vários testes alternativos em diferentes períodos de tempo e certifique-se de que os resultados sejam consistentes e satisfatórios.
5. Repetir - Repetição é necessária. Continue trabalhando no sistema até que você possa obter um lucro consistente na maioria dos mercados e condições. Sempre há eventos imprevistos que ocorrem assim que um sistema é atualizado. Aqui estão alguns fatores que muitas vezes causam resultados negativos:
Custos de transação - Certifique-se de que você está usando a comissão real, e alguns extras para responder a preenchimentos imprecisos (diferença entre preços de lances e pedidos). Em outras palavras, evite o deslizamento! (Para rever o que é e como ocorre, veja a seção anterior deste tutorial.)
Estas seis etapas fornecem uma visão geral de todo o processo de construção de um sistema comercial. Na próxima seção, construiremos esse conhecimento e analisaremos mais detalhadamente a solução de problemas e a modificação.
Construindo um sistema de comércio
Building Trading Systems.
CHAVES PARA NEGOCIAÇÃO SUCEDIDA.
Não, as chaves do sucesso não são nossos produtos, nem os outros. Em vez disso, para ser um comerciante de sucesso que você precisa.
um sistema de negociação com expectativa rentável, princípios sólidos de gerenciamento de dinheiro, a força psicológica para negociar de forma consistente e capitalização adequada.
Contrariamente à crença popular, seu sistema comercial básico só precisa ser modestamente lucrativo. Um esquema de gerenciamento de dinheiro adequado projetado para controlar seu "tamanho da aposta" pode expandir esses magros lucros substancialmente. Além disso, uma vez que a natureza humana tende a obter lucros muito cedo e deixar as perdas correrem demais, você precisa estar familiarizado com o mercado e não ser emocionalmente apanhado e, então, ter medo de seguir as recomendações do seu sistema comercial.
Portanto, nós não oferecemos esquemas get-rich-quick. Eles não trabalham. Nem nos insultamos com sugestões de que, se uma empresa de gerenciamento de capital de bilhões de dólares se encaixasse diretamente em Wall Street com uma vasta instalação informática e dezenas de PhDs podem fazer milhões usando o produto X, então você também. Você provavelmente não vai.
Nem podemos prometer que os mercados são tão ineficientes que é fácil aproveitar os lucros. Não é, simplesmente porque você estará competindo com outros jogadores muito inteligentes, que querem o seu dinheiro.
Por outro lado, oferecemos ferramentas poderosas e produtos educacionais para ajudar os investidores individuais, como você, a conseguir um sistema comercial eficaz. As ferramentas Jurik são compatíveis com muitos produtos de software. Nossos clientes satisfeitos concordam!
SISTEMAS DE NEGOCIAÇÃO PRÉ-CONSTRUÍDA.
É um erro assumir que os sistemas comerciais descritos em livros, revistas ou em seu lixo eletrônico diário são lucrativos. Eles precisam ser testados durante um período prolongado de dados históricos (o suficiente para pelo menos 500 negociações). A melhor prova única que você pode aplicar a qualquer estratégia comercial para venda é esta:
mostrando os mais recentes 200 consecutivos.
Trades chamados pela estratégia?
Se o vendedor não está disposto a fazê-lo, vá embora.
Se você for fornecido com a declaração de um corretor, traça a curva de equidade e veja se você pode lidar (financeiramente e emocionalmente) com quaisquer trocas de perdas. Além disso, tente obter um diagrama de dispersão que contenha a excursão adversa máxima de todas as trocas comerciais. Às vezes, um comércio primeiro perde grande antes de se tornar rentável. Você consegue lidar com essas situações corretamente?
Quando o mercado altera seu comportamento, o desempenho do sistema pode se degradar em um perdedor. Você terá que pagar $ $$ adicionais para atualizações periódicas?
Finalmente, quanto você espera aprender sobre a negociação de um sistema que você não pode analisar nem modificar?
Acreditamos que você é melhor fazer seu próprio sistema comercial do que comprar um. Seu sistema será projetado em torno de seus recursos financeiros e zona de conforto psicológico. E você poderá modificá-lo de acordo com as mudanças nas condições do mercado. Por último, mas não menos importante, você saberá exatamente o quão bem pode ser esperado para executar.
do System Building.
Considere obter software de gráficos de mercado compatível com as ferramentas Jurik.
O próximo passo é adquirir nosso JMAadd-in. A JMA tem o maior número de usos, preços de suavização e outros indicadores técnicos com muito pouco atraso. Os usuários encontraram novas aplicações ao explorar as linhas ultra-suaves da JMA.
Nossas outras ferramentas de negociação avançadas, CFB, VEL e RSX, aprimoram ainda mais o design do sistema de negociação, oferecendo novas maneiras de medir o comportamento de ação de preço. CFB mede a duração da tendência do mercado (nenhum indicador clássico faz isso). A VEL oferece uma medida ultra-suave do impulso do mercado, sem mais atraso do que o indicador de momentum clássico. RSX é a versão Jurik do RSI clássico, exceto que RSX também é ultra-suave. Quando você vê RSX, você nunca vai querer usar o RSI novamente!
Uma vez que você se sinta confortável com a construção de sistemas de negociação usando indicadores concorrentes (preço) e atrasados (clássicos), agora você deseja expandir suas capacidades adicionando indicadores LEADING. Claro, todos os indicadores líderes populares são inúteis, já que o mercado já descontou as informações que eles oferecem. Em vez disso, você precisará criar seus próprios indicadores de liderança.
Um indicador avançado deve prever algum aspecto do comportamento do mercado. Atualmente, são necessários procedimentos de modelagem não-lineares sofisticados (como redes neurais). Para começar, recomendamos que você adote e se familiarize com o aplicativo de planilha Excel, pela Microsoft. Em seguida, adquira um complemento de rede neural ao Excel. Existem vários no mercado.
Depois de se familiarizar com o desenvolvimento da rede neural, obtenha experiência criando indicadores avançados e usando nossas ferramentas de pré-processamento para o MS Excel.
Quatro qualidades de grandes indicadores técnicos.
Quase todos os indicadores técnicos envolvem tomar alguma forma de uma média de valores históricos para reduzir o ruído do mercado, que aparece como jitter de alta velocidade. Os analistas normalmente ignoram o jitter do ruído porque não tem tendência nem padrões repetitivos. Consequentemente, a maioria das médias móveis tem um "comprimento" parâmetro que efetivamente controla a suavidade aparente do indicador e, de maneira inversa, sua precisão. Ou seja, quanto mais suave um filtro se torna, menos reflete com precisão a ação do mercado local.
Isso faz sentido, uma vez que o usuário pode definir jitter para qualquer ação que tenha menos de N barras. Portanto, vemos o jogador do mercado tentando aplicar apenas a suavidade suficiente para filtrar o ruído sem remover a estrutura importante que é relevante em seu período de tempo desejado. Em resumo, .
faz uma compensação entre suavidade e precisão.
A precisão pode ser medida de várias maneiras: robustez, superação, pontualidade e proximidade. Estas medidas serão descritas no contexto de um hipotético filtro de média móvel.
Simplificando, você quer um filtro (por exemplo, média móvel) para produzir uma versão livre de ruído do sinal original, pelo que a curva geral não é maior nem menor do que a série original. Um resultado semelhante ao que você produziria quando fosse dada uma caneta e manualmente "rastreada através de & quot; a importante ação do mercado.
Todos os indicadores técnicos que examinam rigorosamente os valores de dados passados (ou seja, não olhe para o futuro) são chamados de "causal". Estes são os únicos disponíveis para você ao negociar o mercado em tempo real. Todos os filtros causais têm um problema fundamental: eles ficam atrás da série temporal original. Lag em seus indicadores técnicos apenas serve para atrasar o que você precisa ver agora. Este é um problema crítico porque o atraso excessivo e os negócios tardios podem reduzir significativamente os lucros.
Idealmente, você gostaria que um sinal filtrado fosse liso e livre de atraso. No entanto, para todos os filtros causais, maior suavidade produz maior atraso e não há "livre de penalidade" maneira de contorná-lo. Alcançar a suavidade sem adicionar atraso significativo ou outras idiossincrasias indesejadas surpreendeu os analistas financeiros, bem como pessoas de processamento de sinais há anos. Nós, na Jurik Research, compreendemos muito bem a natureza do atraso e empregamos fórmulas proprietárias que abordam essa questão fundamental.
Uma abordagem comum para reduzir o atraso é adicionar alguma "inércia" na fórmula, permitindo que um filtro siga as tendências mais de perto sem sacrificar a suavidade. No entanto, a penalidade paga é quando um mercado inverte rapidamente a direção. A inércia do filtro impede que ele mude rapidamente de direção, e continua a superar por algum tempo antes de inverter a direção. Quanto mais inércia você aplicar, maior será o excesso. . E isso pode criar um problema real.
Alguns negócios são desencadeados quando uma média móvel do preço atravessa um limite especificado pelo usuário. Por exemplo, suponha tendências de preços em direção a um limite, mas inverte a direção apenas a tempo de não quebrar o limite. Um filtro com muita inércia ultrapassará e reduzirá o limiar, mesmo que o preço não acontecesse. Este falso gatilho pode produzir um comércio indesejável.
Para remover o ruído em uma série temporal, filtros comuns usam técnicas matemáticas que existem há anos. A teoria subjacente em quase todos os casos pressupõe que as mudanças nos preços de mercado tenham uma distribuição normal (gaussiana). Isso pode ser verdade para o ruído em seu gravador de cassetes ou gravador de cassetes, mas não para o mercado. As lacunas nos preços de mercado ocorrem com mais freqüência, por ordens de grandeza, do que a curva Gaussiana sugere. Conseqüentemente, os filtros comuns respondem muito aos choques de preços.
Os jogadores precisam de um filtro que seja robusto contra choques de preços. Isso exige um tipo especial de processamento de sinal chamado "não-linear" filtragem. Nossa ferramenta principal, JMA, é um filtro e pode lidar com choques de preços melhor do que qualquer outra média móvel disponível no mercado hoje. Na verdade, quanto maior a diferença, a superioridade da JMA mais óbvia torna-se evidente.
Jurik Research alcançou esses resultados pelo primeiro desenvolvimento e teste de algoritmos no MATLAB, a escolha do engenheiro para simulação de software. Tentamos evitar fazer quaisquer suposições sobre o sinal que está sendo processado, além de ser uma caminhada aleatória de mudanças de preços acumuladas Cauchy (não Gaussian!). Desta forma, os algoritmos não podem ser enganados pela ação atípica do mercado. Em seguida, deixamos os testadores beta qualificados procurarem problemas. Finalmente, depois de disponibilizar cada produto.
pessoa que é a primeira a denunciar qualquer específico.
erro em nosso software ou documentação.
Na Jurik Research, não há substituto para a excelência.
Sequência para construção avançada de sistemas.
Se alguns humanos podem negociar consistentemente bem, então por que não pode um computador? Por que não pode ser seu computador? Sombras de inteligência artificial, não ouvimos essas perguntas antes? A Inteligência Artificial, independentemente da sua definição formal (se alguma vez teve alguma), se traduz em trabalhos difíceis, e muitas vezes infrutíferos. Persistência paga, no entanto. A metodologia estruturada e a experimentação sistemática são o modus operandi recomendado.
Nós definimos um sistema avançado como aquele que inclui algum aspecto de um indicador líder, o que implica que a previsão está envolvida. Os indicadores principais podem ser projetados para quase qualquer coisa, mas preferimos usá-lo para prever uma faixa de preço superior e inferior, bem como futuros valores de MACD. O desenvolvimento adequado de indicadores líderes exige o pré-processamento com WAV e DDR e a modelagem com um programa de rede neural. Por fim, tudo isso precisa ser realizado de forma sistemática.
Para realizar isso, projetei este diagrama de fluxo para ver o quadro geral. Subdivide o esforço de desenvolvimento do sistema comercial em várias etapas. Aqui está uma revisão em vários estágios do nosso processo avançado de construção de sistemas. Você pode alterar qualquer aspecto dele para atender às suas necessidades específicas.
Aqui está uma descrição de como eu construo meus próprios sistemas de negociação. O fluxograma mostra seis etapas do desenvolvimento do sistema de negociação:
Selecionar dados explicativos (etapa de coleta) Criar indicadores de baixo atraso (etapa de pré-processamento) Criar indicadores avançados (estágio de modelagem) Construir seu sistema comercial (etapa estratégica) Voltar seu sistema comercial (etapa de verificação 1) Negociar com um corretor simulado (etapa de verificação 2) ESTÁGIO 1.
Isso envolve a tarefa irrelevante de coletar e verificar dados financeiros. Isso não ajuda a auto-imagem do seu sistema para dar-lhe preços históricos salpicados de espaços em branco e zero. Eyeball para todos os problemas.
A pesquisa mostrou que se você converter dados de preço para o LOG (logaritmo) de dados de preços, as estratégias funcionarão melhor durante um período mais longo. Isso ocorre porque os dados de preços agora são expressos em uma relação multiplicativa um com o outro, em vez de serem aditivos, e isso tende a ser preservado à medida que os preços mudam a escala ao longo do tempo.
Esta etapa envolve o pré-processamento de dados. Resumidamente, é aqui que extraímos indicadores significativos de dados financeiros brutos. O bom pré-processamento faz a próxima etapa (modelagem) funcionar sem problemas. Os modeladores profissionais percebem a importância deste passo e concentram a maior parte de sua energia aqui. No entanto, para o amador tem o mesmo apelo que lavar a roupa.
Determine o "horizonte de previsão" ideal para as séries temporais a serem previstas. Por exemplo, a distância ótima para prever no futuro ao usar barras diárias de T-Bonds de 30 anos é de 5,5 dias. Esse valor varia de mercado para mercado e o método para o cálculo é explicado no meu livro Financial Forecasting and Neural Networks.
Determine a quantidade de dados históricos necessários para fazer uma previsão ÚNICA. Eu me refiro a essa quantidade de tempo histórico como o "horizonte de lookback" e seu tamanho é tipicamente 4 vezes o horizonte de previsão. Por exemplo, se minha previsão for para prever 5.5 barras para o futuro, meu horizonte de lookback (L) para cada previsão terá que ser de 22 barras. (L = 22) Todos os indicadores precisam considerar a atividade de pelo menos as barras L mais recentes.
Selecione os dados explicativos apropriados, como altos, baixos, volume, etc. Eu encorajo você a investigar os dados de preço de pré-suavização primeiro com o JMA, criando assim "proxies" pelo preço bruto. Em seguida, crie indicadores relevantes (RSX, VEL, CFB, canais, JMA-MACD, etc.) aplicando-os aos proxies JMA, em vez dos dados de preço bruto. Defina o & quot; length & quot; parâmetro de seus indicadores para que o número de barras consideradas por cada fórmula seja aproximadamente o horizonte de lookback (L).
Certifique-se de que cada coluna de valores de indicador se assemelhe a um oscilador de média zero, padronizado (ou seja, série Z-score), e não é uma caminhada aleatória (por exemplo, preços brutos do mercado). Isso ocorre porque uma caminhada aleatória finalmente entrará em um intervalo que o modelo não viu durante o desenvolvimento, induzindo falha.
Aplique WAV aos indicadores acima, para comprimir os valores L mais recentes de cada indicador em um número muito menor de valores. Por exemplo, o WAV pode comprimir os 73 valores mais recentes de um indicador em apenas 13, uma compressão de 82%! Ao construir modelos de previsão, é importante reduzir o número de variáveis de entrada tanto quanto possível, de preferência sem perder informações valiosas no processo.
Reúna os valores de tempo comprimidos de cada indicador (ou seja, a saída do WAV) em uma matriz (uma coluna por indicador) e aplique DDR. Este procedimento reduz o número de colunas na matriz extraindo toda a redundância entre as colunas. O resultado é uma matriz com muito menos colunas, todas as colunas são mutuamente não correlacionadas (cada coluna está carregando informações diferentes) e pouca ou nenhuma informação foi perdida no processo.
Neste ponto, seus dados são temporariamente e espacialmente compactados. Se seu modelo tiver que receber os 73 valores mais recentes de cada um dos 10 indicadores sem compressão espaço-temporal, seu modelo de previsão examinaria uma matriz de entrada de 730 valores para cada previsão. No entanto, após a compressão espaço-temporal, a nova matriz provavelmente seria 13 valores para cada uma de apenas 4 colunas, apenas 52 valores totais. Isso representa uma compressão final de 93% !!
O Stage 3 é onde você consegue brincar e aprender sobre ferramentas de modelagem sexy, como ARIMA, sistemas especializados, algoritmos genéticos e redes neurais. Normalmente, o novato esquecerá completamente o estágio 2 e passará meses tentando fazer tudo acontecer no estágio 3. Isso leva a queixas de que a rede neural [expletiva excluída] é cérebro-morta.
Escolha o que deseja que o modelo preveja. Mantenha-o simples, como estimar o MACD cinco barras, ou estimar resistência e suporte (em relação ao preço médio atual) 10 barras. Evite as tentativas de previsão dos preços do mercado bruto (a menos que você seja realmente bom para prever variáveis pseudo-aleatórias). Certifique-se de que a sua coluna de valores-alvo de previsão se assemelhe a um oscilador padronizado médio zero (ou seja, série Z-score), e não é uma caminhada aleatória (por exemplo, preços do mercado bruto). Isso ocorre porque uma caminhada aleatória finalmente entrará em um intervalo que o modelo não viu durante o desenvolvimento, induzindo falha.
Alimentar a matriz comprimida que você criou no estágio 2 e os dados de destino para o seu modelo. Verifique todos os modelos com dados que não foram usados durante o desenvolvimento. Como regra geral, para cada variável de entrada (independente) alimentada em seu modelo, você precisará de dados de treinamento e verificação suficientes para suportar pelo menos 100 previsões. Assim, se o seu modelo receber 54 variáveis de entrada por previsão, você precisa de dados suficientes para suportar 100 * 54 ou 5.400 previsões durante a criação e verificação do modelo.
Alimentar a matriz comprimida que você criou no estágio 2 e os dados de destino para o seu modelo. Verifique todos os modelos com dados que não foram usados durante o desenvolvimento. Como regra geral, para cada variável de entrada (independente) alimentada em seu modelo, você precisará de dados de treinamento e verificação suficientes para suportar pelo menos 100 previsões. Assim, se o seu modelo receber 54 variáveis de entrada por previsão, você precisa de dados suficientes para suportar 100 * 54 ou 5.400 previsões durante a criação e verificação do modelo.
A informação sobre diferentes paradigmas para modelagem de indicadores avançados é fornecida mais abaixo nesta página. (Continue lendo, você chegará lá).
Esta etapa é para o desenvolvimento da lógica de negociação. É a mais "diversão" parte do sistema de construção, desde que você saiba o que está fazendo. Existem muitos livros sobre esse tema. Com relação ao uso de modelos de previsão, aqui estão algumas dicas:
Crie regras para gerenciamento de risco e dinheiro. Existem livros para ajudá-lo com esse assunto.
Uma técnica inteligente de gerenciamento de riscos é criar vários modelos treinados de forma robusta (por exemplo, redes neurais) para fazer a mesma previsão. Quando todos os modelos estão em forte concordância, aumente seu risco. Quando eles estão em forte desacordo, abaixe seu risco.
Durante o teste de atraso, examine as estatísticas, como o retorno da conta (considerando a redução máxima), gráficos de excursão adversos máximos, simulações de Monte Carlo da meia-vida fiscal esperada, etc. Ao fazer isso, procure os maus negócios do sistema e evite modificações de design.
Considere quantas variáveis, constantes e linhas de código que você está ajustando (otimizando). Cada um é um grau de liberdade com o qual você está brincando. Quando fazer backtest, use dados de mercado suficientes para que o sistema crie 100 trocas por cada grau de liberdade. Assim, se você estiver otimizando 5 constantes e ajustando 4 linhas de código, as chamadas de verificação para cada execução para produzir pelo menos 100 * (4 + 5) ou 900 negociações.
Esteja atento sobre otimizar os sistemas de negociação. O conjuramento não disciplinado e excessivo de código pode levar à lógica de espaguete sobre otimizada, um pesadelo para manter. Além disso, muita otimização renderá um ótimo desempenho em seu conjunto de dados atual, mas um desempenho miserável em dados futuros. Nosso livro Financial Forecasting and Neural Networks e a banda de áudio Space, Time, Cycles e Phase oferecem uma explicação desse fenômeno.
para uma explicação desse fenômeno. Um sistema que comercializa bem dados históricos e dados futuros é mais desejável.
Durante a troca de papel ao vivo, mantenha-se atento para a rapidez com que o sistema se degrada. Isso sugere a frequência com que os modelos precisam ser atualizados. Também pode sugerir fraca lógica de negociação.
Um exemplo de um sistema de comércio aprimorado de redes neurais que funcionou bem, sem reconversão, durante muitos meses após o seu desenvolvimento, é descrito na edição de dezembro de 1996 da revista Futures. Embora o procedimento de teste e verificação utilizado pelo autor não tenha sido o melhor, o resultado provou ser lucrativo no entanto.
Você realmente não precisa otimizar o descarte de seu sistema comercial, desde que você empregue um bom gerenciamento de riscos. Ele aborda a questão: quanto você está colocando em risco em um comércio versus o lucro esperado para assumir esse risco? Como um jogador de poker especialista, com um bom gerenciamento de dinheiro você avalia o quanto investir e quanto você está disposto a perder em cada jogo. Portanto, o princípio básico da gestão do dinheiro é o gerenciamento de riscos. Abertura de posições com risco coberto é fundamental para negociação bem-sucedida. Em outras palavras, gerencie o risco primeiro e os lucros seguirão quando sua aposta for correta. É incrível o quanto essa disciplina pode melhorar a rentabilidade geral do seu sistema. Durante um período de anos, esta técnica pode melhorar os lucros comerciais mais do que dez vezes!
Alguns livros sobre gerenciamento de dinheiro estão listados AQUI.
Principais indicadores e modelagem.
Por que os principais indicadores são difíceis de fazer.
são difíceis de fazer.
O "Compósito dos Principais Indicadores Econômicos" é avaliado pelo Federal Reserve e investidores de longo prazo pelo seu potencial de previsão. Em contrapartida, os investidores especulativos preferem usar indicadores técnicos e fundamentais com potencial de previsão de curto prazo. O problema é que quase todos os indicadores comumente usados (MACD, ADX, CCI, RSI, etc.) ficam atrás e resumem o que ocorreu, e não o que ocorrerá.
A raridade de bons indicadores de curto prazo nos diz que eles são difíceis de produzir, e mais importante, porque poucos investidores os exploram, esses indicadores podem gerar uma vantagem comercial significativa. Mas por que eles são tão raros? O que é tão difícil de criar um indicador avançado de curto prazo?
"Se todos os economistas fossem colocados de ponta a ponta,
eles ainda apontariam em todas as direções. & quot;
- Arthur H. Motley.
O motivo da sua raridade deve-se, em parte, à natureza dos mercados. No passado, quando a negociação não era dominada por computadores, a maioria dos analistas financeiros usava a teoria macro e microeconômica, bem como a clássica "linear" técnicas de modelagem. Os modelos de mercado tradicionais, baseados em teoria e técnicas lineares e seus pressupostos simplificadores, tornam as previsões cada vez mais imprecisas a cada ano. Os analistas de Wall Street perderam consistentemente todos os principais pontos de viragem do mercado nos últimos 30 anos. Por exemplo, seis meses antes da recessão de 1990, 34 dos 40 economistas concordaram que "a economia provavelmente evitará uma recessão". Além disso, apenas duas semanas antes do enorme mercado de touro em 1991, o consenso desses 40 economistas era: "a economia diminuirá nos próximos seis meses".
Os comerciantes e os investidores que usam sistemas baseados em análises clássicas também sofrerão perdas sérias quando as condições do mercado mudarem muito rapidamente para que seus modelos "compreendam".
Jurik Research acredita que os problemas com os modelos de mercado tradicionais decorrem de seus pressupostos, que dividi em três categorias.
Os modelos lineares funcionam melhor quando suas variáveis de entrada são independentes (não correlacionadas entre si). Variáveis de entrada altamente correlacionadas podem levar a modelos que parecem funcionar bem em dados históricos, mas que falharão miseravelmente em novos dados. Tais interdependências existem (por exemplo, a relação inversa entre commodities e títulos) e os modelos que não conseguem explicar esse fato terão problemas.
Hoje, o mercado se move mais rápido e mais caótico, exibindo relações desconexas e não-lineares entre as forças do mercado.
Para manter a vida simples, os analistas assumem que todos os comerciantes e investidores são avessos ao risco, racionais e reagem de forma semelhante. Na realidade, comerciantes de piso, comerciantes de curto e longo prazo, gestores de fundos, hedgers, comerciantes de programas e fabricantes de mercado usam diferentes níveis de risco e reagem em diferentes prazos.
Claramente, precisamos de uma nova família de modelos que possam simular relações não-lineares e jogadores pensando em diferentes prazos. Conseqüentemente, os esforços para encontrar e explorar nichos rentáveis nos mercados estão precedendo técnicas clássicas para métodos comerciais mais poderosos. Novas ferramentas que usam métodos de inteligência artificial estão aumentando em popularidade. Essas ferramentas incluem redes neurais e algoritmos genéticos.
Agora que versões fáceis de usar de ambos os paradigmas estão atualmente disponíveis como complementos para o Microsoft Excel, o público está rapidamente se aproximando: não é tão difícil, afinal.
Eles realmente funcionam?
O QUE É UMA REDE NEURAL?
Uma rede neural (ou NN) é composta por um grande número de elementos de processamento altamente interligados (neurônios) trabalhando em uníssono para resolver problemas específicos. Cada elemento executa uma fórmula matemática, cujos coeficientes são "aprendidos" quando dados exemplos de como o NN deve responder a vários conjuntos de dados. As aplicações incluem reconhecimento ou classificação de padrões de dados.
Durante um "treino" sessão, o NN produz uma coleção de funções matemáticas não-lineares simples que se alimente mutuamente aos valores numéricos de uma maneira que vagamente se assemelha à atividade das células cerebrais neurais. A interação entre os neurônios pode tornar-se tão complexa que esse conhecimento das fórmulas matemáticas oferece pouca ou nenhuma percepção da "lógica global" do modelo. Conseqüentemente, enquanto a rede neural funcionar bem, seu usuário raramente se preocupa em saber quais as equações exatas estão dentro.
Tenha cuidado para não confundir as redes neurais (NN) com outro paradigma de inteligência artificial chamado sistemas especializados (ES). Os programas ES são projetados para imitar o pensamento racional, conforme descrito por especialistas. No entanto, se o especialista não puder expressar sua lógica de maneira confiável, as decisões corretas, o paradigma ES não pode ser efetivamente empregado. Em contraste, um NN não está preocupado com a lógica humana emulada. Um NN simplesmente tenta mapear a entrada numérica para os dados de saída. A crença equivocada de que os paradigmas NN e ES são semelhantes conduz inevitavelmente ao argumento incorreto de que, se os modelos ES funcionam mal, então os modelos NN também. Felizmente, os modelos NN estão funcionando bem no mundo real.
APLICAÇÕES DE REDE NEURAL.
No mundo comercial, as redes neurais estão sendo utilizadas.
gerenciar o risco do portfólio avaliar o crédito de crédito risco detectar fraude do cartão de crédito prever vendas de chips de batata detectar células de sangue insalubre otimizar o horário de agendamento do trabalho previsão atividade do mercado financeiro otimizar laminação a frio de chapa metálica remover ecos de telefone irritantes determinar preços ótimos para mercadorias detectar explosivos dentro das bagagens nos aeroportos prevêem resultados de novas fórmulas para o plástico QUAL É SEU PAPEL EM UM SISTEMA DE NEGOCIAÇÃO?
Não espere que um NN faça todo o trabalho para você e produza sinais Buy / Sell. NNs devem ser acoplados à análise técnica tradicional, e os melhores resultados vêm de comerciantes experientes. Isso porque eles entendem quais indicadores de mercado são mais significativos e também como melhor interpretá-los. Portanto, é melhor projetar um NN para produzir indicadores técnicos significativos, e não um "Buy / Sell & quot; cálice Sagrado.
O fluxograma mostra seis etapas do desenvolvimento do sistema de negociação. As redes neurais são tipicamente usadas no terceiro, ou no estágio MODELING. Nesta fase, as redes neurais são treinadas para modelar algum aspecto do mercado, para classificar as condições atuais ou futuras do mercado, informando ao investidor quando entrar ou sair do mercado. Ao prever as condições futuras, são tecnicamente um "indicador principal".
ELES SÃO FÁCEIS DE USAR ?
Existem muitos pacotes de redes neurais disponíveis comercialmente. Muitos interagem com o ambiente Microsoft Excel.
UMA DOSE DE REALISMO. . .
Como nossos padrões de integridade são muito altos, com o risco de perder uma venda, nos sentimos obrigados a mencionar o seguinte. Não implicamos que o desenvolvimento de uma rede neural é um suporte fácil de uma noite. Isso levará tempo, e nem todo mundo tem tempo para fazê-lo. Nem é uma rede neural por si só um sistema de comércio. O desenvolvimento adequado do sistema ainda requer o esforço humano usual, incluindo:
Selecionando a melhor informação Indicadores de construção e teste Interpretando os resultados Decidindo se deve ou não comercializar Decidir quanto investir (gerenciamento de dinheiro)
Os detalhes sobre questões e considerações ao começar é fornecido neste relatório, apresentado por William Arnold, um autor contribuidor para The Journal of Intelligent Technologies.
Por fim, surgem dúvidas sobre o quanto um comerciante deve confiar em um modelo NN. Será difícil confiar na decisão do seu computador de comprar quando o medo em sua mente gritar e vender! Vender AGORA! & Quot; No entanto, na conferência após a conferência, ouvimos os usuários comentando que teriam ganhado mais dinheiro se não tivessem tentado superar e vetar as decisões do seu sistema. Afinal, todo o propósito de construir um sistema artificialmente inteligente é evitar os mesmos negócios que a multidão, que, em média, perde dinheiro no mercado.
ALGUMAS HISTÓRIAS DE SUCESSO?
Sim, muitos. Uma empresa de gerenciamento de dinheiro trabalhou intensamente com redes neurais desde 1988. Eles usam 3000 redes neurais, uma para cada estoque que comercializam. Eles usam redes neurais e algoritmos genéticos para prever separadamente o comportamento de ações individuais. Embora as recomendações de "peritos" reduzem substancialmente a sua seleção, são refinados com o auxílio de análise de portfólio, na tentativa de limitar a superexposição a qualquer estoque ou setor. Sua pesquisa pagou bem como estavam, em um ponto, gerenciando meio bilhão de dólares.
Outras instituições que implementaram sistemas operacionais de previsão neural incluem Citibank, Nikko Securities, Morgan Stanley, Dai-ichi Kanyo Bank, Nomura Securities, Bear Stern e Shearson Lehman Hutton. A Advanced Investment Technologies (AIT), em Clearwater, Flórida, possui um dos registros mais longos usando redes neurais.
Aqui estão alguns artigos sobre redes neurais para aplicações financeiras que você provavelmente pode encontrar em uma biblioteca:
"Training Neural Nets for Intermarket Analysis", Futures, agosto de 1994 "Como prever os Indicadores do futuro hoje", Futuros, maio de 1996, "Going Fishing With A Neural Network", Futures Magazine, setembro de 1992, Previsão de T-Bill Taxas com uma Rede Neural, & quot; Análise Técnica de Estoques e Mercadorias, maio de 1995 "Usando Redes Neurais para Análise de Intermarket", Análise Técnica de Estoques e Amostras, Commodities, Nov. 1992 "Developing Neural Network Forecasters For Traders", Análise Técnica de Stocks & amp; Commodities, abril de 1992, "Uma abordagem da rede neuronal para Previsão de Distressão financeira", Journal of Business Forecasting, v10, # 4. "Forecasting with Neural Networks: uma aplicação usando dados de falência", informações e gerenciamento, 1993, pp. 159-167. "Forecasting S & amp; P e Gold Futures Prices: A Application of Neural Networks", J. of Futures Markets, 1993, pp. 631-643. "Neural Nets and Stocks: Training a Predictive System", PC AI, 1993, pp. 45-47. "Usando Redes Neurais Artificiais para Escolher Estoque", Financial Analysts Journal, 1993, pp 21-27. & quot; Análise de Demonstrações Contábeis de Pequenas Empresas Usando Núcleos Neurais ;, Journal of Accounting Auditing and Finance, 1995, pp. 147-172. "Previsão de preço de estoque usando redes neurais: um relatório de projeto & quot; NeuroComputing, 1990, # 2 "Previsioning Bankruptcies Using a Neural Network", & quot; Escolas de negócios internacionais Computing Quarterly, Spring 1995 POR QUE PODEMOS TRABALHAR TÃO BEM?
Em contraste com os modelos de regressão linear padrão, os NNs realizam a modelagem de regressão não linear, que é uma ordem de grandeza mais flexível e poderosa. Quando um usuário decide com sabedoria sobre a tarefa de um NN e alimenta os dados de mercado necessários para realizar essa tarefa, o modelo tem potencial para funcionar bem, porque isso.
é intrinsecamente não linear e pode "treinar" melhor que modelos lineares neste ambiente. pode aprender a ver melhor que os humanos as várias relações entre um grande número de indicadores. é desapaixonado e consistente; NNs não conhecem medo nem ganância. podem ser reestruturados automaticamente de novo e de novo para acomodar novos comportamentos nos mercados. ERROS COMUNS feitos por NOVICES.
Ganhar dinheiro com tecnologia sofisticada é uma espada de dois gumes. Without careful data preparation, you can easily produce useless junk. The first mistake made by novices using neural networks, is they fail to search for the most relevent data. A few top notch indicators will deliver better results than a few hundred irrelevant ones.
The second common mistake is to think that feeding a neural net 100 indicators will deliver better results than feeding it only ten. But large numbers of inputs require a large model which is difficult to train and maintain. Reducing data to its most compact form (and thereby reducing the NN model to its most compact form) greatly improves chances of success.
Two critical ways to compress data are sparse historical sampling (temporal compression) and redundancy reduction (spatial compression). Many market indicators are redundant because they reflect the same market forces at work, so eliminating redundancy is purely advantageous. As for sparse historical sampling, it is important to find representative values for past points in time, but done in such a way so as not to let important price patterns be skipped.
Jurik's WAV performs sparse historical sampling (temporal compression).
Jurik's DDR performs redundancy reduction (spatial compression).
Here is a nice tutorial on neural nets. It is a Macromedia Flash interactive movie. Select topic from menu along the top of the movie screen.
Do They Really Work?
WHAT ARE GENETIC ALGORITHMS ?
Genetic Algorithms (GAs) are a general purpose problem solving technique. First, several random answers to a problem are generated. The worst answers are eliminated, and the best are "mutated" and "cross-pollinated" with each other to create additional answers that closely resemble the first. The repeated process of elimination and regeneration gradually improves the quality of answers. In this way, they simulate the evolutionary process of "survival of the fittest." GAs are ideal for solving complicated problems with many independent (input) variables and a gigantic number of possible outcomes.
GENETIC ALGORITHM APPLICATIONS.
Genetic algorithms have been used to find the optimal . . .
Budget allocation Job shop schedule Chemical inventory Starting conditions Military response Investment portfolio Fuel consumption Investment trading rules Electronic circuit design.
With regard to financial applications, genetic algorithm optimization has been applied to . . .
Portfolio Balancing & Optimization Budget Forecasting Investment Optimization Payment Scheduling.
Major banks are using a GA component in their loan evaluation programs, such as the one marketed by KiQ of London. Currency traders at Citibank are using GAs to select characteristics of sequences of financial data to more accurately predict their future behavior. Stock traders at Salomon Brothers are using GAs to search for optimal trading rule combinations. Fund managers at Fidelity Investments try to best bundle securities to satisfy constraints. First Quadrant manages a $10-billion portfolio of pension funds, and uses genetic algorithms to build investment models. Models built by genetic algorithms made $255 for every $100 invested, compared with the typical $205. Financial managers at Merrill Lynch use GAs to hedge clients' exposure to price changes in foreign exchange markets.
HOW CAN THEY OPTIMIZE TRADING RULES ?
After you have preprocessed your financial data and developed technical indicators to your liking, your next step is probably to translate these numbers into trading decisions: buy, sell, hold, exit, swap, straddle, leap, etc. Unfortunately, these decisions may involve very complex rules, based on lots of contingencies. For example, one such rule may resemble the following .
Buy long only when A is rising, and B is less than C,
and interest rates just crossed below D.
Neural nets cannot optimize complex trading rules very well. However, genetic algorithms can by employing the latest findings in genetic algorithm optimization (GAO). The concept of GAO comes from the resemblance of this process to genetic evolution. If we pretend the parameters A, B, C, . are genomes (parts) of one large chromosome, then when nature mutates the chromosomes, through mating and reproduction, natural selection eliminates those organisms that perform poorly in the real world. Eventually, organisms with optimal and near-optimal chromosomes survive.
Suppose you had a collection of 30 rules for trading,
but you want only 10 or less.
Which rules do you eliminate?
You might write a program to evaluate all 53 million combinations, or you could use the GA method. GAs would try a number of random combinations of rules, toss out the combinations that performed poorly and make variations upon the collection of rules that performed well. Eventually, you are left with either the optimal or a near-optimal combination of rules.
Building a trading system in Scala.
This will be the first post in a series of posts describing how I'm building an automated trading system mostly in Scala but with Python interoperability, either via the Jython interpreter or by using standard data formats that can be readily used from Python.
Why mostly Scala?
When building a nontrivial framework, there's an absolute need to have a typed language that makes the code robust and easier to refactor, plus it requires less testing than with a dynamic language given that the compiler which check the invariants and guarantees described by the type system. Scala is a type safe, concise language which combines object oriented programming with functional programming which gives a very high degree of flexibility and power.
Sistemas de negociação automatizados.
With more than 75% of the trading volume originating from automated trading systems, individual.
investors and traders are at a disadvantage when trading against machines.
In its most simplified form is just a stateful function that reacts to market data and produces orders that are sent to a broker.
Real ATSs are often much more complex, as there's a need for a lot of infrastructure around the algorithms that will react to market data and produce orders. Some of the things that we will need to build will also be helpful for other tasks such as portfolio optimization.
* Back-testing capabilities, for training algorithms and verifying trading strategies.
* Connection with the broker to submit orders and get the order book.
* Risk analysis and safety systems to check market exposure and risk.
Building an automated trading system is a lot of complex work. That alone puts the individual trader and investor at a big disadvantage given the amount of time or resources she would have to put on to build all the required infrastructure around an ATS.
Ao bater palmas mais ou menos, você pode nos indicar quais as histórias que realmente se destacam.
Building a trading system
As we learned last week, our trading brain is actually composed of two different parts that dramatically effect our trading. There is the old primitive brain our ancestors lived (or died) by and the new age brain that provides the sophistication necessary to survive in today's world.
Using Our Logical Brain.
Our logical or "new age" brain can think logically, analyze situations and make good decisions. The problem is that once we are trading, our primitive brain takes over and runs the show.
The trick to keeping your primitive brain out of your trading is to develop a trading system that is "rules-based" using your logical brain. With a system, once certain rules are satisfied, you trade according to your plan. This is the way you keep your "brains" from messing up your trading.
Let's build a short-term system (a few hours to a couple of days) that we will use to guide our trades.
Começando.
So, where do we start? We start by establishing the rules.
Por exemplo. since the safest direction is to trade with a trend, we need to determine the current trend. The problem with that is what time period do we use? The 5 minute is up, the 15 minute is sideways, the 30 minute is down, the hourly is flat and the daily is pointing at the moon!
Can you imagine the war going on between your two brains? This is why we build the rules ahead of time. In our case, let's set a rule that says the 15 minute, 1 hour and 4 hour chart are all moving in the same direction when we check their 21 period exponential moving averages.
I use the 21 period because it is a Fibonacci number that a lot of short-term traders follow and the exponential MA is more "in tune" with the current action than a simple MA.
Something you will learn along the way is certain indicators are followed by a large number of traders and knowing how other traders are likely to react when the indicators give their "signal" will help you anticipate the probable reaction to prices hitting a certain level.
Next week we'll continue building a trading system by adding more rules to our check list.
Começando: Construindo um Sistema de Negociação Totalmente Automatizado.
Nos últimos 6 meses, fiquei focado no processo de construção da pilha de tecnologia completa de um sistema de negociação automatizado. Eu encontrei muitos desafios e aprendi muito sobre os dois métodos diferentes de backtesting (Vectorizado e Evento conduzido). Na minha jornada de construção de um backtester dirigido por um evento, surpreendi que o que você acabasse fosse perto da pilha de tecnologia completa necessária para construir uma estratégia, testá-la e executar a execução ao vivo.
O meu maior problema ao abordar o problema foi a falta de conhecimento. Olhei em muitos lugares para uma introdução à construção da tecnologia ou um blog que me guiaria. Encontrei alguns recursos que vou compartilhar com você hoje.
Para iniciantes:
Para os leitores novos para negociação quantitativa, eu recomendaria o livro de Ernie P. Chan intitulado: Negociação Quantitativa: como construir seu próprio negócio de negociação algorítmica. Este livro é o básico. Na verdade, é o primeiro livro que eu li em negociação quantitativa e, mesmo assim, achei muito básico, mas há algumas notas que você deveria 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-automáticas e totalmente automatizadas.
Um sistema semi-automatizado é adequado se você deseja fazer alguns negócios por semana. Ernie recomenda o uso de Matlab, R ou mesmo do Excel. Utilizei todas as 3 plataformas e este é o meu conselho:
Saltei Matlab, custou muito dinheiro e eu só consegui acesso aos laboratórios universitários. Não há muito material de treinamento como blogs ou livros que irão ensinar-lhe como codificar uma estratégia usando o Matlab. R tem toneladas de recursos que você pode usar para aprender a construir uma estratégia. Meu blog favorito abordando o tópico é: QuantStratTradeR executado por Ilya Kipnis. O Microsoft Excel é provavelmente o local onde você iniciará se você não tiver experiência de programação. Você pode usar o Excel para negociação semi-automatizada, mas não vai fazer o truque quando se trata de construir a pilha de tecnologia completa.
Quadro semi-automático pg 81.
Sistemas de negociação totalmente automatizados são para quando você deseja colocar negócios automaticamente com base em um feed de dados ao vivo. Eu codifiquei o meu em C #, QuantConnect também usa C #, QuantStart anda pelo leitor através da construção dele em Python, Quantopian usa Python, HFT provavelmente usará C ++. Java também é popular.
Estrutura de negociação totalmente automatizada pg 84.
Passo 1: Obter uma vantagem.
Faça o Programa Executivo em Negociação Algorítmica oferecido pela QuantInsti. Acabei de começar o curso e o primeiro conjunto de palestras foi na arquitetura do sistema. Isso me salvaria cerca de 3 meses de pesquisa se eu tivesse começado aqui. As palestras me acompanharam por cada componente que eu precisaria, bem como uma descrição detalhada do que cada componente precisa fazer. Abaixo está uma captura de tela de uma das suas lâminas utilizadas na apresentação:
Você também pode usar esse quadro geral ao avaliar outros sistemas de negociação automática.
No momento da escrita, estou apenas na terceira semana de palestras, mas estou confiante de que um profissional poderá construir uma estratégia de negociação totalmente automatizada que, com um pouco de polonês, possa ser transformada em um hedge fund 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.
O blog de Michael Hallsmore e o quantstart & amp; livro "Negociação Algorítmica de Sucesso"
Este livro possui seções dedicadas à construção de um backtester dirigido por eventos robustos. Ele dirige o leitor através de uma série de capítulos que irão explicar sua escolha de linguagem, os diferentes tipos de backtesting, a importância do backtesting dirigido a eventos e como codificar o backtester.
Michael apresenta o leitor às diferentes classes necessárias em um design orientado a objetos. Ele também ensina o leitor a construir um banco de dados mestre de valores mobiliários. É aqui que você verá como a arquitetura do sistema da QuantInsti se encaixa.
Nota: Você precisará comprar seu livro: "Successful Algorithmic Trading", seu blog deixa para fora muita informação.
Passo 3: Vire a TuringFinance.
O programa EPAT Leitura "Successful Algorithmic Trading" & amp; codificando um backtester em um idioma diferente da sua escolha.
Você deve se mudar para um blog chamado TuringFinance e ler o artigo intitulado "Algorithmic Trading System Architecture" Por: Stuart Gordon Reid. Em sua publicação, 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 esta publicação muito técnica e tem algumas ótimas idéias que você deve incorporar na sua própria arquitetura.
Uma captura de tela de sua postagem.
Passo 4: Estudar sistemas de comércio aberto.
4.1) Quantopian.
Escusado será dizer que Quantopian deve ser adicionado a esta lista e estou com vergonha de dizer que não passei muito tempo usando sua plataforma (devido à minha escolha de linguagem). Quantopian tem muitas vantagens, mas as que melhoram 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 adoro como eles hospedam QuantCon!
Quantopian é líder de mercado neste campo e é amado por quants por toda parte! Seu projeto de código aberto está sob o nome de código Zipline e isso é um pouco sobre isso:
"Zipline é o nosso motor de código aberto que alimenta o backtester no IDE. Você pode ver o repositório de códigos no Github e contribuir com solicitações de envio para o projeto. Existe 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 a QuantConnect, eles fornecem um mecanismo de troca algorítmica de código aberto completo. Aqui está um link.
Você deve dar uma olhada em seu código, estudá-lo, & amp; dar-lhes elogios. Eles são competição de Quantopians.
Gostaria de aproveitar esta oportunidade para agradecer a equipe da QuantConnect por me deixar escolher seu cérebro e pelo brilhante serviço que eles fornecem.
Aqui está um link para sua documentação:
Observações finais:
Espero que este guia ajude os membros da comunidade. Eu queria ter essa visão 6 meses atrás, quando comecei a codificar nosso sistema.
Gostaria de chegar à comunidade e perguntar: "Quais bons cursos de negociação algorítmica você conhece?" Eu gostaria de escrever uma publicação que analisa o tópico e fornece uma classificação. Existem recomendações para a construção de um sistema de negociação totalmente automatizado que você gostaria de adicionar a esta publicação?
Compartilhar isso:
Compartilhe essa entrada.
Você pode gostar também.
Bom artigo. Eu gostaria de ter tido cerca de 6 meses atrás. Eu uso QuantConnect porque sou um programador C #. Achei muito conveniente poder fazer o download do teste Lean e back test localmente. Rummaging através do seu código também é valioso. Além disso, eles cortaram um acordo com a Trader por negócios de US $ 1. Isso ajuda muito. Não sou tão saliente sobre spreads e execução da Trader. O IB pode ser melhor para isso.
Vou dar uma olhada no curso que você mencionou.
Você não mencionou a Quantocracy ou RBloggers. Ambos são recursos muito valiosos.
O que você usa para traçar resultados de testes de volta? Eu logro os valores do OHLC e do indicador para csv do evento OnData e estou realmente cansado de usar o Excel para traçar os resultados. Gostaria de apontar um pacote de gráficos para um arquivo de dados e simplesmente ir.
Você ainda possui um fornecedor de caixas de seleção?
Tenho um pensamento sobre os sistemas dirigidos a eventos. O problema com os eventos é que eles são assíncronos e latentes. Parece que eles são inevitáveis assim que você obtém uma corretora envolvida, então eu tenho sonhado com um sistema de streaming mais seguindo os princípios da programação funcional.
& # 8211; Injeste um fluxo de tiquetaque ou barra.
& # 8211; Execute-o através de um processo de cálculo de indicadores, execução de análise ou ML, e assim por diante.
& # 8211; Retornar um sinal.
& # 8211; Envie-o para o corretor para executar.
Em seguida, em um fluxo separado.
& # 8211; Receba uma resposta do corretor.
O problema, é claro, é o estado. Tenho margem suficiente para fazer o comércio? O que está no meu portfólio? Como está funcionando? Normalmente, o corretor api pode ser consultado para descobrir essas coisas, mas leva tempo e é assíncrono. Eu também estou olhando extensões Rx. Dessa forma, o sistema pode reagir às mudanças no sistema através do padrão observável.
Os eventos são ótimos para cliques no mouse. Não é tão bom para processamento transacional de alto volume.
Esta é exatamente a abordagem que tomei com minhas próprias coisas. Essencialmente, eu tenho um & # 8216; normal & # 8217; programa que envolve uma pequena parte que é conduzida a eventos para falar com o corretor (IB API). Agora, para o problema do estado. Você tem duas escolhas; obter o estado do corretor, ou armazená-lo internamente, atualizando-o quando você receber um preenchimento. Isso significa que há momentos em que você não conhece seu estado ou quando as duas fontes de estado estão potencialmente em conflito (dados ruins ou atrasos). Parte disso depende da rapidez com que você troca. A menos que você esteja negociando com muita rapidez, então, pausando se você tiver um conflito de estado, ou você está incerto de estado, é melhor do que prosseguir sem saber o seu estado. Eu uso um banco de dados & # 8216; lock & # 8217; paradigma para lidar com isso.
Quanto a quase tudo o que você pediu, você está perto da resposta em Reactive Extension (Rx).
Com Rx indo de tiques para velas é trivial.
Passar de Velas para Indicadores é trivial.
Indicadores de composição de outros indicadores é trivial.
Escrever Posições de Indicadores é trivial.
Composição de Portfolios (como realizada ao longo do tempo) das Posições é trivial.
Simular o modelo de risco é trivial.
Back testing ou trading live é simplesmente decidir entre uma transmissão ao vivo de dados ou uma repetição simulada de dados do banco de dados.
Executar é trivial.
A implementação é possível em tudo, desde C # até F # para JavaScript para C ++ em código quase idêntico.
A otimização é feita rapidamente porque o Rx puramente funcional é massivamente paralisável ao GPU.
É certo que a otimização e alimentação do efeito da otimização contínua de volta ao teste de back-back não é trivial, mas dado que não é trivial de qualquer maneira, eu irei deixar esse slide 😉
Puramente funcional (ou perto dela) A Rx é, na minha opinião, a única maneira de abordar a infraestrutura desse problema.
Conheço o sistema que quero negociar. Eu não quero programar ou aprender algo que alguém já conhece. Então, quem posso contratar para levar o sistema que eu quero usar e automatizá-lo. Por automatizar isso, quero dizer, eu não quero olhar para ele. Eu vou olhar os resultados uma vez por semana e os negócios serão executados sem a minha atenção. Parece estranho para mim que, em 2016, tanto esforço precisa seguir um conjunto de regras e ter essas regras executadas no meu corretor.
Eu sugeriria inscrever-se com o Quantopian e depois encontrar alguém dentro da comunidade lá para construir a estratégia para você. Eles serão capazes de construí-lo para você dentro da plataforma IB Brokers e ser totalmente automatizado.
Deixe-me dizer, porém, que acho que você deve monitorá-lo de perto, e não apenas "esqueça-o para" # 8221 ;.
No comments:
Post a Comment