Como escrever um robô de negociação: ferramentas para iniciantes



O tópico de sistemas automatizados para negociação na bolsa é bastante popular na RuNet nos últimos anos. No entanto, pode ser difícil para investidores iniciantes criarem seu próprio robô de negociação. Hoje falaremos sobre como isso pode ser feito sem custos desnecessários.

Nota : qualquer atividade de investimento na bolsa está associada a um determinado risco, isso deve ser levado em consideração. Além disso, para lançar seu robô de negociação, você precisará de uma conta de corretagem, você pode abri-lo online . Você pode depurar sua estratégia usando o acesso de teste com dinheiro virtual .

Opções para criar robôs


Existem várias opções para criar software robótico para negociação na bolsa:

  • Criando robôs para trabalhar em uma conexão direta - esses sistemas funcionam ignorando o sistema de negociação da corretora, enviando aplicativos diretamente para o "mecanismo" do sistema de negociação da bolsa. Essa opção já é usada por traders experientes que estão dispostos a pagar, inclusive por esse método de conexão .
  • Conexão ao sistema de negociação de corretagem pela API. Alguns corretores permitem conectar software de negociação externa a seus sistemas de negociação usando interfaces especiais. Os clientes da ITI Capital podem fazer isso usando a API SMARTcom . Nesse caso, os robôs podem ser bastante complexos.
  • Automação de operações diretamente no terminal de negociação. A maneira mais simples, adequada para iniciantes, é automatizar a negociação diretamente no programa principal de qualquer terminal de negociação.

Hoje vamos considerar a terceira opção, pois é a mais simples.

Como funcionou antes


Os terminais de negociação das gerações anteriores podem ser integrados a várias ferramentas de automação. Um dos mais populares, curiosamente, era o Excel na época. Com sua ajuda, os comerciantes poderiam configurar a exportação de dados do terminal de negociação, bem como receber ordens de negociação.



Menu para conectar o Excel em um dos terminais de negociação da geração anterior

Também era prática comum entre os comerciantes conectar poderosos sistemas de análise técnica e desenvolvimento de robôs como WealthLab e MetaStock aos seus terminais. Nesses casos, a integração geralmente é feita usando bibliotecas adicionais.

Nesses casos, o comerciante teve a oportunidade de automatizar e, no caso do MetaStock e WealthLab, a criação de sistemas de negociação bastante complexos, mas os links para programas externos geralmente não eram confiáveis. Com o tempo, esse problema foi resolvido - em alguns terminais de negociação apareceram linguagens de programação embutidas.

Como funciona agora: aprendendo o TradeScript


Atualmente, a maneira mais fácil de criar um robô comercial simples que trabalha com um sistema de corretor no mercado russo é usar o terminal SMARTx.

Ele possui um plug-in especial com o designer do robô de negociação TradeScript. Usando uma linguagem de script simples, mas bastante poderosa, os comerciantes podem criar sistemas mecânicos de vários níveis de complexidade. A linguagem foi criada originalmente para o desenvolvimento de robôs de negociação, é bastante fácil de aprender e muitos algoritmos são similares por escrito ao Metastock, o que facilita para os usuários familiarizados com este pacote de software.



A vantagem do TradeScript em comparação com o Wealth-Lab e o mesmo Metastock é a ausência da necessidade de criar projetos complexos e usar vários conectores para transferir pedidos para o terminal de negociação. O designer do robô é incorporado ao SMARTx, o que permite obter confiabilidade e velocidade significativamente mais altas.

Aqui está um exemplo de uma estratégia de negociação escrita em TradeScript:

Buy Signals # ,        TREND(EMA(CLOSE, 20), 15) = UP AND TREND(MACD(13, 26, 9, SIMPLE), 5) = UP Sell Signals # ,        TREND(EMA(CLOSE, 20), 15) = DOWN AND TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN Exit Long Signal # ,         TREND(EMA(CLOSE, 20), 15) = DOWN OR TREND(MACD(13, 26, 9, SIMPLE), 5) = DOWN Exit Short Signal # ,         TREND(EMA(CLOSE, 20), 15) = UP OR TREND(MACD(13, 26, 9, SIMPLE), 5) = UP 

Em um pacote com o TradeScript, ele também fornece um módulo de backtesting que permite avaliar o desempenho da estratégia descrita em dados históricos. Entre outras coisas, o sistema implementa a função de testar o sistema de negociação em tempo real usando dados de câmbio atuais, mas sem fazer um pedido na bolsa - o horário de uma transação virtual, o preço e a "lucratividade" resultante serão exibidos em uma janela separada.



Além disso, o usuário pode executar tantos algoritmos de execução simultânea quanto a velocidade do clock do processador e a memória do computador permitirem. Dado o grande número de palavras e operandos da linguagem de script, isso significa a capacidade de criar estratégias de negociação arbitrariamente complexas.

O que mais: depuração no acesso de teste


O uso da funcionalidade incorporada para o desenvolvimento de robôs de negociação no terminal de negociação é uma maneira conveniente e confiável de automatizar a negociação. No entanto, apesar das funções existentes para testar estratégias, você não deve negligenciar os recursos adicionais de depuração.

Portanto, recomendamos que antes de iniciar uma estratégia de negociação com dinheiro real, execute-a no acesso de teste . Esta etapa permitirá depurar todos os aspectos, incluindo a reação do programa às transações concluídas, sem risco de perdas financeiras reais. O uso da análise usando dados históricos, a verificação on-the-fly e o uso do acesso ao teste permitirão depurar totalmente sua estratégia.

Links úteis sobre o tema do investimento e da negociação de ações:


Source: https://habr.com/ru/post/pt470233/


All Articles