Criar sistema de negociação de ações
Este curso on-line mostra passo a passo como criar um sofisticado modelo automatizado de negociação de ações usando o Microsoft Excel. A linguagem Visual Basic (VBA) da Microsoft é usada em conjunto com a interface do usuário, as fórmulas e os recursos de cálculo do Excel para fornecer uma ferramenta de negociação poderosa e flexível.
Assista ao vídeo de demonstração.
O Modelo inclui cinco indicadores técnicos comprovados (ADX, crossovers médios móveis, stochastics, bandas de Bollinger e DMI). Você é guiado de forma detalhada através da criação de planilhas, arquivos, intervalos, fórmulas de indicadores, botões de controle, links DDE / Active-X e módulos de código. O modelo incorpora os recursos de negociação de tendência e negociação de swing. O recurso de negociação de swing pode ser ativado ou desativado, dependendo do seu estilo de investimento. Depois de construir o modelo, basta importar os dados necessários, executar o modelo automaticamente com um clique de um botão e tomar suas decisões de negociação.
O sistema opera com sua escolha de arquivos FREE ASCII. TXT disponíveis na Internet (do Yahoo! Finance ou outro provedor), ou seu serviço de dados de assinatura (com o nosso sem um link DDE). O modelo pode ser usado sozinho ou em conjunto com sua análise fundamental e de mercado existente para melhorar o tempo de investimento e evitar situações não lucrativas.
Um modelo de backtesting pré-construído separado também é incluído para análise histórica e teste de vários estoques e períodos de tempo.
Assista ao vídeo do software Back Testing Excel (BÔNUS GRATUITO!)
O que você ganha em cada curso: Um tremendo valor 3 em 1!
Sistemas de Negociação: Projetando Seu Sistema - Parte 1.
A seção anterior deste tutorial analisou os elementos que compõem um sistema de negociação e discutiu as vantagens e desvantagens de usar um sistema desse tipo em um ambiente de negociação ao vivo. Nesta seção, construímos esse conhecimento examinando quais mercados são especialmente adequados para o sistema de negociação. Vamos, então, dar uma olhada mais profunda nos diferentes gêneros de sistemas de negociação.
O mercado acionário é provavelmente o mercado mais comum para o comércio, especialmente entre os novatos. Nessa arena, grandes jogadores como Warren Buffett e Merrill Lynch dominam, e as estratégias tradicionais de investimento em valor e crescimento 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 aderindo a essa tendência, embora lentamente.
A grande quantidade de ações disponíveis permite que os investidores testem sistemas em muitos tipos diferentes de ações - tudo, desde ações de balcão extremamente voláteis (OTC) a blue chips não voláteis.
A eficácia dos sistemas de negociação pode ser limitada pela baixa liquidez de algumas ações, especialmente as questões de balcão e folha-de-rosa.
As comissões podem consumir lucros gerados por negócios bem-sucedidos e podem aumentar as perdas. OTC e ações de folha-de-rosa freqüentemente incorrem em comissões adicionais.
Os principais sistemas de negociação utilizados são aqueles que buscam valor - ou seja, sistemas que usam parâmetros diferentes para determinar se um título está subvalorizado em comparação com seu 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 negociam trilhões de dólares no mercado forex todos os dias. A maioria dos traders institucionais no forex depende de sistemas de negociação. O mesmo vale para os indivíduos no forex, mas alguns negócios são baseados 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 a quantidade de ações ou mercadorias disponíveis, o número de moedas a negociar é limitado. Mas por causa da disponibilidade de "pares de moedas exóticas" - isto é, moedas de países menores - o intervalo 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 de uma só vez.
Os mercados de ações, forex e commodities oferecem negociação de futuros. Este é um veículo popular para o sistema de negociação por causa da maior quantidade de alavancagem disponível e da maior liquidez e volatilidade. No entanto, esses fatores podem cortar os dois lados: eles podem amplificar seus ganhos ou amplificar suas perdas. Por esta razão, o uso de futuros é geralmente reservado para os operadores avançados de sistemas individuais e institucionais. Isso ocorre porque os sistemas de negociação capazes de capitalizar no mercado futuro exigem uma customização muito maior, usam indicadores mais avançados e demoram muito mais para serem desenvolvidos.
Cabe ao investidor individual decidir qual mercado é mais adequado ao sistema de negociação - 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, o forex é comumente pensado para ser a plataforma superior para executar sistemas de negociação - especialmente entre os comerciantes mais experientes. Além disso, se um comerciante decidir capitalizar o aumento da alavancagem e volatilidade, a alternativa de futuros estará sempre aberta. Em última análise, a escolha está nas mãos do desenvolvedor do sistema.
O método mais comum de negociação do sistema é o sistema de acompanhamento de tendências. Em sua forma mais fundamental, esse sistema simplesmente espera por um movimento significativo de preços, depois compra ou vende nessa direção. Este tipo de sistema espera que esses movimentos de preços mantenham a tendência.
Média móvel de sistemas.
Frequentemente usado em análise técnica, uma média móvel é um indicador que simplesmente mostra o preço médio de um estoque durante 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 de sua média histórica de preço (tendência). Aqui está um gráfico que representa tanto o preço (linha azul) quanto o MA de 20 dias (linha vermelha) da IBM:
O conceito fundamental por trás desse tipo de sistema é semelhante ao de um sistema de média móvel. A ideia é que, quando uma nova alta ou baixa é estabelecida, é mais provável que o movimento do preço continue na direção da fuga. Um indicador que pode ser usado na determinação de fugas é um simples Bollinger Band & reg; sobreposição. Bollinger Bands & reg; mostra médias de preços altos e baixos, e breakouts ocorrem quando o preço atinge as margens das bandas. Aqui está um gráfico que traça o preço (linha azul) e Bollinger Bands & reg; (linhas cinza) da Microsoft:
Desvantagens dos sistemas de acompanhamento de tendências:
Tomada de Decisão Empírica - Ao determinar as tendências, há sempre um elemento empírico a considerar: a duração da tendência histórica. Por exemplo, a média móvel poderia ser nos últimos 20 dias ou nos últimos cinco anos, portanto, o desenvolvedor deve determinar qual é a melhor para o sistema. Outros fatores a serem determinados são os altos e baixos médios em sistemas de fuga.
Natureza atrasada - As médias móveis e os sistemas de fuga estarão sempre atrasados. Em outras palavras, eles nunca podem atingir a parte superior ou inferior de uma tendência. Isso inevitavelmente resulta em uma perda de lucros potenciais, que às vezes podem ser significativos.
Wipsaw Effect - Entre as forças do mercado que são prejudiciais ao sucesso dos sistemas de acompanhamento de tendências, este é um dos mais comuns. O efeito whipsaw ocorre quando a média móvel gera um sinal falso - ou seja, quando a média cai apenas no intervalo, então, de repente, inverte a direção. Isso pode levar a perdas massivas, a menos que técnicas eficazes de interrupção de perdas e gerenciamento de risco sejam empregadas.
Mercados Sideways - Sistemas de acompanhamento de tendências são, por natureza, capazes de ganhar dinheiro apenas em mercados que realmente fazem tendência. No entanto, os mercados também se movem para os lados, permanecendo dentro de um determinado intervalo por um longo período de tempo.
Pode ocorrer extrema volatilidade - Ocasionalmente, os sistemas de acompanhamento de tendências podem experimentar extrema volatilidade, mas o profissional deve manter seu sistema. A incapacidade de fazer isso resultará em falha garantida.
Basicamente, o objetivo do sistema de tendência de contração é comprar na baixa mais baixa e vender na máxima alta. A principal diferença entre este e o sistema de acompanhamento de tendência é que o sistema de tendência contrária não é autocorretivo. Em outras palavras, não há tempo definido para sair de posições, e isso resulta em um potencial de queda ilimitado.
Tipos de sistemas de tendência contrária.
Muitos tipos diferentes de sistemas são considerados sistemas de contra-tendência. A ideia aqui é comprar quando o momentum em uma direção começa a desaparecer. Isso é mais frequentemente calculado usando osciladores. Por exemplo, um sinal pode ser gerado quando os stochastics ou outros indicadores de força relativa caem abaixo de certos pontos. Existem outros tipos de sistemas de negociação de tendência de contração, mas todos eles compartilham o mesmo objetivo fundamental - comprar baixo e vender alto.
Tomada de Decisão Ética - Por exemplo, um dos fatores que o desenvolvedor do sistema deve decidir são os pontos nos quais os indicadores de força relativa desaparecem.
Volatilidade Extrema Pode Ocorrer - Esses sistemas também podem experimentar alguma volatilidade extrema, e a incapacidade de manter o sistema apesar dessa volatilidade resultará em falha garantida.
Downside Ilimitado - Como mencionado anteriormente, existe um potencial de downside ilimitado porque o sistema não é autocorretor (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, forex 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 acompanhamento de tendência e de contra-tendência. Apesar de suas diferenças, os dois tipos de sistemas, em seus estágios de desenvolvimento, exigem 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 alguma resistência - é essencial que o operador do sistema mantenha seu sistema durante esses períodos. Na próxima parte, daremos uma olhada mais de perto em como projetar um sistema de negociação e discutir alguns dos softwares que os operadores de sistema usam para facilitar suas vidas.
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 cumprir e algumas das muitas decisões empíricas que um projetista de sistemas deve tomar. Nesta seção, examinaremos o processo de construção de um sistema de negociação, as considerações que precisam ser feitas e alguns pontos importantes a serem lembrados.
Dados - Como o projetista do sistema deve usar um extensivo backtesting, o histórico de preços no passado é essencial para a construção de um sistema de negociação. 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 antigos podem ser obtidos gratuitamente.
Colocar negociações automaticamente - Isso geralmente requer permissão do final do corretor, porque uma conexão constante deve estar em vigor entre o seu software e a corretora. As negociações devem ser executadas imediatamente e a preços exatos para garantir a conformidade. Para que o seu lugar no software seja negociado por você, tudo o que você precisa fazer é inserir o número da conta e a senha, e tudo o mais é feito automaticamente. Por favor, note que o uso deste recurso é estritamente opcional.
Depois que o teste de retorno é executado, é gerado um relatório que descreve as especificidades dos resultados. Esse relatório geralmente inclui lucro, número de negociações com êxito / não, dias consecutivos inativos, número de negociações 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 mostrando 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 em que os parâmetros são usados para gerar um lucro ou perda. Você implementa essas regras e parâmetros, programando-os. À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 cross-over de média móvel:
Se SMA (20) CrossUnder EMA (13), em seguida, sair;
O sistema é criado simplesmente digitando as regras na janela e salvando-as. Referências para as diferentes funções disponíveis (por exemplo, osciladores e outros) podem ser encontradas clicando no ícone do livro. A maioria dos softwares terá uma referência semelhante disponível no próprio programa ou no site. Depois de criar as regras desejadas e codificar o sistema, basta salvar o arquivo. Então você pode colocá-lo em uso selecionando-o na tela principal.
Com qual mercado eu quero negociar? Qual período de tempo devo usar? Qual a série de preços que devo usar? Qual subconjunto de ações devo usar para teste?
Tenha em mente que os sistemas de negociação devem consistentemente lucrar em muitos mercados. Ao personalizar muito o período de tempo e a série de preços, você pode manchar os resultados e produzir resultados incomuns.
Execute vários backtests 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 lucrar consistentemente na maioria dos mercados e condições. Há sempre eventos imprevistos que ocorrem assim que um sistema é ativado. Aqui estão alguns fatores que freqüentemente causam resultados distorcidos:
Custos de transação - Certifique-se de que você está usando a comissão real e alguns extras para contabilizar os preenchimentos imprecisos (diferença entre os preços de compra e venda). Em outras palavras, evite derrapagens! (Para revisar o que é isso e como ocorre, consulte a seção anterior deste tutorial.)
Estes seis passos dão uma visão geral de todo o processo de construção de um sistema de negociação. Na próxima seção, vamos nos basear nesse conhecimento e analisar mais profundamente a solução de problemas e a modificação.
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 oferecem.
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?
Compartilhar isso:
Compartilhe esta entrada.
Você pode gostar também.
Bom artigo. Eu gostaria de ter cerca de 6 meses atrás. Eu uso QuantConnect porque eu sou um programador C #. Eu achei muito conveniente para poder baixar o teste de Lean e voltar localmente. Vasculhar seu código também é valioso. Eles também fizeram um acordo com a Tradier para negociações de US $ 1. Isso ajuda muito. Eu não sou tão saliente sobre os spreads e a execução do Tradier. O IB pode ser melhor para isso.
Vou dar uma olhada no curso que você mencionou.
Você não mencionou Quantocracy ou RBloggers. Ambos são recursos muito valiosos.
O que você usa para mapear os resultados dos testes de volta? Eu registro OHLC e valores de indicador para csv do evento OnData e estou realmente cansado de usar o Excel para traçar resultados. Eu gostaria de poder apontar um pacote de gráficos para um arquivo de dados e tê-lo apenas ir.
Você já tem um fornecedor de fluxo de ticks?
Eu tenho um pensamento sobre sistemas orientados 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ê começa uma corretora envolvida, então eu tenho sonhado com um sistema mais streaming seguindo os princípios da programação funcional.
& # 8211; Injest um fluxo de carrapato ou bar.
& # 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; Receba de volta um sinal.
& # 8211; Envie para o corretor para executar.
Então, em um fluxo separado.
& # 8211; Receba de volta uma resposta do corretor.
O problema, claro, é o estado. Eu tenho margem suficiente para fazer o trade? O que tem no meu portfólio? Como está se saindo? Geralmente, o broker api pode ser consultado para descobrir essas coisas, mas isso leva tempo e é assíncrono. Eu também estou olhando para extensões de Rx. Dessa forma, o sistema pode reagir a mudanças no sistema através do padrão observável.
Eventos são ótimos para cliques do mouse. Não é tão bom para processamento transacional de alto volume.
Esta é exatamente a abordagem que eu fiz com minhas próprias coisas. Essencialmente eu tenho um & # 8216; normal & # 8217; programa que envolve uma pequena parte que é acionada por eventos para falar com o intermediário (IB API). Agora, para o problema do estado. Você tem duas escolhas; obter estado do corretor, ou armazená-lo internamente atualizá-lo quando você receber um preenchimento de volta. 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 incorretos ou atrasos). Parte disso depende da rapidez com que você negocia. A menos que você esteja negociando muito rapidamente, em seguida, pausar se você tiver um conflito de estado, ou você está incerto do estado, é melhor do que prosseguir sem conhecer o seu estado. Eu uso um banco de dados & # 8216; lock & # 8217; paradigma para lidar com isso.
Em relação a quase tudo o que você pediu, você está próximo da resposta em Reative Extension (Rx).
Com Rx indo de carrapatos para velas é trivial.
Indo de velas para indicadores é trivial.
Compor indicadores de outros indicadores é trivial.
Compor posições de indicadores é trivial.
Compor portfólios (como realizados ao longo do tempo) a partir de posições é trivial.
Simular o Modelo de Risco é trivial.
Voltar teste ou negociação ao vivo é simplesmente decidir entre uma transmissão ao vivo de dados ou uma repetição simulada de dados do banco de dados.
A execução é trivial.
A implementação é possível em tudo, de C # a F #, a JavaScript e C ++ em código quase idêntico.
A otimização é feita rapidamente porque o Rx puramente funcional é amplamente paralisável para a GPU.
É verdade que a otimização e a alimentação do efeito da otimização contínua de volta ao back-test não é trivial, mas, dado que é não-trivial de qualquer maneira, eu vou deixar que isso deslize 😉
Puramente Funcional (ou próximo a ele) Rx é, na minha opinião, a única maneira de lidar com a infra-estrutura desse problema.
Eu 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 pegar o sistema que eu quero usar e automatizá-lo. Ao automatizá-lo, quero dizer, não quero olhar para ele. Vou dar uma olhada nos resultados uma vez por semana e os negócios serão executados sem a minha atenção. Parece estranho para mim que, em 2016, seja preciso muito esforço para tomar um conjunto de regras e executar essas regras no meu corretor.
Eu sugiro inscrever-se com o Quantopian e, em seguida, encontrar alguém dentro da comunidade para construir a estratégia para você. Eles serão capazes de construí-lo para você dentro da plataforma de corretores IB e serão totalmente automatizados.
Deixe-me dizer, porém, que eu acho que você deve monitorá-lo de perto, e não apenas esquecê-lo para o & # 8221 ;.
Mais um passo.
Por favor, preencha a verificação de segurança para acessar pugetsystems.
Por que eu tenho que completar um CAPTCHA?
Concluir o CAPTCHA prova que você é humano e dá acesso temporário à propriedade da web.
O que posso fazer para evitar isso no futuro?
Se você estiver em uma conexão pessoal, como em casa, você pode executar uma verificação antivírus em seu dispositivo para se certificar de que não está infectado com malware.
Se você estiver em um escritório ou rede compartilhada, você pode pedir ao administrador da rede para executar uma varredura na rede procurando dispositivos mal configurados ou infectados.
Cloudflare Ray ID: 3ef6689ef7e5825b & bull; Seu IP: 78.109.24.111 & bull; Performance & amp; segurança por Cloudflare.
Como fazer um robô comercial em nenhum momento.
Para fazer um robô de negociação, você precisa de um sistema de comércio.
Negociar nos mercados financeiros envolve muitos riscos, incluindo o mais crítico - o risco de tomar uma decisão comercial errada. O sonho de todo comerciante é encontrar um robô comercial, que está sempre em boa forma e não sujeito a fraquezas humanas - medo, ganância e impaciência.
Cada recém-chegado quer obter ou criar um sistema de negociação claro e rigoroso que possa ser apresentado sob a forma de algoritmos e se livrar completamente das operações de rotina. É possível?
Um sistema de negociação é uma condição necessária para entrar no mercado e esse sistema deve ser lucrativo, é claro. Quando os recém-chegados chegam ao mercado, geralmente ficam sobrecarregados pela grande massa de informações difíceis de entender. Livros e fóruns de comerciantes podem fornecer alguma ajuda nesse caso.
Infelizmente, nem todos os autores são comerciantes bem-sucedidos e nem todos os traders bem-sucedidos escrevem livros. Muitos recursos web especiais são criados apenas para ganhar lucro para seus proprietários, pois é muito mais difícil negociar seu próprio dinheiro do que emitir previsões e ensinar sistemas de negociação.
Cada comerciante deve passar de forma independente todos os estágios de uma criação do sistema comercial. Há um ditado popular que não importa qual sistema você usa para negociação, o principal é que você deve realmente negociar de acordo com esse sistema. Caso contrário, a negociação no mercado se transforma em uma aposta com um resultado previsível.
Trading Robots e Forex.
Acredita-se que o mercado Forex tenha uma grande liquidez. Além disso, permite negociar 24 horas por dia, ao contrário de muitos outros mercados. Portanto, muitos comerciantes tentam fazer robôs de negociação especialmente para o mercado Forex, uma vez que oferece um grande número de instrumentos de negociação.
No entanto, os céticos afirmam que todos os pares de moedas estão fortemente correlacionados entre si, proporcionando uma volatilidade muito baixa no mercado. Mas seus oponentes respondem que cada par de moedas tem suas próprias características e que a baixa volatilidade é compensada por uma grande alavancagem.
Em qualquer caso, os instrumentos de Forex são atraentes para a criação de robôs de negociação e a maioria dos defensores do comércio automatizado aprimora suas habilidades em pares de moedas.
Os terminais de negociação MetaTrader 4 e MetaTrader 5 são especialmente projetados para desenvolver facilmente sistemas de negociação automatizados, mas ao mesmo tempo sua interface também é conveniente para negociação manual.
Como começar a fazer um robô comercial?
Existem muitas abordagens para construir um sistema de negociação automatizado. Descreveremos apenas algumas das principais.
A primeira abordagem baseia-se em matemática. Um desenvolvedor tenta criar uma espécie de equação que considere muitos fatores. Esta abordagem baseia-se na firme convicção de que os movimentos de preços são gerenciados por um modelo que pode ser encontrado usando os dados históricos disponíveis.
Na maioria dos casos, os seguidores de tal abordagem sabem muito de matemática, mas não sabem nada sobre / não estão interessados no mercado. O mercado é uma abstração pura, um tipo de jogo intelectual para eles. Essa abordagem geralmente leva a muitos anos de estudo e desenvolvimento, enquanto um resultado definido na forma de um sistema de negociação automatizado em funcionamento não é tão importante.
A segunda abordagem é baseada no estudo das leis de mercado. Nenhuma tentativa é feita para entender por que o preço sobe ou desce quando vários números de análise técnica aparecem em um gráfico. A vantagem dessa abordagem é que ela não requer nenhum conhecimento especial de matemática e não faz suposições sobre a força motriz do mercado.
É mais claro e conveniente quando se estuda negociação. É mais popular entre os comerciantes que receberam reconhecimento universal. A desvantagem da abordagem é a necessidade de rastrear constantemente todos os símbolos necessários.
Mais cedo ou mais tarde, um trader começa a considerar a automação de processos de negociação e a questão mais considerável aparece nesse estágio - a complexidade de formalizar regras de negociação ao tentar expressá-las na forma de algoritmos. Em alguns casos, os operadores que tentam encomendar um robô comercial não podem descrever as regras de negociação e encontrar pontos em comum com os programadores.
A terceira abordagem baseia-se na tentativa de criar uma "caixa preta" baseada em redes neurais com o uso das ferramentas pré-fabricadas amplamente disponíveis em pacotes especiais de software e matemática. A criação de um sistema de negociação automatizado com os elementos da inteligência artificial é uma tarefa empolgante e desafiadora, mesmo para os recém-chegados, já que não requer conhecimento profundo em matemática nem experiência em programação - tudo é feito usando recursos visuais.
Um comerciante deve conhecer os conceitos básicos de indicadores técnicos, possuir uma capacidade para preparar dados de preços necessários e experiência em algum pacote definido para trabalhar com redes neurais. A principal desvantagem dessa abordagem é que um robô de negociação obtido usando essas ferramentas especializadas para trabalhar com redes neurais é, na verdade, uma "caixa preta". Os comerciantes não conhecem seus princípios de funcionamento e, geralmente, é impossível prever qual fase do mercado será a mais problemática para o robô.
Os programadores geralmente escolhem a quarta abordagem - eles começam a fazer um robô de negociação desde o começo sem gastar tempo para negociação manual. Por que negociar manualmente? Você pode fazer um robô passar alguns meses e colher os benefícios dos seus esforços, então.
Mas «sem dores, sem ganhos». Na maioria dos casos, os programadores começam a criar toda a infra-estrutura necessária usando uma linguagem de programação familiar em vez de apenas fazer um robô comercial - obter e processar dados de preços, representação visual de gráficos e indicadores, meios personalizados de testar estratégias em dados históricos e assim por diante.
Eles ganham muita experiência no processo. Mas na maioria dos casos, essa experiência não os aproxima do objetivo final - a criação de um sistema de negociação automatizado. E mesmo que um robô comercial seja criado, não há garantias de que ele será lucrativo. E se um programador quiser escrever outro sistema de negociação? Reestruturação profunda e novos erros de programação são inevitáveis.
Há também a quinta abordagem - comprar um sistema de negociação pronto na forma de um robô comercial. Neste caso, um comerciante atua como um operador ou um sintonizador. Essa abordagem economiza muito tempo (não é necessário aprender muitas coisas novas) e permite que os operadores entrem rapidamente no mundo da negociação automatizada.
A principal desvantagem desta abordagem decorre de suas vantagens: você não conhece os princípios de operação do seu robô comercial e sua estrutura. E mesmo que um vendedor forneça uma descrição detalhada do sistema de negociação implementado, você nunca terá certeza disso.
No entanto, nenhuma das abordagens mencionadas pode lhe dar garantia absoluta, exceto um depósito bancário. Mas essa não é uma solução muito adequada para pessoas interessadas em negociação no mercado e maneiras de aumentar seus ativos privados.
Qual é a melhor abordagem para o comércio automatizado para um comerciante?
Cada uma das cinco abordagens descritas tem suas vantagens e corresponde a algum tipo definido de comerciante. É improvável que você escolha a primeira abordagem (descrição analítica do mercado) sem um bom histórico matemático. É igualmente improvável que você comece a fazer robôs comerciais baseados em redes neurais. No entanto, essas duas abordagens são muito estimulantes e proporcionam um bom exercício intelectual.
Abaixo, discutiremos apenas a segunda abordagem, que já é considerada a clássica. Essa é a abordagem geralmente escolhida pelos novos seguidores da negociação automatizada, já que a análise técnica continua sendo a principal área de conhecimento ao aprender noções básicas de negociação.
Outra vantagem da segunda abordagem é que depois de gastar algum tempo para negociação manual e obter o senso de mercado, você já terá uma boa compreensão das ferramentas de análise técnica. Além disso, você poderá programar estratégias de negociação ou criar redes neurais em um nível superior.
Os primeiros passos para fazer um robô comercial.
Para criar um sistema de negociação automatizado, você precisa de habilidades de programação e conhecimento de todos os meandros do processamento de solicitações comerciais. Mas, em primeiro lugar, você pode começar com os Expert Advisors, fabricados em linha, negociando robôs da biblioteca gratuita do Code Base.
Faça o download de qualquer Expert Advisor (robô de negociação) e lance-o nos terminais de cliente do Strategy Tester do MetaTrader 4 ou MetaTrader 5. Selecione um intervalo de histórico mostrando uma tendência forte e um intervalo com um plano. Execute a otimização de um parâmetro de entrada do Expert Advisor e examine suas diferenças nesses dois intervalos.
Inicie um Expert Advisor com os parâmetros ideais para um plano em um intervalo de tendência e com os parâmetros ideais para uma tendência em um intervalo simples. Examine as diferenças nos resultados de negociação, distribuições de ofertas e outros parâmetros estatísticos. Como resultado, você saberá quanto o comportamento do seu sistema de negociação pode variar quando a situação do mercado mudar.
Seria melhor tentar várias estratégias de negociação padrão usando este método em diferentes partes da história e vários símbolos. Tal teste impede a instalação de um sistema de negociação para algum intervalo histórico definido e fornece uma melhor compreensão dos sistemas de tendência e de tendência contrária.
O próximo passo seria criar sistemas de negociação mais complexos com base na combinação de sinais simples já existentes do MQL5 Wizard set. Você pode testar e desenvolver sua intuição comercial, classificando sinais ruins de um sistema usando um filtro baseado em outro sistema sem meios de programação.
O principal aqui é não superar demais. Quanto mais os parâmetros de entrada que um sistema de negociação tem, mais fácil será montar. Houve muitas discussões sobre as diferenças entre otimização e adaptação. Não há soluções amplamente aceitas aqui. Mas a visualização dos resultados de teste / otimização e seu próprio bom senso podem ajudá-lo.
Aprenda a identificar os parâmetros de entrada mais críticos que afetam seu sistema de negociação de todo o conjunto de dados de entrada. Não preste muita atenção aos parâmetros secundários que levam tempo durante a otimização, mas não afetam a própria lógica do sistema. Lembre-se de que um bom sistema de negociação sempre demonstra um pequeno movimento livre de parâmetros secundários, mas não apresenta volatilidade dramática no caso de mudanças no mercado insignificantes.
Você pode gastar tanto tempo nesta fase, como desejar, até ter certeza de que pode entender qualquer estratégia de negociação examinando resultados de teste e otimização. O conhecimento dos pontos fortes e fracos dos sistemas padrão permitirá que você esteja mais bem preparado ao criar seu próprio robô comercial.
Programando um robô de negociação.
Suponha que você tenha aprendido / esteja aprendendo a linguagem de programação MQL4 ou MQL5 e agora você está pronto para escrever seu primeiro Expert Advisor para o terminal do cliente MetaTrader. Vários casos são possíveis aqui.
Primeiro, você pode examinar vários robôs comerciais prontos descritos nos artigos para entender melhor as complexidades de programação.
Segundo, você pode fazer perguntas sobre MQL4munity ou MQL5munity, se tiver algum problema não resolvido. Participantes experientes da comunidade geralmente ajudam os recém-chegados a mostrar sincero interesse pelo assunto.
Terceiro, você pode solicitar a melhoria ou o desenvolvimento de um Expert Advisor ou um indicador no serviço Jobs, caso não seja capaz de criar um programa necessário por conta própria. Mas mesmo que você faça um pedido por meio do serviço freelancer, você deve ter alguma idéia sobre o teste de estratégia para encontrar um idioma comum com um desenvolvedor.
Além disso, o conhecimento básico de uma linguagem de programação permite implementar pequenas correções e alterações no código depois que o trabalho já foi concluído. Afinal, não seria muito conveniente chamar um programador para corrigir todos os pequenos problemas que você encontrar. Seria muito mais fácil e rápido corrigi-lo sozinho.
Não há necessidade de reinventar a roda.
Como encontrar sua própria estratégia de negociação, ou pelo menos em que direção você deve focar sua busca? Todos os comerciantes protegem seus próprios sistemas de negociação, se tiverem um. Todos os recém-chegados querem criar um sistema lucrativo ou obter um sistema pronto. Ao mesmo tempo, qualquer solução obtida parece ser muito simples em comparação com as idéias dos recém-chegados sobre um sistema de comércio genuíno.
Os homens do exército em todo o mundo são propensos a níveis excessivos de sigilo. Há muitas piadas sobre isso, incluindo a seguinte: "O segredo militar não está no que você está estudando, - um oficial diz aos estudantes das escolas militares, - mas no fato de que exatamente você está estudando isso". A situação dos sistemas de negociação é semelhante: a maioria dos traders usa idéias de negociação simples e conhecidas com pequenas modificações, por exemplo, adicionando o Trailing Stop ou confirmações de indicadores de tendência.
Existem muitos fóruns de traders com acesso limitado, onde os participantes unem seus esforços para desenvolver ou melhorar alguns sistemas de negociação secretos. O mais interessante é que esses sistemas não contêm nada de especial. Geralmente, uma idéia bem conhecida (como "comércio com a tendência") é usada como base. Em seguida, ele é aperfeiçoado com alguns novos indicadores desconhecidos do público em geral.
Portanto, você pode facilmente obter códigos de código de robô comercial disponíveis e tentar usá-los corretamente com vários símbolos e prazos. Outro exemplo popular pode ser mencionado aqui: "Você não gosta de gatos? Você simplesmente não sabe como cozinhar!" É difícil acreditar, mas a probabilidade de você desenvolver algo realmente novo é muito pequena. O principal aqui é criar um sistema usando os ingredientes disponíveis. Não pense que alguns gênios tenham acesso a alguns sistemas secretos dos laboratórios da NASA. Esse é o segredo do Graal.
Apenas alguns poucos conseguirão passar.
Então, por que ninguém usa idéias de negociação, se elas estão literalmente ao alcance da mão? A resposta provavelmente está na psicologia humana. O pessoal de muitos bancos e grandes fundos de investimento inclui comerciantes realizando acordos de acordo com regras estritas e dentro de volumes limitados. Mas, por alguns motivos, apenas alguns traders institucionais deixam suas empresas e começam a negociar usando seu próprio dinheiro.
Acontece que você precisa não apenas de uma estratégia de negociação, mas também da disciplina de ferro para segui-la. Muitos comerciantes descobriram com pesar que eles também têm os mesmos problemas psicológicos descritos nos livros. Depois de perceber que o pior inimigo dos comerciantes são eles mesmos, um recém-chegado começa a pensar em fazer um robô comercial para eliminar um fardo psicológico.
Embora eu me desvie um pouco do assunto, devo mencionar os lendários comerciantes de tartarugas que negociaram com êxito em múltiplos mercados no final do século XX. Leia "Way of the Turtle" e você verá que a coisa mais importante para um trader é uma autodisciplina e não um sistema secreto. Infelizmente, a maioria dos recém-chegados não será capaz de seguir uma estratégia lucrativa, mesmo que seja gratuita.
O problema é que a maioria das estratégias de negociação perfeitamente ajustadas para o comércio manual dificilmente podem ser formalizadas e transcritas para uma linguagem de programação. As estratégias que podem ser facilmente formalizadas (por exemplo, aquelas que envolvem a intersecção de duas médias móveis) são muito simples e exigem muitos refinamentos e melhorias, para que possam ser usadas na prática. Assim, uma ideia simples é gradualmente complicada por uma abundância de parâmetros externos que impedem um robô de negociação de entradas falsas e erros claramente visíveis para um desenvolvedor. Um problema de otimização de robôs de negociação surge. Esse processo não deve se transformar em uma otimização excessiva e em um intervalo de histórico específico.
Para resolver este problema, o teste direto usando os parâmetros do sistema obtidos foi implementado no terminal MetaTrader 5. Se os resultados dos testes forward não diferirem significativamente daqueles obtidos na seção de otimização, há uma probabilidade de que um robô comercial fique estável o suficiente por algum tempo após seu lançamento em uma conta de negociação. Um intervalo de tempo para a otimização de parâmetros e um valor real de "algum tempo" dependem de um determinado sistema de negociação.
Assim, a otimização de um robô de negociação antes de lançá-lo em uma conta de negociação lembra o desenrolar de um sling - quanto mais cuidadosamente desenrolamos um projétil do sling, mais ele voará e mais precisa será sua trajetória. Um robô de negociação completamente desenvolvido manterá um resultado positivo em uma conta de negociação por mais tempo do que um robô de negociação obtido como resultado de um ajuste. Podemos dizer que o Grail é uma idéia de trabalho e ajuste correto dos parâmetros realizados de tempos em tempos nos momentos de mudanças nas condições do mercado.
Isto pode ser ilustrado pelos resultados do Campeonato de Negociação Automatizada, que já existe há muitos anos. Os Expert Advisors enviados por todos os participantes passam por testes automáticos no intervalo de tempo de janeiro até o final de julho. O principal requisito para passar o teste automático é um lucro obtido por oito meses de teste. Mas menos de metade dos robôs de negociação admitidos para o Campeonato continuam lucrativos depois de meses de trabalho autônomo.
Você também pode testar suas habilidades para fazer e ajustar seu robô de negociação para participar do Campeonato e obter os resultados dos testes avançados do seu Expert Advisor. Além disso, a participação é gratuita e os prêmios são impressionantes. Esperamos ver você lá!
Conclusão.
Comerciantes profissionais intraday passam muitas horas sentados em seus computadores e esperando o momento certo para fazer um acordo. Claro, eles não podem estar em boa forma o tempo todo.
A maioria dos comerciantes chega à conclusão de que suas ações violam suas próprias regras de negociação. Nem todos os sistemas de negociação podem ser completamente formalizados, mas mesmo esses sistemas podem, na maioria dos casos, adotar ferramentas adicionais, como indicadores, sistemas analíticos e filtros de sinais falsos.
Nós não fazemos nenhuma recomendação especial aqui sobre o aprendizado de linguagens MQL4 ou MQL5, pois há muitos outros artigos úteis sobre esse assunto. O objetivo deste artigo foi fornecer uma idéia inicial sobre como começar a fazer seu robô comercial para os terminais MetaTrader 4 e MetaTrader 5.
Esperamos que este artigo economize tempo para os recém-chegados e mostre a direção certa na difícil tarefa de desenvolver um sistema de negociação automatizado.
Traduzido do russo por MetaQuotes Software Corp.
Comments
Post a Comment