Tuesday 20 February 2018

Melhores algoritmos forex


Algoritmos.


Como instalar cBots & amp; Indicadores.


Baixe o Indicador ou cBot. Clique duas vezes no arquivo baixado. Isso instalará todos os arquivos necessários no cAlgo. Encontre o indicador / cbot que deseja usar no menu à esquerda. Adicione uma instância do indicador / cBot para executar.


Faça o download do indicador Clique duas vezes no arquivo baixado. Isso instalará todos os arquivos necessários no cTrader. Selecione o indicador de Custom no menu de funções (f) no centro superior do gráfico.


Os serviços fornecidos pela Spotware Systems Ltd. não estão disponíveis para cidadãos ou residentes dos EUA. Nem a informação em nossos sites é direcionada para a solicitação de cidadãos ou residentes dos EUA.


SnowCron.


FREE E. Mail Classes.


Usando o Algoritmo Genético para criar Estratégia de Negociação FOREX lucrativa. Algoritmo Genético no Sistema de Redes Neurais do Cortex Feedforward Backpropagation Neural Network Aplicação para cálculos genéticos baseados em Forex trading.


Este exemplo usa conceitos e ideias do artigo anterior, então leia Algoritmo Genético de Rede Neural em Sistemas de Negociação FOREX primeiro, embora não seja obrigatório.


Sobre este texto.


Em primeiro lugar, leia o aviso legal. Este é um exemplo de usar a funcionalidade do algoritmo de algoritmo de algoritmo de redes nervosas Cortex, não um exemplo de como fazer negociação rentável. Eu não sou seu guru, nem eu devo ser responsável por suas perdas.


O software Cortex Neural Networks possui redes neurais, e a FFBP que discutimos antes é apenas uma maneira de escolher estratégias de negociação forex. É uma boa técnica, poderosa e quando aplicada corretamente, muito promissora. No entanto, tem um problema - para ensinar a Rede Neural, precisamos saber o "resultado desejado".


É bastante fácil de fazer quando fazemos a aproximação da função, apenas tomamos o valor "real" de uma função, porque sabemos o que deveria ser.


Quando fazemos a previsão da rede neural, utilizamos a técnica (descrita em artigos anteriores) de ensinar a Rede Neural na história, novamente, se prevermos, digamos, uma taxa de câmbio, sabemos (durante a formação) qual é a previsão correta .


No entanto, quando estamos construindo um sistema comercial, não temos idéia de qual é a decisão de negociação correta, mesmo que conheçamos a taxa de câmbio! Na verdade, temos muitas estratégias de negociação forex que podemos usar em qualquer ponto do tempo, e precisamos encontrar uma boa - como? O que devemos alimentar como o resultado desejado de nossa Rede Neural?


Se você seguiu nosso artigo anterior, você sabe, que nos enganamos para lidar com esse problema. Ensinamos a Rede Neural a fazer uma previsão de taxa de câmbio (ou taxa de câmbio), e então usamos essa previsão para fazer negociação. Então, fora da parte da rede Neural do programa, tomamos uma decisão sobre a qual a Rede Neural é a melhor.


Os algoritmos genéticos podem lidar diretamente com este problema, eles podem resolver o problema afirmado como "encontrar os melhores sinais comerciais".


Neste artigo, vamos usar o software Cortex Neural Networks para criar esse programa.


Usando o Algoritmo Genético.


Algoritmos genéticos são muito bem desenvolvidos e muito diversos. Se você quer aprender tudo sobre eles, sugiro que você use a Wikipedia, pois este artigo é apenas sobre o que o Cortex Neural Networks Software pode fazer.


Com o software Cortex Neural Networks, podemos criar uma Rede Neural que leve alguns dados, digamos, valores de um indicador, e produz algum resultado, digamos, sinais de negociação (comprar, vender, manter.) E parar a perda / tomar níveis de lucro para posições para ser aberto.


Claro, se semearmos os pesos desta Rede Neural ao acaso, os resultados comerciais serão terríveis. No entanto, digamos que criamos uma dúzia de tais NNs. Então podemos testar o desempenho de cada um deles, e escolher o melhor, o vencedor.


Esta foi a "primeira geração" dos NNs. Para continuar a segunda geração, precisamos permitir que nosso vencedor "procriar", mas para evitar a obtenção de cópias idênticas, vamos adicionar um pouco aleatório aos pesos das descentinas.


Na segunda geração, temos o nosso vencedor da primeira geração e são cópias imperfeitas (mutadas). Vamos fazer testes novamente. Teremos outro vencedor, que é melhor que qualquer outra Rede Neural na geração.


E assim por diante. Nós simplesmente permitimos que os vencedores criem, e eliminem os perdedores, assim como na evolução da vida real, e obteremos nossa Rede Neural de melhor negociação, sem nenhum conhecimento prévio do que o sistema de negociação (algoritmo genético) deveria ser.


Algoritmo Genético da Rede Neural: Exemplo 0.


Este é o primeiro exemplo de algoritmo genético, e muito simples. Nós vamos passar por ele passo a passo, para aprender todos os truques que os exemplos a seguir usarão.


O código tem comentários em linha, então vamos apenas nos concentrar nos momentos-chave.


Primeiro, criamos uma rede neural. É usar pesos aleatórios, e ainda não foi ensinado.


Então, no ciclo, fazemos 14 cópias, usando MUTATION_NN fumction. Esta função faz uma cópia de uma Rede Neural de origem, adicionando valores aleatórios de 0 para (no nosso caso) 0,1 para todos os pesos.


Mantivemos alças para 15 NNs resultantes em uma matriz, podemos fazê-lo, pois o identificador é apenas um número inteiro.


A razão pela qual usamos 15 NNs não tem nada a ver com a negociação: o software Cortex Neural Networks pode traçar até 15 linhas em um gráfico simultaneamente.


Podemos usar diferentes abordagens para o teste. Primeiro, podemos usar o conjunto de aprendizagem, tudo de uma vez. Em segundo lugar, podemos testar, digamos, 12000 resords (de 100000), e caminhar através do conjunto de aprendizagem, do começo ao fim. Isso tornará o know-how diferente, pois buscaremos redes da Neural que sejam lucrativas em qualquer parte de dados, e não apenas em todo o conjunto. A segunda abordagem pode nos dar problemas, se a mudança de dados, desde o início até o fim. Em seguida, a rede irá evoluir, obtendo capacidade de trocar no final do conjunto de dados e perdendo a capacidade de trocar no seu início.


Para resolver esse problema, vamos levar aleatoriamente 12.000 fragmentos de registros de dados e alimentá-lo para a Rede Neural.


Abaixo, adicionamos uma criança para cada rede, com pesos ligeiramente diferentes. Note-se que 0,1 para mutação tange não é a única escolha, como fato de fato, mesmo este parâmetro pode ser otimizado usando o algoritmo genético.


Os NNs recém-criados são adicionados após 15 existentes. Desta forma, temos 30 NNs em uma matriz, 15 antigos e 15 novos. Então vamos fazer o próximo ciclo de testes e matar perdedores, de ambas as gerações.


Para fazer testes, aplicamos a Rede Neural aos nossos dados, para produzir saídas, e depois chamar a função Test, que usa essas saídas para simular a negociação. Os resultados da negociação são usados ​​para desidir, quais NNs são melhores.


Usamos um intervalo de registros nLearn, de nStart a nStart + nLearn, onde nStart é um ponto aleatório dentro do conjunto de aprendizado.


O código abaixo é um truque. A razão pela qual usamos é ilustrar o fato de que o algoritmo genético pode criar algoritmos genéticos, mas não será necessariamente o melhor e, também, sugerir que podemos melhorar o resultado, se implicarmos algumas limitações à aprendizagem processo.


É possível que nosso sistema comercial funcione muito bem em negócios longos, e muito pobre em curto, ou vice-versa. Se, digamos, os negócios longos são muito bons, esse algoritmo genético pode ganhar, mesmo com grandes perdas em transações curtas.


Para evitá-lo, atribuímos mais peso aos negócios longos em trocas ímpares e curtas em ciclos pares. Este é apenas um exemplo, não há garantia, que irá melhorar alguma coisa. Mais sobre isso abaixo, em discussão sobre correções. Tecnicamente, você não precisa fazê-lo, ou pode fazê-lo de forma diferente.


Adicione lucro a uma matriz ordenada. Ele retorna uma posição de inserção, então usamos essa posição para adicionar identificador de rede Neural, aprendendo e testando lucros para matrizes não ordenadas. Agora, temos dados para a Rede Neural atual no mesmo índice de matrizes que seu lucro.


A idéia é chegar a uma série de NNs, ordenados por rentabilidade. Como a matriz é classificada por lucro, para remover metade das redes, que são menos lucrativas, precisamos apenas remover NNs de 0 a 14.


As decisões de negociação são baseadas no valor do sinal da Rede Neural, desde este ponto de vista o programa é idêntico aos exemplos do artigo anterior.


FOREX Estratégia de Negociação: Discussing example 0.


Em primeiro lugar, vamos dar uma olhada nos gráficos. O primeiro gráfico de lucro durante a primeira iteração não é bom, como seria de esperar, a Rede Neural perde dinheiro (imagem evolution_00_gen_0.png copiada após a primeira iteração da pasta "imagens"):


A imagem com lucro no ciclo 15 é melhor, às vezes, o algoritmo genético pode aprender muito rápido:


No entanto, observe a saturação em uma curva de lucro.


É interessante também olhar para a forma como os lucros individuais mudam, tendo em mente, esse número de curva, digamos, 3 nem sempre é para a mesma Rede Neural, pois eles estão nascendo e terminaram o tempo todo:


Além disso, note que o pequeno sistema de negociação automatizado forex é pobre em transações curtas e muito melhor em longos, que pode ou não estar relacionado ao fato de que o dólar estava caindo em comparação com o euro durante esse período. Também pode ter algo a ver com parâmetros do nosso indicador (talvez, precisamos de um período diferente para shorts) ou a escolha de indicadores.


Aqui está o histórico após 92 e 248 ciclos:


Para nossa surpresa, o algoritmo genético falhou completamente. Vamos tentar descobrir o porquê, e como ajudar a situação.


Em primeiro lugar, cada geração não deve ser melhor do que a anterior? A resposta é não, pelo menos não dentro do modelo que usamos. Se tomarmos TODAS as aprendizagens definidas de uma vez, e usamos repetidamente para ensinar nossos NNs, então sim, eles melhorarão em cada geração. Mas, em vez disso, tomamos fragmentos aleatórios (12000 registros no tempo) e os usamos.


Duas perguntas: por que o sistema falhou em fragmentos aleatórios de conjunto de aprendizado e por que não usamos conjunto de aprendizado completo? Bem. Para responder a segunda pergunta, eu fiz. NNs apresentaram um grande desempenho - no aprendizado definido. E eles falharam no conjunto de testes, pelo mesmo motivo que falha quando usamos o aprendizado da FFPB. Para dizer de maneira diferente, nossos NNs se especializaram demais, eles aprenderam a sobreviver no ambiente ao qual eles estão acostumados, mas não fora dele. Isso acontece muito na natureza.


A abordagem que tomamos foi destinada a compensar isso, ao obrigar NNs a realizar bons em qualquer fragmento aleatório do conjunto de dados, de modo que, com sorte, eles também poderiam realizar em um conjunto de testes desconhecido. Em vez disso, eles falharam tanto no teste quanto no conjunto de aprendizado.


Imagine animais, vivendo em um deserto. Muito sol, sem neve. Este é um mercado de metafor para rizing, pois os nossos dados NNs desempenham o papel de meio ambiente. Os animais aprenderam a viver em um deserto.


Imagine animais, que vivem em clima frio. Neve e sem sol. Bem, eles se ajustaram.


No entanto, em nosso experimento, colocamos aleatoriamente nossos NNs em um deserto, na neve, na água, nas árvores. apresentando-lhes diferentes fragmentos de dados (aumentando aleatoriamente, caindo, plano). Os animais morreram.


Ou, de modo diferente, selecionamos a melhor Rede Neural para o conjunto de dados aleatórios 1, que, digamos, era para o aumento do mercado. Então, apresentamos, aos vencedores e seus filhos, uma queda dos dados do mercado. NNs funcionaram mal, nós melhoramos os melhores artistas, talvez, uma das crianças mutantes, que perdemos a capacidade de negociar no mercado em expansão, mas conseguiu alguma habilidade para lidar com a queda de um.


Em seguida, voltamos a mesa novamente e, novamente, conseguimos o melhor desempenho - mas melhor entre os mais pobres. Nós simplesmente não damos a nossos NNs chances de se tornarem universais.


Existem técnicas que permitem ao algoritmo genético aprender novas informações sem perder o desempenho em informações antigas (afinal, os animais podem viver no verão e no inverno, certo? Então, a evolução é capaz de lidar com mudanças repetitivas). Podemos discutir essas técnicas mais tarde, embora este artigo seja mais sobre o uso do software Cortex Neural Networks, do que sobre a construção de um sistema de negociação automatizado forex bem sucedido.


Algoritmo Genético da Rede Neural: Exemplo 1.


Agora é hora de falar sobre correções. Um algoritmo genético simples que criamos durante o passo anterior tem duas grandes falhas. Primeiro, não conseguiu negociar com lucro. Está tudo bem, podemos tentar usar sistema parcialmente treinado (foi lucrativo no início). A segunda falha é mais grave: não temos controle sobre as coisas, que esse sistema faz. Por exemplo, pode aprender a ser rentável, mas com grandes remessas.


É um fato bem conhecido, que na vida real, a evolução pode otimizar mais de um parâmetro simultaneamente. Por exemplo, podemos obter um animal, que pode correr rápido E ser resistente ao frio. Por que não tentar fazer o mesmo no nosso sistema de negociação automatizado forex?


É quando usamos as correções, que são apenas o conjunto de punições adicionais. Digamos, nosso sistema é negociado com drawdown 0.5, enquanto queremos confirmá-lo para 0 a 0.3 intervalo. Para "dizer" ao sistema que cometeu um erro, diminuímos o lucro (um usado para determinar, qual algoritmo genético ganhou) ao grau, que é proporcional ao tamanho do DD. Então, o algoritmo de evolução cuida do resto.


Existem alguns outros fatores que queremos levar em consideração: talvez queiramos ter um número de operações de compra e venda mais ou menos igual, queremos ter mais operações rentáveis, então de falhas, podemos querer que o gráfico de lucro ser linear e assim por diante.


Em evolution_01.tsc implementamos um conjunto simples de correções. Em primeiro lugar, usamos algum número grande para um valor de correção inicial. Multiplicamos isso para valores pequenos (geralmente, entre 0 e 1), dependendo da "punição" que queremos aplicar. Então, multiplicamos nosso lucro por esta correção. Como resultado, o lucro é corrigido, para refletir o quanto o algoritmo genético corresponde aos nossos outros critérios. Então usamos o resultado para encontrar uma Rede Neural de vencedores.


FOREX Estratégia de Negociação: Discutir o exemplo 1.


O exemplo 1 funciona muito melhor do que o exemplo 0. Durante os primeiros 100 ciclos, ele aprendeu muito, e os gráficos de lucro parecem tranquilizadores. No entanto, como no exemplo 0, os negócios longos são muito mais rentáveis, o que provavelmente significa que há um problema em nossa abordagem. No entanto, o sistema encontrou um equilíbrio entre algumas das condições iniciais contraditórias:


Existem algumas dinâmicas positivas, tanto no conjunto de aprendizado como, mais importante, no conjunto de testes.


Quanto ao aprendizado adicional, no ciclo 278 podemos ver, que nosso sistema foi superado. Isso significa que ainda temos progresso no aprendizado definido:


Mas o conjunto de testes mostra fraqueza:


Este é um problema comum com NNs: quando ensinamos isso no aprendizado definido, ele aprende a lidar com isso e, às vezes, ele aprende muito bem - até o grau, quando perde o desempenho no conjunto de testes.


Para lidar com esse problema, uma solução "tradicional" é usada: continuamos procurando a Rede Neural, que executa o melhor no conjunto de testes, e salve-o, substituindo o melhor possível, cada vez que o novo pico é alcançado. Esta é a mesma abordagem, que usamos no treinamento FFBP, exceto, desta vez, temos que fazê-lo nós mesmos (adicionando código, que procura uma melhor Rede Neural em um conjunto de testes e ligando para SAVE_NN ou exportando pesos da Rede Neural para um Arquivo). Desta forma, quando você parar seu treinamento, você terá o melhor desempenho ON TESTING SET salvo e esperando por você.


Observe também que não é o máximo. lucro que você está procurando, mas ótimo desempenho, então considere usar correções, ao procurar o melhor desempenho em um conjunto de testes.


Algoritmo Genético para Análise Técnica FOREX: Onde agora?


Depois de ter sua Rede Neural de vencedor, você pode seguir as etapas, descritas no artigo anterior, para exportar pesos da Rede Neural e depois usá-los em sua plataforma de negociação em tempo real, como Meta Trader, Trade Station e assim por diante.


Alternativamente, você pode se concentrar em outras formas de otimizar a Rede Neural, ao contrário do algoritmo FFBP, aqui você pode obter avay usando conjuntos de aprendizagem e teste e mover a aprendizagem seqüencial.


Forex Algorithmic Trading: um conto prático para engenheiros.


Como você pode saber, o mercado cambial (Forex, ou FX) é usado para negociação entre pares de moedas. Mas você pode não estar ciente de que é o mercado mais líquido do mundo.


Alguns anos atrás, impulsionados pela minha curiosidade, fiz os primeiros passos no mundo da negociação algorítmica Forex criando uma conta demo e jogando simulações (com dinheiro falso) na plataforma de negociação Meta Trader 4.


Depois de uma semana de "negociação", quase dobrava meu dinheiro. Estimulado pela minha própria negociação algorítmica bem sucedida, cavei e, eventualmente, me inscrevi para vários fóruns de FX. Logo, passava horas lendo sobre sistemas de negociação algorítmica (conjuntos de regras que determinam se você deve comprar ou vender), indicadores personalizados, modos de mercado e muito mais.


Meu primeiro cliente.


Por volta dessa época, por acaso, ouvi dizer que alguém estava tentando encontrar um desenvolvedor de software para automatizar um sistema comercial simples. Isso estava de volta aos dias da faculdade quando eu estava aprendendo sobre programação simultânea em Java (threads, semáforos e todo esse lixo). Eu pensei que este sistema automatizado não poderia ser muito mais complicado do que o meu curso avançado de ciências de dados funcionar, então eu perguntei sobre o trabalho e entrou a bordo.


O cliente queria um software de negociação algorítmica construído com o MQL4, uma linguagem de programação funcional usada pela plataforma Meta Trader 4 para realizar ações relacionadas a estoque.


O papel da plataforma de negociação (Meta Trader 4, neste caso) é fornecer uma conexão com um corretor Forex. O corretor fornece uma plataforma com informações em tempo real sobre o mercado e executa suas ordens de compra / venda. Para leitores que não estão familiarizados com o comércio de Forex, aqui estão as informações fornecidas pelo feed de dados:


Através do Meta Trader 4, você pode acessar todos esses dados com funções internas, acessíveis em vários prazos: a cada minuto (M1), a cada cinco minutos (M5), M15, M30, a cada hora (H1), H4, D1, W1, MN .


O movimento do preço atual é chamado de tiquetaque. Em outras palavras, um tiquetaque é uma alteração no preço de lance ou pedido para um par de moedas. Durante os mercados ativos, pode haver vários carrapatos por segundo. Durante os mercados lentos, pode haver minutos sem um tiquetaque. O tiquetaque é o batimento cardíaco de um robô de mercado de moeda.


Quando você faz um pedido através dessa plataforma, você compra ou vende um determinado volume de uma determinada moeda. Você também define os limites stop-loss e take-profit. O limite de stop-loss é a quantidade máxima de pips (variações de preço) que você pode perder antes de desistir de um comércio. O limite de lucro obtido é a quantidade de pips que você irá acumular a seu favor antes de descontar.


As especificações de negociação algorítmica do cliente eram simples: eles queriam um robô Forex com base em dois indicadores. Para o fundo, os indicadores são muito úteis ao tentar definir um estado de mercado e tomar decisões comerciais, já que eles são baseados em dados passados ​​(por exemplo, valor de preço mais alto nos últimos n dias). Muitos vieram integrados ao Meta Trader 4. No entanto, os indicadores de que meu cliente estava interessado vieram de um sistema de comércio personalizado.


Eles queriam trocar todas as vezes que dois desses indicadores personalizados se cruzassem, e apenas em certo ângulo.


À medida que eu resolvi as mãos, eu aprendi que os programas MQL4 têm a seguinte estrutura:


A função de início é o coração de cada programa MQL4, uma vez que é executado sempre que o mercado se move (ergo, esta função será executada uma vez por marca). Este é o caso, independentemente do prazo que você está usando. Por exemplo, você poderia estar operando no cronograma H1 (uma hora), mas a função inicial executaria muitos milhares de vezes por período de tempo.


Para contornar isso, forcei a função a executar uma vez por unidade de período:


Obtendo os valores dos indicadores:


A lógica de decisão, incluindo a interseção dos indicadores e seus ângulos:


Enviando os pedidos:


Se você estiver interessado, você pode encontrar o código completo e executável no GitHub.


Backtesting.


Uma vez que eu construí meu sistema de negociação algorítmica, eu queria saber: 1) se estava se comportando adequadamente e 2) se a estratégia de negociação Forex fosse usada.


Backtesting (às vezes escrito "back-testing") é o processo de testar um sistema particular (automatizado ou não) sob os eventos do passado. Em outras palavras, você testa seu sistema usando o passado como um proxy para o presente.


MT4 vem com uma ferramenta aceitável para backtesting uma estratégia de negociação Forex (hoje em dia, existem mais ferramentas profissionais que oferecem maior funcionalidade). Para começar, você configura seus prazos e executa seu programa sob uma simulação; A ferramenta irá simular cada tico sabendo que, para cada unidade, ele deve abrir a certo preço, fechar a um determinado preço e alcançar altos e baixos especificados.


Depois de comparar as ações do programa com preços históricos, você terá um bom senso se está ou não executando corretamente.


Do backtesting, eu chequei a taxa de retorno do robô FX para alguns intervalos de tempo aleatórios; Escusado será dizer que sabia que o meu cliente não iria ficar rico com isso - os indicadores que ele havia escolhido, juntamente com a lógica da decisão, não eram lucrativos. Como amostra, aqui estão os resultados da execução do programa na janela M15 para 164 operações:


Observe que nosso equilíbrio (a linha azul) termina abaixo do seu ponto de partida.


Otimização de parâmetros e suas mentiras.


Embora o backtesting me tenha deixado cauteloso com a utilidade desse robô FX, fiquei intrigado quando comecei a brincar com seus parâmetros externos e notei grandes diferenças na relação de retorno geral. Esta ciência particular é conhecida como otimização de parâmetros.


Eu fiz alguns testes difíceis para tentar inferir o significado dos parâmetros externos na Razão de retorno e surgiu algo como isto:


Você pode pensar (como eu fiz) que você deve usar o Parâmetro A. Mas a decisão não é tão direta como pode aparecer. Especificamente, observe a imprevisibilidade do Parâmetro A: para valores de erro pequenos, seu retorno muda drasticamente. Em outras palavras, o Parâmetro A é muito provável que a previsão excessiva de resultados futuros, uma vez que qualquer incerteza, qualquer alteração no total resultará em um desempenho pior.


Mas, de fato, o futuro é incerto! E o retorno do Parâmetro A também é incerto. A melhor escolha, de fato, é confiar na imprevisibilidade. Muitas vezes, um parâmetro com um retorno máximo mais baixo, mas uma previsibilidade superior (menor flutuação) será preferível a um parâmetro com alto retorno, mas uma previsibilidade fraca.


O único que você pode ter certeza é que você não conhece o futuro do mercado, e pensar que você sabe como o mercado vai atuar com base em dados passados ​​é um erro. Por sua vez, você deve reconhecer essa imprevisibilidade em suas previsões Forex.


Isso não significa necessariamente que devemos usar o Parâmetro B, porque mesmo os retornos mais baixos do Parâmetro A funcionam melhor do que o Parâmetro B; Isso é apenas para mostrar que os Parâmetros de Otimização podem resultar em testes que exageram os resultados futuros prováveis, e esse pensamento não é óbvio.


Considerações globais de comércio de algoritmo Forex.


Desde essa primeira experiência de negociação de Forex algorítmica, construí vários sistemas de negociação automatizados para clientes e posso dizer que há espaço para explorar e continuar a análise de Forex a ser feito. Por exemplo, recentemente construí um sistema baseado em encontrar os chamados movimentos de "Big Fish"; isto é, grandes variações de pips em pequenas e minúsculas unidades de tempo. Este é um assunto que me fascina.


Construir o seu próprio sistema de simulação FX é uma excelente opção para aprender mais sobre o comércio de Forex e as possibilidades são infinitas. Por exemplo, você poderia tentar decifrar a distribuição de probabilidade das variações de preços em função da volatilidade em um mercado (EUR / USD, por exemplo), e talvez criar um modelo de simulação de Monte Carlo usando a distribuição por estado de volatilidade, usando qualquer grau de precisão que você deseja. Vou deixar isso como um exercício para o leitor ansioso.


O mundo Forex pode ser esmagador às vezes, mas espero que este artigo tenha dado alguns pontos sobre como começar em sua própria estratégia de negociação Forex.


Leitura adicional.


Hoje em dia, existe um vasto conjunto de ferramentas para construir, testar e melhorar as Automatizações do Sistema de Negociação: Trading Blox para testes, NinjaTrader para negociação, OCaml para programação, para citar alguns.


Eu li extensivamente sobre o mundo misterioso que é o mercado de moeda. Aqui estão alguns write-ups que eu recomendo para programadores e leitores entusiasmados:


Compreendendo o básico.


Sobre o que Forex é negociado?


O comércio Forex (ou FX) está comprando e vendendo por meio de pares de moedas (por exemplo, USD vs. EUR) no mercado de câmbio.


Como o Forex ganha dinheiro?


Os corretores de Forex ganham dinheiro através de comissões e taxas. Os comerciantes de Forex ganham (ou perdem) o dinheiro com base em seu tempo: se eles conseguirem vender alto o suficiente em comparação com quando eles compraram, eles podem lucrar.


O que há para testar uma estratégia de negociação?


Backtesting é o processo de testar uma estratégia ou sistema específico usando os eventos do passado.


O que é o comércio algorítmico?


O comércio algorítmico é quando um robô / programa usa um conjunto de regras que dizem quando comprar ou vender.


Um sistema de negociação Forex baseado em um algoritmo genético.


Luís Mendes Pedro Godinho Joana Dias Autor de e-mail.


Neste artigo, será descrito um algoritmo genético que visa otimizar um conjunto de regras que constituem um sistema de negociação para o mercado Forex. Cada indivíduo na população representa um conjunto de dez regras comerciais comerciais (cinco para entrar em uma posição e cinco outras para sair). Essas regras têm 31 parâmetros no total, que correspondem aos genes dos indivíduos. A população evoluirá em um determinado ambiente, definido por uma série temporal de um par de moedas específico. A adequação de um determinado indivíduo representa o quão bem ele conseguiu se adaptar ao meio ambiente e é calculado aplicando as regras correspondentes às séries temporais e calculando a relação entre o lucro e a redução máxima (a relação Stirling) . Dois pares de moedas foram utilizados: EUR / USD e GBP / USD. Foram utilizados dados diferentes para a evolução da população e para testar os melhores indivíduos. Os resultados alcançados pelo sistema são discutidos. Os melhores indivíduos conseguem alcançar resultados muito bons nas séries de treinamento. Na série de testes, as estratégias desenvolvidas mostram alguma dificuldade em obter resultados positivos, se você levar em consideração os custos de transação. Se você ignorar os custos de transação, os resultados são principalmente positivos, mostrando que os melhores indivíduos possuem alguma capacidade de previsão.


Notas.


Agradecimentos.


Gostaríamos de agradecer os árbitros anônimos, cujos comentários nos ajudaram a melhorar este artigo.


Referências.


Informações sobre direitos autorais.


Autores e afiliações.


Luís Mendes 1 Pedro Godinho 2 Joana Dias 3 Email autor 1. Faculdade de Economia Universidade de Coimbra Coimbra Portugal 2. Faculdade de Economia e GEMF Universidade de Coimbra Coimbra Portugal 3. Faculdade de Economia e Inesc-Coimbra Universidade de Coimbra Coimbra Portugal.


Sobre este artigo.


Recomendações personalizadas.


Cite o artigo.


.RIS Papers Reference Manager RefWorks Zotero.


.BIB BibTeX JabRef Mendeley.


Compartilhe o artigo.


Acesso ilimitado ao artigo completo Download instantâneo Inclua o imposto de vendas local, se aplicável.


Cite o artigo.


.RIS Papers Reference Manager RefWorks Zotero.


.BIB BibTeX JabRef Mendeley.


Compartilhe o artigo.


Mais de 10 milhões de documentos científicos ao seu alcance.


Switch Edition.


&cópia de; 2017 Springer International Publishing AG. Parte de Springer Nature.


O básico do comércio de algoritmo Forex.


Há quase trinta anos, o mercado de câmbio (Forex) foi caracterizado por negócios realizados por telefone, investidores institucionais, informações de preços opacos, uma distinção clara entre a negociação interdealer e negociação entre revendedores e clientes e baixa concentração de mercado. Hoje, os avanços tecnológicos transformaram o mercado. Os negócios são feitos principalmente por meio de computadores, permitindo que os comerciantes de varejo entrem no mercado, os preços de transmissão em tempo real levaram a uma maior transparência e a distinção entre revendedores e seus clientes mais sofisticados desapareceu em grande parte.


Uma mudança particularmente significativa é a introdução do comércio algorítmico, que, ao fazer melhorias significativas no funcionamento do comércio de Forex, também coloca uma série de riscos. Ao analisar os fundamentos do mercado Forex e da negociação algorítmica, identificaremos algumas vantagens que a negociação algorítmica trouxe para o comércio de moeda, ao mesmo tempo que apontou alguns dos riscos.


Fundamentos do Forex.


O Forex é o local virtual em que os pares de moedas são negociados em volumes variáveis ​​de acordo com os preços cotados, segundo os quais uma moeda base possui um preço em moeda de cotação. Operando 24 horas por dia, cinco dias por semana, o Forex é considerado o maior e mais líquido mercado financeiro do mundo. Pelo Banco de Pagamentos Internacionais (BIS), o volume médio global diário de negociação em abril de 2018 foi de US $ 2,0 trilhões. A maior parte dessa negociação é feita por dólares dos EUA, euros e ienes japoneses e envolve uma variedade de jogadores, incluindo bancos privados, bancos centrais, fundos de pensão, investidores institucionais, grandes corporações, empresas financeiras e comerciantes de varejo individuais.


Embora a negociação especulativa possa ser a principal motivação para certos investidores, o principal motivo para a existência do mercado Forex é que as pessoas precisam trocar moedas para comprar bens e serviços estrangeiros. A atividade no mercado Forex afeta as taxas de câmbio reais e, portanto, pode afetar profundamente o resultado, o emprego, a inflação e os fluxos de capital de qualquer país em particular. Por essa razão, os formuladores de políticas públicas, o público e a mídia têm todo o interesse no que se passa no mercado Forex.


Noções básicas de negociação algorítmica.


Um algoritmo é essencialmente um conjunto de regras específicas projetadas para completar uma tarefa claramente definida. Na negociação do mercado financeiro, os computadores realizam algoritmos definidos pelo usuário, caracterizados por um conjunto de regras que consistem em parâmetros como timing, preço ou quantidade que estruturam as negociações que serão feitas.


Existem quatro tipos básicos de negociação algorítmica nos mercados financeiros: estatística, cobertura automática, estratégias de execução algorítmica e acesso direto ao mercado. A estatística refere-se a uma estratégia algorítmica que busca oportunidades de negociação lucrativas com base na análise estatística dos dados históricos da série temporal. Auto-hedging é uma estratégia que gera regras para reduzir a exposição de um comerciante ao risco. O objetivo das estratégias de execução algorítmica é executar um objetivo predefinido, como reduzir o impacto do mercado ou executar um comércio rapidamente. Finalmente, o acesso direto ao mercado descreve as velocidades ótimas e os custos mais baixos nos quais os comerciantes algorítmicos podem acessar e se conectar a várias plataformas de negociação.


Uma das subcategorias de negociação algorítmica é a negociação de alta freqüência, que se caracteriza pela alta freqüência de execuções de ordem comercial. O comércio de alta velocidade pode dar vantagens significativas para os comerciantes, dando-lhes a capacidade de fazer negócios em milissegundos de mudanças de preços incrementais, mas também pode comportar certos riscos.


Negociação Algorítmica no Mercado Forex.


Grande parte do crescimento da negociação algorítmica nos mercados Forex nos últimos anos deveu-se a algoritmos que automatizam certos processos e reduzem as horas necessárias para realizar transações cambiais. A eficiência criada pela automação conduz a menores custos na realização desses processos. Um desses processos é a execução de ordens comerciais. Automatizar o processo de negociação com um algoritmo que negocia com base em critérios predeterminados, como a execução de pedidos ao longo de um período de tempo especificado ou a um preço específico, é significativamente mais eficiente do que a execução manual por humanos.


Os bancos também aproveitaram os algoritmos programados para atualizar os preços dos pares de moedas em plataformas de negociação eletrônicas. Esses algoritmos aumentam a velocidade com que os bancos podem cotizar os preços de mercado, ao mesmo tempo em que reduz o número de horas de trabalho manual necessárias para cotação dos preços.


Alguns bancos programam algoritmos para reduzir sua exposição ao risco. Os algoritmos podem ser usados ​​para vender uma moeda específica para corresponder ao comércio de um cliente no qual o banco comprou o valor equivalente para manter uma quantidade constante dessa moeda em particular. Isso permite que o banco mantenha um nível de exposição de risco pré-especificado para manter essa moeda.


Esses processos foram tornados significativamente mais eficientes por algoritmos, levando a menores custos de transação. No entanto, estes não são os únicos fatores que têm impulsionado o crescimento na negociação algorítmica Forex. Os algoritmos têm sido cada vez mais utilizados para o comércio especulativo, pois a combinação de alta freqüência e a capacidade do algoritmo de interpretar dados e executar ordens permitiram que os comerciantes explorassem oportunidades de arbitragem decorrentes de pequenos desvios de preços entre pares de moedas.


Todas essas vantagens levaram ao aumento do uso de algoritmos no mercado Forex, mas vejamos alguns dos riscos que acompanham a negociação algorítmica.


Riscos envolvidos no comércio de Forex algorítmico.


Embora a negociação algorítmica tenha feito muitas melhorias, existem algumas desvantagens que podem ameaçar a estabilidade e a liquidez do mercado Forex. Uma dessas desvantagens refere-se a desequilíbrios no poder comercial dos participantes do mercado. Alguns participantes têm meios para adquirir tecnologia sofisticada que lhes permite obter informações e executar ordens a uma velocidade muito mais rápida que outras. Este desequilíbrio entre os ricos e os que não têm em termos da tecnologia algorítmica mais sofisticada pode levar à fragmentação no mercado que pode levar a uma falta de liquidez ao longo do tempo.


Além disso, embora existam diferenças fundamentais entre os mercados de ações e o mercado Forex, há alguns que temem que a negociação de alta freqüência que exacerbasse o crash do mercado de ações em 6 de maio de 2018 poderia afetar de forma semelhante o mercado Forex. Como os algoritmos são programados para cenários de mercado específicos, eles podem não responder rapidamente o suficiente se o mercado mudasse drasticamente. Para evitar este cenário, os mercados podem precisar ser monitorados e o comércio algorítmico suspenso durante a turbulência do mercado. No entanto, em cenários tão extremos, uma suspensão simultânea de negociação algorítmica por numerosos participantes do mercado pode resultar em alta volatilidade e uma drástica redução na liquidez do mercado.


The Bottom Line.


Embora a negociação algorítmica tenha sido capaz de aumentar a eficiência, reduzindo os custos de negociação de moedas, também veio com alguns riscos adicionais. Para que as moedas funcionem corretamente, elas devem ser lojas de valor um tanto estáveis ​​e ser altamente líquidas. Assim, é importante que o mercado Forex permaneça líquido com baixa volatilidade de preços.


Como em todas as áreas da vida, a nova tecnologia apresenta muitos benefícios, mas também vem com novos riscos. O desafio para o futuro da negociação algorítmica de Forex será como instituir mudanças que maximizem os benefícios ao mesmo tempo em que reduzem os riscos.

No comments:

Post a Comment