Thursday 23 November 2017

Algoritmos de negociação para manequins


Algoritmos de troca de manequins


Estou de volta com algo completamente diferente para este artigo! Este é sobre negociação algorítmica; Como na escrita de um algoritmo de negociação que irá automaticamente fazer negócios em seu nome em mercados de câmbio.


Por que o algoritmo de negociação?


"Este é um blog de programação de jogos!" Eu ouvi você chorar. Bem até agora tenho falado quase exclusivamente sobre algoritmos e técnicas de desenvolvimento de jogos, mas na verdade eu não sou apenas um programador de jogos; Algoritmos de todos os tipos interessam-me e mais do que eu estou sempre interessado em pequenos detalhes que tornam complexos sistemas de trabalho, e finanças é completamente cheio de pequenos detalhes e jargão de som impenetrável.


Mas, na verdade, é realmente muito simples de configurar e escrever o seu primeiro algoritmo; Todo o software é completamente livre, quase todos os corretores tem uma conta prática livre para que a barreira de entrada é basicamente zero.


A quem se destina este artigo?


Este artigo é destinado a programadores que sempre foram curioso sobre finanças e algoritmos de negociação, mas nunca olhou para ele em grande detalhe.


Perigo, Will Robinson, PERIGO!


Claro, deve ser afirmado que seria uma idéia fantasticamente ruim para deixar qualquer um dos seus primeiros algoritmos executados em uma conta ao vivo, porque você vai perder muito dinheiro. Então, por favor, não faça isso. Basta usar uma conta de negociação de papel para começar e back-test usando o testador de estratégia, que vou falar mais tarde.


fundo


Faz sentido começar com uma visão geral de como o comércio financeiro, e em particular o comércio de moeda realmente funciona.


No seu coração negociação é sobre uma troca de um ativo para uma certa quantia de dinheiro; O comprador ganha o ativo eo vendedor ganha o preço de venda. Os ativos envolvidos podem ser quase qualquer coisa, os mais populares são ações e ações, moeda estrangeira, ouro, prata, etc A chave é que o comprador só quer pagar uma certa quantia eo vendedor quer ganhar uma certa quantia, e muitas vezes estes Os valores não coincidem.


Se você tomar este exemplo simples de duas partes tentando fazer uma troca e extrapolar em dezenas de milhares de pessoas que trocam o mesmo bem que você precisa de alguma maneira para gerenciar o sistema para que todos os compradores e vendedores envolvidos podem ter uma visão clara de cada parte está perguntando Preço ou oferta de compra, a fim de obter o melhor negócio.


O que você acabar com é o que é chamado o Livro de Ordem, que é simplesmente uma lista de todos os preços do comprador do lance e todos os preços do vendedor Ask ing (às vezes também chamado de preços de oferta).


Um exemplo de livro de pedidos, este é eur / bitcoins


Acima é um exemplo do que parece um livro de encomendas para um ativo particular; Neste caso o seu bitcoin s sendo vendido por Euros. Você pode ver claramente o que os compradores estão dispostos a pagar (à esquerda) e o que os vendedores estão dispostos a vender em (à direita). Outra quantidade importante listada é a quantidade que está sendo vendida ou comprada, isso é auto explicativo realmente; Simplesmente a quantidade do bem que está sendo oferecido para venda ou compra.


Você observará que os preços de Ask são sempre mais altos do que os preços de Lance. Isso faz sentido logicamente, porque se os valores fossem os mesmos, ou se os preços de Ask fossem inferiores aos preços da oferta, a troca já teria ocorrido e as entradas teriam sido removidas da lista de pedidos (supondo que as quantidades fossem as mesmas em ambos os lances e pergunta).


Isso nos traz perfeitamente o primeiro pedaço de jargão. A propagação.


a propagação


O diferencial é simplesmente a diferença entre o preço de pedido mais baixo eo preço de lance mais alto. Ele representa o custo de negociação - se você queria comprar e, em seguida, vender diretamente depois que você iria acabar pagando o custo do spread para a conveniência de uma transação instantânea, o que nos leva à nossa próxima definição. Ordens de Mercado.


Ordens de mercado


Uma ordem de mercado é uma transação que ocorre instantaneamente. Para que isso seja possível, o preço de compra deve ser igual ao mais baixo. Pergunte no livro de pedidos (para uma compra) e para uma venda, o preço de venda deve ser igual ao preço mais alto da oferta. Obviamente, não faz sentido comprar e depois vender instantaneamente porque você sempre estará perdendo dinheiro (a propagação) em cada um. Quando você coloca uma ordem de mercado, você geralmente tem alguma idéia de que o preço se moverá em seu favor antes de você, em seguida, colocar a ordem oposta para fechar o negócio.


Ordens de limite


As ordens no livro de pedidos são todas ordens de limite; Os preços de compra desejados pelas pessoas (que estão sempre abaixo do melhor preço de venda) e os preços de venda (que estão sempre acima do melhor preço de lance). Após algum tempo (embora, talvez nunca em casos extremos) uma ordem será submetida que satisfará ou o comprador ou o vendedor no alto do order-book e seu negócio será enchido. Pessoas que colocam ordens de limite estão felizes em esperar até que o mercado se mova em seu favor antes mesmo de fazerem um acordo - embora isso nunca aconteça, ou pode acontecer muito rapidamente.


Preços em movimento


Então, como exatamente os preços "se movem" em primeiro lugar?


Num sentido muito real, o valor de um determinado ativo é diretamente definido pelo preço mínimo que alguém está disposto a vender ou o preço máximo que alguém está disposto a pagar. O topo da lista de pedidos contém esses valores, como já aprendemos, de modo que sua tentação de pensar por si só definirá o preço e, portanto, seria trivial controlar artificialmente o valor de um ativo, colocando cuidadosamente ordens limitadas na ordem - livro.


No entanto, há uma complicação relacionada à quantidade da ordem. A quantidade de uma ordem define seu significado na definição do valor de um ativo, a razão para isso é a sua longevidade. Quanto maior a quantidade de uma ordem, quanto mais tempo ela provavelmente existirá no livro de pedidos - imagine alguém colocando uma ordem para vender um milhão de maçãs a 0,25 libras por maçã (o preço mais barato). Esta ordem é susceptível de permanecer no livro de pedidos por um tempo muito mais do que alguém tentando vender 10 maçãs. Assim, esta enorme ordem para vender maçãs barato começa a tomar todo o comércio de pequenos vendedores; Sua única opção é tentar subcotar a enorme ordem e vender ainda mais barato, digamos, em £ 0,24 por maçã (ou eles podem esperar, é claro, mas isso pode levar muito tempo). Eventualmente outra ordem grande para vender virá longitudinalmente e undercut a ordem original, dirigindo desse modo preços mesmo mais baixos. Eventualmente, todas essas enormes encomendas serão completamente preenchidas e os preços começarão a se estabilizar novamente para níveis nominais, embora eles não podem voltar para onde estavam.


Um grande exemplo de como as grandes encomendas podem mover o preço foi no acidente bitcoin de 19/6/2017 - alguém tinha invadido a maior troca bitcoin MtGox, roubado uma grande quantidade de bitcoins e, em seguida, tentou vendê-los no mesmo site. Os preços foram de 18 USD / bitcoin para praticamente 0 em questão de minutos. Isso ocorreu porque bitcoin ainda é uma moeda bastante ilíquida, portanto grandes volumes podem mover preços substancialmente mais do que em outros mercados mais líquidos.


Excluindo falhas como a mostrada acima, durante a vida de um ativo, o movimento de preços está acontecendo em várias escalas diferentes; Ordens realmente grandes impulsionam as grandes tendências, seguidas por encomendas menores que conduzem as tendências médias e pequenas encomendas que conduzem a ação de preço imediato. Este comportamento é o que dá a um mercado um fractal como a natureza.


Fractal-como a natureza do mercado


Acima você pode ver um exemplo disso (novamente em USD vs GOLD) onde as principais tendências são marcadas pela linha amarela, as tendências meados são mostradas pela linha branca e as tendências imediatas mostradas em azul. As tendências médias causadas pelas encomendas mais pequenas reverter para o principal preço tendência causada pelas maiores encomendas, assim por diante e assim por diante. Mandlebrot estudou em detalhe a natureza fractal das séries de preços.


Um mercado de tendências


O que eu acabei de descrever acima é a base para um mercado de tendências - onde os preços estão se movendo fortemente em uma direção geral. Isso é causado quando uma seqüência de eventos ocorre semelhante ao que eu descrevi acima, mas em uma escala maciça. Muitas vezes isso pode ser desencadeado por algum tipo de fator externo, como notícias; Dizer que há um artigo de notícias que liga maçãs comer menor IQs, então a maioria dos vendedores vão querer se livrar de seus estoques de maçãs rapidamente, porque ninguém vai comprar, então eles vendem a um preço mais baixo e outros vendedores participar e Esta cascatas em uma tendência de preços mais baixos.


Os preços do ouro começaram a apresentar fortes tendências após a crise financeira de 2008


A crise financeira de 2008 desencadeou tal tendência no preço do ouro, uma vez que as pessoas perderam a confiança nos meios tradicionais de investimento.


Um mercado em andamento


Um mercado variável é aquele em que os preços oscilam entre vários níveis diferentes (de novo em um fractal como forma), mas não necessariamente em qualquer direção clara para cima ou para baixo.


O GBP vs USD é um mercado que varia historicamente devido à natureza inter-relacionada das duas economias


O par de símbolo de câmbio GBPUSD é um mercado que varia historicamente devido às economias inter-relacionadas dos dois países; Embora nos últimos tempos tenha sido em forte tendência de baixa devido ao enfraquecimento da libra.


Mercados de câmbio


Os mercados de câmbio ou os mercados de Forex funcionam negociando pares de moedas, por exemplo, você pode negociar GBP / USD e os preços serão listados em Libras (moeda base) por Dólar (moeda de cotação). A maneira como os particulares obtêm acesso a esses mercados é através de um corretor. Um intermediário é um intermediário entre os utilizadores finais e a Rede de Comunicações Electrónicas, que liga todos os grandes bancos de investimento, hedge e fundos de pensões em conjunto e é o meio pelo qual fazem a sua negociação.


Os corretores fornecem aos usuários acesso ao comércio em troca de taxas, que podem ser uma taxa fixa por volume negociado, ou simplesmente estar escondido dentro do spread (os corretores simplesmente adicionarão sua comissão aos preços Bid and Ask para que os usuários Os preços aumentaram em uma pequena quantidade que é então tomada pelo corretor como lucro).


Há muitos corretores diferentes em operação, todos com seus próprios benefícios e desvantagens que você deve avaliar - comparar coisas como qual corretor sem comissão tem os spreads mais baixos, que é regulamentado pelas autoridades financeiras ou que fornece a melhor conexão para a ECN (alguns são Nem sequer ligado a todos).


A plataforma mais popular que os usuários usam e suporte de corretores é chamada de MetaTrader 4 e é o que eu vou estar falando no resto deste artigo, por causa de sua relativa facilidade de uso, seu suporte generalizado e sua linguagem de programação C-like MQL4 que fornece acesso API para todas as funcionalidades do MetaTrader 4 (MT4 de agora em diante).


Exemplo de corretor de forex (afiliado)


O usuário acessível mercados Forex são ligeiramente diferentes em sua operação do que o que eu descrevi até agora neste artigo, principalmente porque você nunca acaba por possuir o ativo que você está comprando. Isso parece bastante estranho, porque ele quebra a partir da realidade - como você pode vender algo que você nunca detinha, por exemplo? Bem em Forex você pode! Cada compra deve ser fechada com uma venda e cada venda deve ser fechado com uma compra, assim que você sempre acabam possuindo a moeda base, nunca a moeda de cotação.


Isto tem vantagens e desvantagens. A desvantagem é que isso impede determinados algoritmos de negociação de ser possível - por exemplo, você não pode executar um algoritmo Market Maker em um corretor de Forex porque você tem que fechar todos os negócios com o comércio oposto. O mais próximo que você pode fazer é o que é referido como grid-trading; Mas eu vou entrar nessas diferentes técnicas em um artigo posterior. A vantagem de Forex é que você pode ganhar dinheiro em um mercado de tendências, porque você pode vender alto e, em seguida, comprar de volta quando os preços são baixos; Isso é o que é referido como Shorting.


MetaTrader 4


A interface MT4 parece assustadora no início, mas é realmente muito simples.


Interface do usuário MT4


A parte principal do display é ocupada pelos preços de cotação do par de moedas escolhido, com os símbolos de par de moedas disponíveis mostrados em um painel à esquerda, o navegador (para escolher scripts, indicadores e algoritmos) Meu set up - o testador de estratégia bem na parte inferior.


É importante notar que os preços de cotação apresentados nos gráficos em MT4 representam apenas os preços de lance mais elevados do livro de encomendas para um determinado par de moedas. O livro de encomendas completo não está disponível para visualização - você só tem acesso ao topo do livro de encomendas no painel Market Watch, à esquerda.


MT4 fornece um monte de built-in indicadores, que são pequenos programas que correm sobre a série de preços de dados e saída algo visual sobreposto sobre os preços. Um exemplo simples seria o indicador de média móvel, que mostra uma média das séries de preços com um dado período (número de amostras) mostrado em vermelho. As médias móveis ajudam a suavizar o ruído em uma série de preços e tornam a tendência global mais clara à custa da adição de atraso.


Indicador de média móvel


Time-frames


O MT4 fornece um número de diferentes intervalos de tempo através dos quais se visualizam as séries de preços de um símbolo particular: M1, M5, M15, M30, H1, H4, D1, W1 e MN. M1 a M30 são minutos, H1 a H4 são horas, D1 é dias e MN é meses. Cada unidade individual destas séries temporais são referidas como "Barras".


Diferentes períodos de tempo disponíveis


A razão para fornecer tantos pontos de vista diferentes de uma série de preços é que ele ajuda os comerciantes julgar as tendências de longo prazo, médio e curto prazo em uma moeda. Em geral, os intervalos de minutos mais baixos também contêm o mais "ruído" que é definido como comércios que obscurecem a tendência geral, razão pela qual um monte de comerciantes profissionais só lidar com H4 ou maiores prazos que são muito mais fáceis de ler E não requerem tempos de reação de raios.


Deve ficar claro que o que esses intervalos de tempo representam são na realidade uma visão normalizada da série de preços; Na realidade os comércios não ocorrem em tais intervalos regularmente espaçados no tempo, eles ocorrem como e quando. Portanto, o que você vê em MT4 é na verdade uma visão interpolada da verdadeira ação de preço.


Bem como os preços de oferta em MT4 você também tem acesso a preços abertos, preços altos, preços baixos e preços Fechar, por vezes referido como OHLC. Este é um artefato da normalização da série de preços; Porque os preços foram normalizados em bares, é lógico que os comerciantes podem gostar de saber qual foi o preço inicial do bar (Open), onde os pontos altos e baixos foram eo que o último preço no bar foi (Close). Todas essas informações podem ser codificadas nos gráficos de preços como velas.


Dois, velas, gráfico, um, bullish, um, bearish


No diagrama acima, a vela esquerda é de cor preta para indicar um movimento de alta e a vela direita é branca indicando um movimento de baixa.


Muitas velas em um gráfico de preços


Bearish e Bullish


Termos de negociação: um mercado de alta (ou vela) é aquele que é ou tem subido de preço, enquanto que um mercado de baixa é aquele que tem caído no preço.


Um tick (na terminologia MQL4) é uma única alteração no preço do lance e é a resolução mais alta possível de visualizar a ação do preço. Não há nenhuma série de preços de exibição de carrapatos padrão no MT4, embora o painel de Vigilância do Mercado tenha um Gráfico de Carrapatos sobre ele que você pode usar para ver as mudanças de entrada. Carrapatos são mais interessantes quando se trata de realmente escrever um algoritmo.


Pipas e pipetas


Um pip é 0.0001 unidades da moeda de cotação, que costumava ser a menor unidade possível até alguns corretores introduziram pipetas que são dez vezes menores novamente, que são atualmente a menor unidade.


Um ponto em MT4 é a menor unidade possível da moeda de cotação. O que isso realmente depende do que seu corretor suporta, mas por exemplo em 5 dígitos corretor Oanda, um ponto é 0,00001 em EUR / USR e 0,001 em USD / JPY.


A parte mais interessante do MT4 para programadores é a linguagem MQL4. Sugiro que você dê uma olhada na excelente documentação e material de referência fornecidos no mql4:


O idioma é C-like e tem alguns tipos embutidos básicos, como duplos, ints e arrays, mas nenhum tipo complexo como structs ou classes. Em MT4 você pode escrever indicadores personalizados e algoritmos de negociação personalizados, que eles se referem como Expert Advisors, ou EAs.


Vamos começar com o nosso primeiro EA!


Clique com o botão direito do mouse na árvore de 'Expert Advisors' no Navegador e escolha 'Create'. Certifique-se de que 'Expert Advisor' esteja selecionado e escolha 'Next'.


Dê a EA um nome inspirador, como 'HelloWorld' e clique em 'Finish'.


Você deve então ser apresentado com o MetaEditor (que é onde você vai fazer toda a sua programação) contendo o esqueleto para o seu primeiro EA que deve ser semelhante a este:

No comments:

Post a Comment