суббота, 28 апреля 2018 г.

Redes neurais em estratégias de negociação


Redes Neurais: Previsão de Lucros.
As redes neurais são algoritmos treináveis ​​de última geração que emulam certos aspectos importantes no funcionamento do cérebro humano. Isso lhes dá uma capacidade única de auto-treinamento, a capacidade de formalizar informações não confidenciais e, mais importante, a capacidade de fazer previsões com base nas informações históricas que têm à sua disposição.
As redes neurais têm sido usadas cada vez mais em uma variedade de aplicações de negócios, incluindo soluções de previsão e pesquisa de marketing. Em algumas áreas, como a detecção de fraudes ou a avaliação de riscos, elas são líderes indiscutíveis. Os principais campos em que as redes neurais encontraram aplicação são operações financeiras, planejamento empresarial, comércio, análise de negócios e manutenção de produtos. As redes neurais podem ser aplicadas de forma vantajosa por todos os tipos de traders, então se você é um trader e ainda não foi apresentado a redes neurais, nós o levaremos através deste método de análise técnica e mostraremos como aplicá-lo a seu estilo de negociação.
Use Redes Neurais para Descobrir Oportunidades.
Assim como qualquer tipo de ótimo produto ou tecnologia, as redes neurais começaram a atrair todos aqueles que estão procurando um mercado promissor. Torrents de anúncios sobre softwares da próxima geração inundaram o mercado - anúncios que celebram o mais poderoso de todos os algoritmos de redes neurais já criados. Mesmo nos raros casos em que as declarações de propaganda se assemelham à verdade, tenha em mente que um aumento de 10% na eficiência é provavelmente o máximo que você obterá de uma rede neural. Em outras palavras, ele não produz retornos miraculosos e independentemente de quão bem ele funciona em uma situação particular, haverá alguns conjuntos de dados e classes de tarefas para os quais os algoritmos usados ​​anteriormente permanecem superiores. Lembre-se disso: não é o algoritmo que faz o truque. Informações de entrada bem preparadas sobre o indicador alvo são o componente mais importante do seu sucesso com redes neurais.
Convergência mais rápida é melhor?
Muitos daqueles que já usam redes neurais acreditam erroneamente que quanto mais rápido sua rede fornece resultados, melhor é. Isso, no entanto, é uma ilusão. Uma boa rede não é determinada pela taxa na qual ela produz resultados e os usuários devem aprender a encontrar o melhor equilíbrio entre a velocidade na qual a rede treina e a qualidade dos resultados que ela produz.
Aplicação correta de redes neurais.
Muitos traders aplicam redes neurais incorretamente porque depositam muita confiança no software que usam, sem ter recebido instruções adequadas sobre como usá-lo corretamente. Para usar uma rede neural do jeito certo e, assim, de forma vantajosa, um comerciante deve prestar atenção a todas as etapas do ciclo de preparação da rede. É o comerciante e não a sua rede que é responsável por inventar uma ideia, formalizar essa ideia, testá-la e aperfeiçoá-la e, finalmente, escolher o momento certo para descartá-la quando ela não for mais útil. Vamos considerar as etapas desse processo crucial em mais detalhes:
1. Encontrar e formalizar uma ideia de negociação.
2. Melhorando os parâmetros do seu modelo.
3. Descarte do modelo quando se tornar obsoleto.
Todo modelo baseado em rede neural tem uma vida útil e não pode ser usado indefinidamente. A longevidade do tempo de vida de um modelo depende da situação do mercado e de quanto tempo as interdependências de mercado refletidas nele permanecem atuais. No entanto, mais cedo ou mais tarde, qualquer modelo se torna obsoleto. Quando isso acontece, é possível treinar novamente o modelo usando dados completamente novos (ou seja, substituir todos os dados que foram usados), adicionar novos dados ao conjunto de dados existente e treinar o modelo novamente ou simplesmente retirar o modelo completamente.
Muitos comerciantes cometem o erro de seguir o caminho mais simples - eles dependem muito e usam a abordagem para a qual seu software fornece a funcionalidade mais amigável e automatizada. Essa abordagem mais simples está prevendo um preço de alguns bares à frente e baseando seu sistema de negociação nessa previsão. Outros traders prevêem mudança de preço ou porcentagem da mudança de preço. Essa abordagem raramente produz melhores resultados do que a previsão direta do preço. Ambas as abordagens simplistas não descobrem e exploram com lucro a maioria das importantes interdependências de longo prazo e, como resultado, o modelo rapidamente se torna obsoleto à medida que as forças motrizes globais mudam.
A abordagem geral mais ideal para o uso de redes neurais.

Forex Mecânico
Negociação no mercado de câmbio usando estratégias de negociação mecânicas.
Redes Neurais em Negociação: Construindo um poderoso comércio & # 8220; cérebro & # 8221; com vários NN.
Vamos começar a semana com boas notícias: o). Nos últimos dois anos, o desenvolvimento de sistemas de aprendizado de máquina tem sido uma grande prioridade para mim. Essas técnicas nos oferecem o sonho de implementações comerciais permanentemente auto-adaptáveis, nas quais as decisões de negociação são constantemente ajustadas para corresponder aos dados mais recentes. Embora esteja ciente de que mesmo este nível de adaptabilidade não garante qualquer rentabilidade & # 8211; como os modelos subjacentes podem se tornar inúteis sob algumas novas condições & # 8211; nos fornece um grau maior de confiança em relação à nossa capacidade de prever um determinado instrumento de mercado daqui para frente. No post de hoje, vou mostrar o meu mais recente desenvolvimento no mundo das redes neurais, onde finalmente consegui o que considero excelentes resultados de testes históricos baseados em técnicas de aprendizado de máquina. Através deste artigo eu vou discutir os diferentes métodos que foram introduzidos neste novo sistema e como a chave para o seu sucesso veio da junção de alguns dos já bem sucedidos # 8211; ainda não excelente & # 8211; implementações de negociação.
Antes de tudo, gostaria de descrever a maneira como desenvolvo estratégias de redes neurais para que você possa entender melhor meus sistemas e desenvolvimentos mais recentes. Meus sistemas de negociação de rede neural são projetados para que eles sempre reciclem pesos recém-aleatorizados em cada nova barra diária usando as barras N passadas (usualmente dados para cerca de 200-500 dias são usados) e então tomar uma decisão comercial somente para a próxima barra diária . O processo de re-treinamento é feito em cada barra, a fim de evitar qualquer ajuste de curva a um determinado tempo de partida ou frequência de treinamento, e os pesos são completamente redefinidos para evitar qualquer dependência do comportamento de treinamento anterior. As redes neurais que eu tenho programado aproveitam a nossa estrutura de programação F4 e a biblioteca FANN (Fast Artificial Neural Network), que é o núcleo da implementação de aprendizado de máquina. A topologia da rede não é otimizada contra a lucratividade, mas simplesmente designada como a quantidade mínima de neurônios necessária para alcançar a convergência dentro de um número razoável de épocas de treinamento. Algumas variáveis, como o número de entradas de treinamento e exemplos usados, são deixadas como parâmetros do modelo. Agora que você entende melhor como eu abordo as redes neurais, podemos ir mais fundo no meu trabalho no NN.
Tenho que confessar que minha busca por melhorar as estratégias de negociação de redes neurais foi preenchida com frustração. Levei muito tempo para desenvolver meu primeiro modelo de sucesso (o sistema de negociação Sunqu & # 8212; que está realmente em lucro depois de mais de um ano de negociação ao vivo), mas após este desenvolvimento inicial eu não fui capaz de melhorá-lo muito mais (além de algumas pequenas melhorias). Depois disso, decidi deixar este modelo sozinho & # 8211; o que é realmente complicado na natureza & # 8211; e tentar desenvolver um modelo mais simples que, esperamos, seja mais fácil de melhorar. Foi quando desenvolvi o sistema Paqarin, que usa um conjunto mais simples de entradas e saídas para atingir níveis semelhantes de rentabilidade histórica no EUR / USD. Contudo & # 8211; para continuar minha frustração & # 8211; O Paqarin não era muito fácil de melhorar também. Eu fiz algum progresso na melhoria desta estratégia de negociação durante as últimas semanas, mas eu quero deixar essa discussão para um post futuro (como ele lida com insumos).
Minha última tentativa de superar os problemas acima foi a estratégia de negociação Tapuy, um sistema que foi inspirado em um artigo sobre o uso do NN em imagens. Usando as bibliotecas ChartDirector, DeVil e FANN, pude implementar um mecanismo de criação e processamento de imagens que usava gráficos diários do EUR / USD (uma redução drástica deles) para fazer previsões sobre o próximo dia de negociação. Esse sistema é muito interessante porque mostra que os pixels simples dentro desses gráficos contêm informações suficientes para tomar decisões que tenham uma vantagem histórica significativa. O Tapuy também é interessante no sentido de que ele processa gráficos de negociação, a mesma entrada que os operadores manuais usam para lidar com o mercado. No entanto, este sistema não era uma panacéia e melhorar esta estratégia também foi extremamente difícil. Tapuy também é difícil de fazer o back-test (demora muito tempo devido ao processo de criação e leitura da imagem) e, portanto, a quantidade de experimentos que poderiam ser feitos era reduzida.
Depois de criar estes três sistemas, minhas novas criações do NN foram nulas. Eu não poderia melhorá-los substancialmente e não consegui encontrar uma nova estratégia para criar um NN, esta foi a principal razão pela qual eu comecei a experimentar novas técnicas de aprendizado de máquina (como classificadores lineares, keltners, máquinas de vetores de suporte, etc. ). No entanto, durante a semana passada, tive uma espécie de epifania quando pensava em maneiras de limitar a exposição desses sistemas ao mercado, fazendo com que eles negociassem menos e percebesse que a solução para meus problemas estava na minha frente. Tempo. A solução para melhorar o desempenho de três classificadores & # 8211; todos eles mostrando bordas históricas de longo prazo & # 8211; é simples & # 8230; Basta colocá-los juntos para tomar decisões comerciais! : o)
Certamente, minha experiência com outras técnicas de aprendizado de máquina me disse que colocar classificadores juntos para tomar decisões comerciais geralmente melhorava o desempenho, mas eu nunca havia pensado em colocar esses sistemas juntos porque os via principalmente como estratégias de negociação separadas e não simplesmente como tomadores de decisões de aprendizado de máquina. No entanto, fazia todo o sentido colocar os três núcleos de tomada de decisão em uma única estratégia: o que agora eu gosto de chamar de 'AsirikuyBrain' # 8221; e chegar a conclusões sobre decisões de negociação a partir de uma previsão que esteja de acordo com as três técnicas. Se todos eles tiverem bordas de longo prazo, sua concordância total deverá ter mais poder de previsão do que sua concordância parcial. O resultado me surpreendeu completamente. As estratégias de negociação melhoraram muito as estatísticas umas das outras (muito mais do que se fossem negociadas juntas como sistemas dentro de um portfólio) e, além disso, diminuíam a exposição geral de mercado das estratégias por uma grande margem. O sistema só tem uma posição aberta a qualquer momento, mas precisa que todos os preditores concordem para entrar ou sair de uma posição.
A rentabilidade global é a mais alta entre todos os sistemas e o rebaixamento é o mais baixo, o que significa que o AsirikuyBrain obtém uma taxa de Retorno Anualizado Máximo que é maior do que qualquer uma das técnicas de negociação individuais utilizadas, a duração máxima do período de rebaixamento também é reduziu consideravelmente, de mais de 1000 dias para os outros sistemas NN, para menos de 750 dias. A linearidade do sistema de negociação em simulações não compostas também aumenta tremendamente (para R ^ 2 = 0,98), graças ao poder de suavização obtido do efeito de comitê (o que significa que a idéia funciona!). Como você pode ver nas imagens neste post, as curvas para os sistemas individuais são marcadamente inferiores quando comparadas com a curva de capital da estratégia AsirikuyBrain. Eu continuarei fazendo alguns testes e melhorias, então espere alguns novos posts no NN dentro dos próximos dias e semanas (incluindo alguns posts sobre insumos, precisão de predição Vs lucratividade e previsões de lucratividade Vs previsões de direcionalidade).
Se você gostaria de aprender mais sobre estratégias de rede neural e como você também pode construir constantemente sistemas NN de reciclagem usando FANN que podem ser executados em MQL4 / MQL5 / JForex ou na API Oanda REST, por favor, considere juntar-se à Asirikuy, um site repleto de recursos educacionais. vídeos, sistemas de negociação, desenvolvimento e uma abordagem sólida, honesta e transparente para o comércio automatizado em geral. Espero que tenha gostado deste artigo ! : o)
7 Responses to & # 8220; Redes Neurais em Negociação: Construindo um poderoso comércio & # 8220; cérebro & # 8221; com vários NN & # 8221;
você vai lançar este AsirikuyBrain e no futuro próximo?
Obrigado pelo seu comentário: o) Sim, será na atualização F4.3.14 do próximo fim de semana,
Conceito interessante. Eu estou calculando um CAGR = 3.5% ou perto dele. Eu acho que isso é muito baixo (SPX TR para o mesmo período é de cerca de 10%) e combinado com o longo drawdown eu acho que você ainda pode ter um longo caminho a percorrer com isso. É bom que você é persistente embora :)
E se você ajustar o tamanho da posição 2, as previsões concordam com 2/3 e o tamanho até a posição total, quando todas concordam?
Você mantém a posição aberta até que um preditor não concorde ou você apenas a feche no final do dia? Eu não sei se perdi isso.
Obrigado por postar: o)
Conceito interessante. Estou calculando um CAGR = 3,5% ou próximo a ele. Eu acho que isso é muito baixo (SPX TR para o mesmo período é de cerca de 10%) e combinado com o longo drawdown eu acho que você ainda pode ter um longo caminho a percorrer com isso. É bom que você é persistente embora :)
O CAGR não pode ser calculado a partir dessa simulação não composta como se fosse uma simulação regular, uma vez que o risco é uma quantia constante em USD (1% do saldo inicial). Ao usar a gestão de dinheiro regular (1% de risco de saldo no comércio aberto), o CAGR é na verdade perto de 10% e o AAR / MaxDD está na região 0,8-0,9 (o máximo DD é de cerca de 13,5%). O gerenciamento regular de dinheiro composto geraria gráficos de crescimento exponencial (que são difíceis de interpretar visualmente de maneira adequada), motivo pelo qual eu sempre publico simulações não compostas. No entanto, ao negociar ao vivo, você sempre usaria a administração de dinheiro regular, arriscando uma porcentagem fixa do saldo na negociação aberta. Eu também fiz algumas melhorias significativas nos últimos dias e tenho a duração do rebaixamento de Max em menos de 500 dias: o)
E se você ajustar o tamanho da posição 2, as previsões concordam com 2/3 e o tamanho até a posição total, quando todas concordam?
É uma ideia interessante! Vou tentar e ver o que recebo.
Você mantém a posição aberta até que um preditor não concorde ou você apenas a feche no final do dia? Não sei se perdi isso.
Eu tentei os dois, fechando posições em algum desacordo me deu resultados piores, eu só fecho negócios sempre que o SL é atingido ou um sinal oposto (onde todos os NNs concordam) aparece.
Obrigado novamente por comentar Bog: o)
O gerenciamento de dinheiro de composição regular geraria gráficos de crescimento exponenciais (que são difíceis de interpretar visualmente de maneira adequada), motivo pelo qual eu sempre posto simulações não compostas. No entanto, ao negociar ao vivo, você sempre usaria uma administração de dinheiro regular, arriscando uma porcentagem fixa do saldo na negociação aberta. & # 8221;
Eu sou da opinião que MM regular deve ser usado em backtests porque é um método anti-martingale adequado. É raro ver um crescimento exponencial devido a quedas. A melhor maneira de fazer backtest é acreditar na maneira como você negocia e envolve MM.
Eu sou da opinião que MM regular deve ser usado em backtests porque é um método anti-martingale adequado. É raro ver um crescimento exponencial devido a quedas. A melhor maneira de fazer backtest é acreditar na maneira como você negocia e envolve MM.
Sim, claro, eu concordo plenamente com isso, isso (com MM) é, obviamente, a maneira pela qual nós testamos os sistemas para analisar antes da negociação ao vivo. Eu só executo as simulações não-compostas no blog porque elas são mais fáceis de analisar e tirar conclusões (tendo apenas os gráficos). Uma simulação regular de MM sem as estatísticas (apenas o gráfico) é mais difícil de analisar. Da próxima vez, também postarei algumas estatísticas regulares do MM. Obrigado novamente por comentar Bob: o)
A linearidade da curva de capital é muito impressionante Daniel. Obrigado por compartilhar seu trabalho duro.

Redes neurais para negociação algorítmica. Previsão simples de séries temporais.
ATUALIZAÇÃO IMPORTANTE:
Esta é a primeira parte das minhas experiências na aplicação de aprendizado profundo ao financiamento, em particular ao comércio algorítmico.
Eu quero implementar o sistema de negociação do zero baseado apenas em abordagens de aprendizado profundo, então para qualquer problema que tenhamos aqui (previsão de preço, estratégia de negociação, gerenciamento de risco) usaremos diferentes variações de redes neurais artificiais (RNAs) e verificaremos o quão bem elas podem lidar com isso.
Agora pretendo trabalhar nas próximas seções:
Previsão de séries temporais com dados brutos Previsão de séries temporais com recursos personalizados Otimização de hiperparâmetros Implementação de estratégia de negociação, backtesting e gerenciamento de riscos Estratégias de negociação mais sofisticadas, aprendizado de reforço Indo em direto, API de corretores, ganhando dinheiro (l̶o̶s̶i̶n̶g̶).
Eu recomendo fortemente que você verifique o código e o IPython Notebook neste repositório.
Nesta primeira parte, quero mostrar como MLPs, CNNs e RNNs podem ser usados ​​para previsão de séries temporais financeiras. Nesta parte, não vamos usar nenhuma engenharia de recursos. Vamos considerar apenas o conjunto de dados históricos dos movimentos do preço do índice S & P 500. Temos informações de 1950 a 2016 sobre preços abertos, próximos, altos e baixos para todos os dias do ano e volume de negócios. Em primeiro lugar, vamos tentar apenas prever preço próximo no final do dia seguinte, em segundo lugar, vamos tentar prever retorno (preço próximo - preço aberto). Faça o download do conjunto de dados do Yahoo Finance ou deste repositório.
Problema definiton.
Consideraremos nosso problema como 1) problema de regressão (tentando prever preço exatamente próximo ou retorno no dia seguinte) 2) problema de classificação binária (o preço subirá [1; 0] ou diminuirá [0; 1]).
Para treinar NNs, vamos usar o framework Keras.
Primeiro, vamos preparar nossos dados para treinamento. Queremos prever o valor de t + 1 com base nas informações de N dias anteriores. Por exemplo, tendo preços próximos dos últimos 30 dias no mercado, queremos prever, qual será o preço amanhã, no dia 31.
Usamos primeiro 90% das séries temporais como conjunto de treinamento (consideramos como dados históricos) e duramos 10% como conjunto de testes para avaliação de modelo.
Aqui está um exemplo de carregamento, divisão em amostras de treinamento e pré-processamento de dados de entrada brutos:
Problema de regressão. MLP.
Será apenas perceptron de camada 2-escondida. Número de neurônios ocultos é escolhido empiricamente, vamos trabalhar na otimização de hiperparâmetros nas próximas seções. Entre duas camadas ocultas, adicionamos uma camada de eliminação para evitar overfitting.
O importante é Denso (1), Ativação ("linear") e "mse" na seção de compilação. Queremos uma saída que possa estar em qualquer intervalo (predizemos valor real) e nossa função de perda é definida como erro quadrático médio.
Vejamos o que acontece se apenas passarmos pedaços de 20 dias para fechar preços e prever preço no 21º dia. MSE final = 46,3635263557, mas não é uma informação muito representativa. Abaixo está o gráfico das previsões para os primeiros 150 pontos do conjunto de dados de teste. A linha preta é dados reais, um azul - previsto. Podemos ver claramente que nosso algoritmo não é nem próximo por valor, mas pode aprender a tendência.
Vamos escalar nossos dados usando o método preprocessing. scale () de sklearn para termos a média zero e a variação de unidade da série temporal e treinar o mesmo MLP. Agora temos MSE = 0,0040424330518 (mas é em dados escalados). No gráfico abaixo, você pode ver as séries temporais reais escalonadas (preto) e nossa previsão (azul) para ele:
Para usar este modelo no mundo real, devemos voltar para as séries temporais sem escala. Podemos fazê-lo, multiplicando ou predizendo por desvio padrão de séries temporais que usamos para fazer previsões (20 etapas de tempo não escalonadas) e adicionando seu valor médio:
MSE neste caso é igual a 937.963649937. Aqui está o gráfico de previsões restauradas (vermelho) e dados reais (verde):
Não é ruim, não é? Mas vamos tentar algoritmos mais sofisticados para esse problema!
Problema de regressão. CNN.
Eu não vou mergulhar na teoria das redes neurais convolucionais, você pode conferir esses recursos incríveis:
Vamos definir uma rede neural convolucional de duas camadas (combinação de camadas de convolução e de agrupamento máximo) com uma camada totalmente conectada e a mesma saída anterior:
Vamos verificar os resultados. MSEs para dados escalados e restaurados são: 0.227074542433; 935.520550172. As parcelas estão abaixo:
Mesmo olhando no MSE em dados escalonados, esta rede aprendeu muito pior. Muito provavelmente, a arquitetura mais profunda precisa de mais dados para treinamento ou é super adaptada devido ao número muito alto de filtros ou camadas. Vamos considerar esse problema mais tarde.
Problema de regressão. RNN
Como arquitetura recorrente, eu quero usar duas camadas LSTM empilhadas (leia mais sobre LSTMs aqui).
As parcelas das previsões estão abaixo, MSEs = 0,0246238639582; 939.948636707.
A previsão de RNN parece mais com o modelo de média móvel, não pode aprender e prever todas as flutuações.
Então, é um resultado um pouco imprevisível, mas podemos ver que os MLPs funcionam melhor para essa previsão de séries temporais. Vamos verificar o que acontecerá se mudarmos da regressão para o problema de classificação. Agora, usaremos preços não próximos, mas retorno diário (preço de fechamento de preço fechado) e queremos prever se o preço de fechamento é maior ou menor do que o preço de abertura com base nos retornos dos últimos 20 dias.
Problema de classificação. MLP.
O código é alterado apenas um pouco - nós mudamos nossa última camada Densa para ter saída [0; 1] ou [1; 0] e adicione a saída softmax para esperar uma saída probabilística.
Para carregar saídas binárias, altere a seguinte linha de código:
Também mudamos a função de perda para entropia cruzada binária e adicionamos métricas de precisão.
Ah, não é melhor do que adivinhar aleatoriamente (50% de precisão), vamos tentar algo melhor. Confira os resultados abaixo.
Problema de classificação. CNN.
Problema de classificação. RNN
Conclusões
Podemos ver, que tratar a previsão de séries temporais financeiras como o problema de regressão é melhor abordagem, pode aprender a tendência e os preços próximos do real.
O que foi surpreendente para mim é que os MLPs estão tratando melhor os dados de sequência como CNNs ou RNNs, que devem funcionar melhor com séries temporais. Eu explico com um conjunto de dados muito pequeno (
16k time stamps) e hiperparâmetros dummy.
Você pode reproduzir resultados e melhorar usando código do repositório.
Acho que podemos obter melhores resultados tanto na regressão quanto na classificação usando diferentes características (não apenas séries temporais escalonadas) como alguns indicadores técnicos, volume de vendas. Além disso, podemos experimentar dados mais frequentes, digamos, pulsos minuto a minuto para ter mais dados de treinamento. Todas essas coisas eu vou fazer depois, fique atento :)
Ao aplaudir mais ou menos, você pode nos indicar quais histórias realmente se destacam.
Alex Honchar.
máquinas de ensino e rap.
Mundo de aprendizado de máquina.
O melhor sobre Aprendizado de Máquina, Visão Computacional, Aprendizado Profundo, Processamento de Linguagem Natural e outros.

Redes neurais para negociação algorítmica: aprimorando estratégias clássicas.
Olá a todos! Em cinco últimos tutoriais discutimos previsão financeira com redes neurais artificiais onde comparamos arquiteturas diferentes para previsão de séries temporais financeiras, percebemos como fazer essa previsão adequadamente com préprocessamento e regularização de dados corretos, executamos nossas previsões baseadas em séries temporais multivariadas e podemos produzir realmente bons resultados para previsão de volatilidade e implementação de funções de perda personalizadas. No último, definimos e experimentamos o uso de dados de diferentes fontes e a solução de duas tarefas com rede neural única e hiperparâmetros otimizados para melhores previsões.
Hoje quero fazer uma espécie de conclusão de séries temporais financeiras com um caso de uso de previsão prática: melhoraremos uma estratégia de média móvel clássica com rede neural e mostraremos que ela realmente melhora o resultado final e analisará os novos objetivos de previsão que você mais gostaria Brincar com.
Postagens anteriores:
Você pode verificar o código para treinar a rede neural no meu Github.
Nós já vimos antes, que podemos prever valores muito diferentes - de mudanças de preço a volatilidade. Antes estávamos considerando essas previsões como algo abstrato e até tentamos negociar apenas observando essas previsões "de cima para baixo", o que não era bom. Mas também sabemos que existem muitas outras estratégias de negociação baseadas em análises técnicas e indicadores financeiros. Por exemplo, podemos construir médias móveis de janelas diferentes (uma "longa", digamos 30 dias e outra mais "curta", provavelmente 14 dias) e acreditamos que os pontos de passagem são os momentos em que a tendência muda:
Mas esta estratégia de negociação tem uma armadilha principal: nas regiões planas ainda faremos os negócios nos pontos em que nada realmente muda, então vamos perder dinheiro:
Como podemos superar isso com o uso de aprendizado de máquina?
Vamos verificar a seguinte hipótese de estratégia: nos momentos em que as médias móveis estão se cruzando, faremos a previsão de mudança de alguma característica, e se realmente esperamos um salto, acreditaremos nesse sinal de negociação. Caso contrário, vamos ignorá-lo, porque não queremos perder dinheiro em regiões planas.
Como objetivo de previsão, quero tentar a assimetria - uma medida de assimetria de uma distribuição. Vamos supor que, se prevermos uma mudança em uma distribuição, isso significará que nossa tendência atual (não apenas a região plana) mudará no futuro.
Dados de entrada.
Aqui nós usaremos pandas e PyTi para gerar mais indicadores para usá-los como entrada também. Utilizaremos MACD, Ichimocku cloud, RSI, volatilidade e outros. Todos esses valores formarão séries temporais multivariadas que serão achatadas para uso posterior no MLP ou permanecerão para CNN ou RNN.
Obtive recursos de indicadores concatenados com tuplas de OHLCV para gerar o vetor final.
Arquitetura de rede.
Aqui eu quero mostrar uma das opções de como treinar MLP regularizado para previsão de séries temporais:
O ponto “Novel” aqui está adicionando um pequeno ruído à entrada e à saída da camada única da nossa rede neural. Ele pode funcionar muito semelhante à regularização L2, explicação matemática que você pode verificar neste livro incrível.
A rede neural é treinada normalmente, vamos ver como nossas previsões de assimetria podem melhorar (ou não) a estratégia de médias móveis.
Nós treinamos nossa rede nos preços da AAPL de 2012 a 2016 e como teste em 2016-2017, como fizemos em um dos tutoriais anteriores.
Após o treinamento de uma rede, traçamos nossos preços mais próximos, movendo médias e linhas verticais em pontos de cruzamento: linhas vermelhas e laranjas representam pontos em que gostaríamos de trocar e verdes - onde melhor não. Não parece perfeito, mas vamos fazer o backtesting para julgá-lo.
Resultados sem rede neural.
Eu usei o backtesting descrito neste post, então vou fornecer apenas as principais métricas e gráficos:
(«Sharpe Ratio», «16,27»),
('Drawdown Duration', '204')]
Resultados com rede neural.
Como vamos usar apenas sinais de negociação "vermelho" e "laranja" e pular os verdes. Como podemos ver, essa estratégia fez 2 negócios a menos e nos ajudou a reduzir um pouco o primeiro rebaixamento e aumentar o retorno final quase duas vezes!
(«Sharpe Ratio», «27.99»),
('Drawdown Duration', '102')]
Possíveis melhorias.
Parece que esta ideia, pelo menos, tem algum sentido! Gostaria de apresentar algumas melhorias possíveis que eu recomendo que você experimente por conta própria:
Diferentes estratégias de indicadores: MACD, RSI Estratégias de negociação de pares podem ser otimizadas extremamente bem com a abordagem proposta Tente prever diferentes características de séries temporais: expoente de Hurst, coeficiente de autocorrelação, talvez outros momentos estatísticos.
Com este post eu gostaria de terminar (pelo menos por um tempo) tópico de previsão de séries de tempo financeiro usando redes neurais. Vamos ser honestos, definitivamente não é um Santo Graal e não podemos usá-los diretamente para prever se o preço vai subir ou descer para ganhar muito dinheiro. Consideramos diferentes fontes e objetivos de dados, tratados cuidadosamente com overparing e otimizados hyperparameters. Que conclusões podemos fazer?
Tenha cuidado com o overfitting! Você fará isso em 99% dos casos, não confie em valores como 80% de acurácia de parcelas muito bonitas - deve ser um erro Tente prever algo diferente, mas feche os preços ou retorne - volatilidade, assimetria, talvez outras características aprendizagem multimodal se você tiver fontes de dados diferentes Não se esqueça de encontrar os hyperparameters certos! Crie uma estratégia que pode ser uma mistura de alguns clássicos e baseados em aprendizado de máquina e backtest isso!
Espero que esta série de posts seja útil para alguém, voltarei em breve com os tópicos de notícias… Fique ligado! :)
Ao aplaudir mais ou menos, você pode nos indicar quais histórias realmente se destacam.
Alex Honchar.
máquinas de ensino e rap.
Mundo de aprendizado de máquina.
O melhor sobre Aprendizado de Máquina, Visão Computacional, Aprendizado Profundo, Processamento de Linguagem Natural e outros.

Redes neurais aprendem estratégias de negociação Forex.
O mais recente buzz no mundo dos estrangeiros é redes neurais, um termo retirado da comunidade de inteligência artificial. Em termos técnicos, as redes neurais são métodos de análise de dados que consistem em um grande número de unidades de processamento que são interligadas por probabilidades ponderadas. Em termos mais simples, as redes neurais são um modelo vagamente parecido com o modo como o cérebro humano funciona e aprende. Há várias décadas, os membros da comunidade de inteligência artificial usam o modelo de rede neural na criação de computadores que "pensem". e & # 39; aprender & # 39; com base nos resultados de suas ações.
Ao contrário da estrutura de dados tradicional, as redes neurais recebem vários fluxos de dados e produzem um resultado. Se houver uma maneira de quantificar os dados, é possível adicioná-los aos fatores que estão sendo considerados ao fazer uma previsão. Eles são freqüentemente usados ​​em software de previsão de mercado Forex porque a rede pode ser treinada para interpretar dados e tirar uma conclusão a partir deles.
Antes que possam ser úteis para fazer previsões de Forex, as redes neurais precisam ser treinadas. para reconhecer e ajustar os padrões que surgem entre a entrada e a saída. O treinamento e o teste podem ser demorados, mas é o que dá às redes neurais a capacidade de prever resultados futuros com base em dados passados. A ideia básica é que, quando apresentada com exemplos de pares de dados de entrada e saída, a rede pode "aprender". as dependências e aplicar essas dependências quando apresentadas com novos dados. A partir daí, a rede pode comparar sua própria saída para ver o quão perto está de corrigir a previsão, e voltar e ajustar o peso das várias dependências até que atinja a resposta correta.
Isso requer que a rede seja treinada com dois conjuntos de dados separados & mdash; o treinamento e o conjunto de testes. Um dos pontos fortes das redes neurais é que ela pode continuar aprendendo comparando suas próprias previsões com os dados que são continuamente alimentados a ela. As redes neurais também são muito boas em combinar dados técnicos e fundamentais, criando assim o melhor dos cenários de ambos os mundos. Seu próprio poder permite que eles encontrem padrões que podem não ter sido considerados e aplicam esses padrões à previsão para obter resultados surpreendentemente precisos.
Infelizmente, essa força também pode ser uma fraqueza no uso de redes neurais para previsões de negociação. Em última análise, a saída é tão boa quanto a entrada. Eles são muito bons em correlacionar dados, mesmo quando você os alimenta com quantidades enormes. Eles são muito bons em extrair padrões de tipos amplamente diferentes de informações & mdash; mesmo quando não há padrão ou relacionamento. Sua outra grande força & mdash; a capacidade de aplicar inteligência sem emoção & mdash; afinal de contas, um computador não tem um ego & mdash; também pode se tornar uma fraqueza ao lidar com um mercado volátil. Quando um fator desconhecido é introduzido, a rede neural artificial não tem como atribuir um peso emocional a esse fator.
Existem atualmente dezenas de plataformas de negociação Forex no mercado que incorporam a teoria e a tecnologia de rede neural para “ensinar”. a rede de seu sistema e deixá-lo fazer previsões e gerar ordens de compra / venda com base nele. O importante é ter em mente que a regra mais básica da negociação Forex se aplica quando você planeja construir sua rede neural & mdash; Eduque-se e saiba o que você está fazendo. Se você está lidando com análise técnica, fundamentos, redes neurais ou suas próprias emoções, a única coisa mais importante que você pode fazer para garantir seu sucesso na negociação Forex é aprender tudo o que puder.

Redes neurais em estratégias de negociação
Estratégias de Stop-and-Reverse de rede neural híbrida para Forex.
por Michael R. Bryant.
Redes neurais têm sido usadas em sistemas de negociação por muitos anos com vários graus de sucesso. Sua principal atração é que sua estrutura não linear é mais capaz de capturar as complexidades do movimento de preços do que as regras comerciais padrão baseadas em indicadores. Uma das críticas tem sido que as estratégias de negociação baseadas em redes neurais tendem a ser excessivamente ajustadas e, portanto, não apresentam bom desempenho em novos dados. Uma possível solução para esse problema é combinar as redes neurais com a lógica de estratégia baseada em regras para criar um tipo híbrido de estratégia. Este artigo mostrará como isso pode ser feito usando o Adaptrade Builder.
Em particular, este artigo ilustrará o seguinte:
Combinando lógica neural e lógica baseada em regras para entradas de comércio.
Segmentando várias plataformas simultaneamente (MetaTrader 4 e TradeStation)
Desenvolvendo uma estratégia com lógica de parada e reversão assimétrica.
Usando dados forex intraday.
Uma abordagem de dados de três segmentos será usada, com o terceiro segmento usado para validar as estratégias finais. O código de estratégia resultante para o MetaTrader 4 e TradeStation será mostrado, e será demonstrado que os resultados da validação são positivos para cada plataforma.
Redes Neurais como Filtros de Entrada no Comércio.
Matematicamente, uma rede neural é uma combinação não linear de uma ou mais entradas ponderadas que gera um ou mais valores de saída. Para negociar, uma rede neural é geralmente usada de duas maneiras: (1) como uma previsão de movimento futuro de preços, ou (2) como um indicador ou filtro para negociação. Aqui, seu uso como indicador ou filtro de negociação será considerado.
Como um indicador, uma rede neural atua como uma condição adicional ou filtro que deve ser satisfeita antes que uma negociação possa ser inserida. As entradas para a rede são tipicamente outros indicadores técnicos, como momentum, stochastics, ADX, médias móveis e assim por diante, bem como preços e combinações dos precedentes. As entradas são dimensionadas e a rede neural é projetada para que a saída seja um valor entre -1 e +1. Uma abordagem é permitir uma entrada longa se a saída for maior ou igual a um valor limite, como 0,5, e uma entrada curta se a saída for menor ou igual ao negativo do limite; por exemplo, -0,5. Essa condição seria adicional a qualquer condição de entrada existente. Por exemplo, se houvesse uma condição de entrada longa, ela teria que ser verdadeira e a saída da rede neural teria que ser pelo menos igual ao valor limite para uma entrada longa.
Ao configurar uma rede neural, um comerciante seria tipicamente responsável por escolher as entradas e a topologia de rede e por "treinamento". a rede, que determina os valores ideais de pesos. Como será mostrado abaixo, o Adaptrade Builder executa essas etapas automaticamente como parte do processo de criação evolucionário no qual o software é baseado. O uso da rede neural como filtro de comércio permite que ela seja facilmente combinada com outras regras para criar uma estratégia de negociação híbrida, que combina as melhores características de abordagens tradicionais baseadas em regras com as vantagens das redes neurais. Como um exemplo simples, o Builder pode combinar uma regra de crossover de média móvel com uma rede neural de modo que uma posição longa seja tomada quando a média de movimento rápido ultrapassar a média de movimento lento e a saída da rede neural for igual ou superior ao seu limite.
Estratégias de Negociação Stop-and-Reverse.
Uma estratégia de negociação stop-and-reverse é aquela que está sempre no mercado, seja longa ou curta. Estritamente falando, & quot; stop-and-reverse & quot; significa que você reverta a negociação quando sua ordem de parada é atingida. No entanto, eu uso isso como um shorthand para qualquer estratégia de negociação que inverte de longo para curto para longo e assim por diante, para que você esteja sempre no mercado. Por esta definição, não é necessário que as ordens sejam ordens de parada. Você pode entrar e reverter usando ordens de mercado ou limite também. Também não é necessário que cada lado use a mesma lógica ou até mesmo o mesmo tipo de pedido. Por exemplo, você pode entrar com um valor longo (e sair curto) em uma ordem de parada e entrar com um valor curto (e sair longo) em uma ordem de mercado, usando regras e condições diferentes para cada entrada / saída. Este seria um exemplo de estratégia de parada e reversão assimétrica.
A principal vantagem de uma estratégia de parar e reverter é que, por estar sempre no mercado, você nunca perde grandes movimentos. Outra vantagem é a simplicidade. Quando há regras e condições separadas para entrar e sair de negociações, há mais complexidade e mais coisas que podem dar errado. Combinar entradas e saídas significa que menos decisões de tempo têm que ser tomadas, o que pode significar menos erros.
Por outro lado, pode-se argumentar que as melhores condições para sair de uma negociação raramente são as mesmas que as de entrar na direção oposta; que entrar e sair de negociações são decisões inerentemente separadas que devem, portanto, empregar regras e lógica separadas. Outra possível desvantagem de estar sempre no mercado é que a estratégia será negociada em todas as lacunas de abertura. Um grande intervalo de abertura contra a posição pode significar uma grande perda antes que a estratégia seja capaz de reverter. Estratégias que entram e saem de forma mais seletiva ou que saem até o final do dia podem minimizar o impacto da abertura de lacunas.
Como o objetivo é construir uma estratégia forex, o MetaTrader 4 (MT4) é uma escolha óbvia para a plataforma de negociação, pois o MetaTrader 4 é projetado principalmente para forex e é amplamente usado para negociar esses mercados (ver, por exemplo, MetaTrader vs. TradeStation : Uma comparação de idiomas). No entanto, nos últimos anos, a TradeStation tem visado os mercados forex de forma muito mais agressiva. Dependendo do seu volume de negociação e / ou nível de conta, é possível negociar os mercados cambiais através da TradeStation sem incorrer em qualquer taxa de plataforma ou pagar comissões. Spreads são supostamente apertados com boa liquidez nos principais pares de forex. Por estas razões, ambas as plataformas foram direcionadas para este projeto.
Vários problemas surgem quando se segmentam múltiplas plataformas simultaneamente. Primeiro, os dados podem ser diferentes em plataformas diferentes, com diferenças em fusos horários, cotações de preços para algumas barras, volume e intervalos de datas disponíveis. Para suavizar essas diferenças, os dados foram obtidos de ambas as plataformas e as estratégias foram construídas em ambas as séries de dados simultaneamente. As melhores estratégias foram, portanto, as que funcionaram bem em ambas as séries de dados, apesar de quaisquer diferenças nos dados.
As configurações de dados usadas no Builder são mostradas abaixo na Figura 1. Como pode ser inferido a partir da tabela Market Data na figura, o mercado forex Euro / dólar foi direcionado (EURUSD) com um tamanho de barra de 4 horas (240 minutos). Outros bar tamanhos ou mercados teriam servido tão bem. Eu só consegui obter tantos dados através da minha plataforma MT4 como indicado pelo intervalo de datas mostrado na Fig. 1 (série de dados # 2), então o mesmo intervalo de datas foi usado na obtenção da série de dados equivalente da TradeStation 1). 80% dos dados foram utilizados para Building (combinados in-sample e "out-of-sample"), com 20% (6/20/14 a 2/10/15) reservados para validação. 80% dos 80% originais foram então definidos para & quot; na amostra & quot; com 20% configurado para & quot; fora da amostra & quot; como mostrado na Fig. 1. O spread bid / ask foi definido em 5 pips, e os custos de negociação de 6 pips ou US $ 60 por lote de tamanho normal (100.000 ações) foram assumidos por turno. Ambas as séries de dados foram incluídas na compilação, conforme indicado pelas marcas de seleção na coluna à esquerda da tabela Market Data.
Figura 1. Configurações de dados de mercado para construir uma estratégia de forex para o MetaTrader 4 e TradeStation.
Outro possível problema ao segmentar várias plataformas é que o Builder foi projetado para duplicar a maneira como cada plataforma suportada calcula seus indicadores, o que pode significar que os valores do indicador serão diferentes dependendo de qual plataforma está selecionada. Para evitar essa possível fonte de discrepância, quaisquer indicadores que avaliem diferentemente no MetaTrader 4 do que na TradeStation devem ser eliminados da compilação, o que significa que os seguintes indicadores devem ser evitados:
Slow D estocástico.
Fast D estocástico.
Todos os outros indicadores disponíveis para ambas as plataformas são calculados da mesma maneira em ambas as plataformas. A TradeStation inclui todos os indicadores disponíveis no Builder, enquanto o MetaTrader 4 não. Portanto, para incluir apenas indicadores que estão disponíveis em ambas as plataformas, a plataforma MetaTrader 4 deve ser selecionada como o tipo de código no Construtor. Isso removerá automaticamente todos os indicadores do conjunto de builds que não estão disponíveis para o MT4, o que deixará os indicadores disponíveis em ambas as plataformas. Além disso, como notei diferenças nos dados de volume obtidos em cada plataforma, removi todos os indicadores dependentes de volume do conjunto de builds. Por último, o indicador de hora do dia foi removido devido a diferenças nos fusos horários entre os arquivos de dados.
Na Fig. 2, abaixo, a lista de indicadores usados ​​no conjunto de compilação é mostrada classificada por se o indicador foi ou não considerado pelo processo de compilação (coluna "Considerar"). Os indicadores removidos da consideração pelas razões discutidas acima são mostrados no topo da lista. Os indicadores restantes, começando com & quot; Simple Mov Ave & quot ;, faziam parte do conjunto de builds.
Figura 2. Seleções de indicadores no Construtor, mostrando os indicadores removidos do conjunto de builds.
As opções de avaliação usadas no processo de construção são mostradas na Figura 3. Como discutido, o MetaTrader 4 foi selecionado como a escolha de saída do código. Depois que as estratégias são construídas no Construtor, qualquer uma das opções na guia Opções de Avaliação, incluindo o tipo de código, pode ser alterada e as estratégias reavaliadas, o que também reescreverá o código em qualquer idioma selecionado. Este recurso foi usado para obter o código da TradeStation para a estratégia final depois que as estratégias foram construídas para o MetaTrader 4.
Figura 3. Opções de avaliação no Builder para a estratégia de forex do EURUSD.
Para criar estratégias stop-and-reverse, todos os tipos de saída foram removidos do conjunto de construção, como mostrado abaixo na Figura 4. Todos os três tipos de ordens de entrada - mercado, parada e limite - foram deixados como & quot; considerar & quot; , o que significa que o processo de construção pode considerar qualquer um deles durante o processo de criação.
Figura 4. Tipos de pedidos selecionados no Construtor para criar uma estratégia de parada e reversão.
O software Builder gera automaticamente condições lógicas baseadas em regras para entrada e / ou saída. Para adicionar uma rede neural à estratégia, basta selecionar a opção & quot; Incluir uma rede neural nas condições de entrada & quot; na guia Opções de Estratégia, conforme mostrado abaixo na Figura 5. As configurações da rede neural foram deixadas em seus padrões. Como parte da lógica de parada e reversão, a opção Lados do mercado foi definida como Longo / Curto e a opção para & quot; Aguardar a saída antes de entrar no novo comércio & quot; foi desmarcada. O último é necessário para permitir que a ordem de entrada saia da posição atual em uma reversão. Todas as outras configurações foram deixadas nos padrões.
Figura 5. Opções de estratégia selecionadas no Builder para criar uma estratégia híbrida usando condições de rede neural e baseada em regras.
A natureza evolutiva do processo de construção no Builder é guiada pela adequação, que é calculada a partir dos objetivos e condições definidos na guia Métricas, conforme mostrado na Fig. 6. Os objetivos de construção foram mantidos simples: maximizando o lucro líquido enquanto minimizava a complexidade, que foi dado um pequeno peso em relação ao lucro líquido. Foi dada maior ênfase às condições de construção, que incluíam o coeficiente de correlação e significância para a qualidade geral da estratégia, bem como a média das barras nos negócios e o número de negócios.
Inicialmente, apenas as barras médias nas negociações foram incluídas como uma condição de construção. No entanto, em algumas das versões iniciais, o lucro líquido estava sendo favorecido em relação à duração da negociação, de modo que a métrica de número de negócios foi adicionada. O intervalo especificado para o número de negociações (entre 209 e 418) é equivalente a comprimentos médios de negociação entre 15 e 30 barras com base no número de barras no período de construção. Como resultado, a adição dessa métrica deu mais ênfase à meta de duração do comércio, o que resultou em mais membros da população com a faixa desejada de comprimentos de comércio.
Figura 6. Objetivos de compilação e condições definidas na guia Métricas determinam como a adequação é calculada.
As "Condições para selecionar estratégias principais" duplique as condições de compilação, exceto que as principais condições de estratégias são avaliadas em todo o intervalo de dados (não incluindo o segmento de validação, que é separado), em vez de apenas sobre o período de compilação, como é o caso das condições de compilação. As principais condições de estratégias são usadas pelo programa para anular quaisquer estratégias que atendam a todas as condições em uma população separada.
As configurações finais são feitas na guia Build Options, como mostrado abaixo na Fig. 7. As opções mais importantes aqui são o tamanho da população, o número de gerações e a opção de redefinir com base na variável "out-of-sample". desempenho. O tamanho da população foi escolhido para ser grande o suficiente para obter uma boa diversidade na população enquanto ainda é pequeno o suficiente para construir em um período de tempo razoável. O número de gerações foi baseado em quanto tempo demorou durante alguns builds preliminares para os resultados começarem a convergir.
Figura 7. Opções de construção incluem o tamanho da população, número de gerações e opções para redefinir a população com base em & quot; fora da amostra & quot; desempenho.
A opção para & quot; Redefinir no desempenho fora da amostra (OOS) & quot; inicia o processo de compilação após o número especificado de gerações, se a condição especificada for atendida; neste caso, a população será reposta se o valor "fora da amostra" O lucro líquido é inferior a US $ 20.000. Este valor foi escolhido com base em testes preliminares para ser um valor suficientemente alto que provavelmente não seria alcançado. Como resultado, o processo de criação foi repetido a cada 30 gerações até ser interrompido manualmente. Essa é uma forma de permitir que o programa identifique estratégias com base nas condições de Principais Estratégias durante um período prolongado de tempo. Periodicamente, a população de Top Strategies pode ser verificada e o processo de construção cancelado quando estratégias adequadas são encontradas.
Observe que eu coloquei "out-of-sample" entre aspas. Quando o & quot; fora da amostra & quot; período é utilizado para repor a população desta maneira, a expressão "fora da amostra" período não é mais verdadeiramente fora de amostra. Como esse período está sendo usado agora para orientar o processo de criação, ele é efetivamente parte do período in-sample. É por isso que é aconselhável reservar um terceiro segmento para validação, como foi discutido acima.
Após várias horas de processamento e várias reconstruções automáticas, foi encontrada uma estratégia adequada na população das Principais Estratégias. Sua curva de capital fechado é mostrada abaixo na Figura 8. A curva de patrimônio demonstra um desempenho consistente em ambos os segmentos de dados com um número adequado de negociações e essencialmente os mesmos resultados em ambas as séries de dados.
Figura 8. Curva de capital de comércio fechado para a estratégia de parada e reversão EURUSD.
Para verificar a estratégia durante o período de validação, os controles de data na guia Mercados (veja a Figura 1) foram alterados para a data final dos dados (2/11/2015), e a estratégia foi reavaliada selecionando-se a opção Avaliar comando no menu Estratégia no Construtor. Os resultados são mostrados abaixo na Figura 9. Os resultados da validação na caixa vermelha demonstram que a estratégia resistiu aos dados não utilizados durante o processo de construção.
Figura 9. Curva de capital de comércio fechado para a estratégia stop-and-reverse do EURUSD, incluindo o período de validação.
A verificação final é ver como a estratégia é executada em cada série de dados separadamente usando a opção de saída de código para essa plataforma. Isso é necessário porque, como explicado acima, pode haver diferenças nos resultados, dependendo (1) do tipo de código e (2) da série de dados. Precisamos verificar se as configurações escolhidas minimizaram essas diferenças, conforme pretendido. Para testar a estratégia do MetaTrader 4, a série de dados da TradeStation foi desmarcada na aba Mercados, e a estratégia foi reavaliada. Os resultados são mostrados abaixo na Fig. 10, que duplica a curva inferior na Fig. 9.
Figura 10. Curva de capital de comércio fechado para a estratégia de parada e reversão EURUSD, incluindo o período de validação, para o MetaTrader 4.
Finalmente, para testar a estratégia para a TradeStation, a série de dados da TradeStation foi selecionada e a série para o MetaTrader 4 foi desmarcada na aba Markets, a saída do código foi alterada para "TradeStation," e a estratégia foi reavaliada. Os resultados são mostrados abaixo na Fig. 11 e parecem ser muito semelhantes à curva do meio na Fig. 9, como esperado.
Figura 11. Curva de capital fechado de negociação para a estratégia stop-and-reverse EURUSD, incluindo o período de validação, para a TradeStation.
O código para ambas as plataformas é fornecido abaixo na Figura 12. Clique na imagem para abrir o arquivo de código para a plataforma correspondente. Examinar o código revela que a parte baseada em regras da estratégia usa diferentes condições relacionadas à volatilidade para os lados longo e curto. As entradas da rede neural consistem em uma variedade de indicadores, incluindo o dia da semana, tendência (ZLTrend), osciladores de alta intraday (InvFisherCycle, InvFisherRSI), bandas de Bollinger e desvio padrão.
A natureza híbrida da estratégia pode ser vista diretamente no código (do código da TradeStation):
Se EntCondL e NNOput <& gt; = 0,5 então começarem.
Compre (& quot; EnMark-L & quot;) ações NShares próximo bar no mercado;
A variável & quot; EntCondL & quot; representa as condições de entrada baseadas em regras e & quot; NNOuput & quot; é a saída da rede neural. Ambas as condições precisam ser verdadeiras para colocar a ordem de entrada longa. A condição de entrada curta funciona da mesma maneira.
Figura 12. Código de estratégia de negociação para a estratégia de parada e reversão EURUSD (esquerda, MetaTrader 4; direita, TradeStation). Clique na figura para abrir o arquivo de código correspondente.
Este artigo analisou o processo de construção de uma estratégia híbrida baseada em regras / rede neural para o EURUSD usando uma abordagem stop-and-reverse (sempre no mercado) com o Adaptrade Builder. Foi mostrado como o código de estratégia pode ser gerado para múltiplas plataformas, selecionando um subconjunto comum dos indicadores que funcionam da mesma maneira em cada plataforma. As configurações necessárias para gerar estratégias que invertem de longo para curto e para trás foram descritas, e foi demonstrado que a estratégia resultante foi realizada de forma positiva em um segmento de dados separado de validação. Verificou-se também que a estratégia gerou resultados semelhantes com a opção de dados e código para cada plataforma.
Como discutido acima, a abordagem stop-and-reverse tem várias desvantagens e pode não ser atraente para todos. No entanto, uma abordagem sempre no mercado pode ser mais atraente com os dados forex porque os mercados forex negociam o tempo todo. Como resultado, não há lacunas de abertura de sessão e as ordens de negociação estão sempre ativas e disponíveis para reverter a negociação quando o mercado muda. O uso de dados intradiários (barras de 4 horas) forneceu mais barras de dados para uso no processo de construção, mas foi, de outra forma, bastante arbitrário, pois a natureza sempre presente no mercado da estratégia significa que as negociações são realizadas durante a noite.
O processo de construção foi permitido para evoluir condições diferentes para entrar longo e curto, resultando em uma estratégia de parada e reversão assimétrica. Apesar do nome, a estratégia resultante entra em negociações longas e curtas em ordens de mercado, embora as ordens de mercado, parada e limite sejam consideradas pelo processo de construção independentemente para cada lado. Na prática, a reversão do longo para o curto significaria vender curto o dobro do número de ações no mercado, uma vez que a estratégia era atualmente longa; Por exemplo, se a atual posição comprada fosse 100.000 ações, você venderia 200.000 ações a descoberto no mercado. Da mesma forma, se a posição atual fosse de 100.000 ações, você compraria 200.000 ações no mercado para reverter de curto para longo prazo.
Um histórico de preços mais curto foi usado do que seria ideal. No entanto, os resultados foram positivos no segmento de validação, sugerindo que a estratégia não foi excessiva. Isso apoia a ideia de que uma rede neural pode ser usada em uma estratégia de negociação sem necessariamente ajustar a estratégia ao mercado.
A estratégia apresentada aqui não se destina à negociação real e não foi testada em rastreamento ou negociação em tempo real. No entanto, este artigo pode ser usado como um modelo para o desenvolvimento de estratégias semelhantes para o EURUSD ou outros mercados. Como sempre, qualquer estratégia de negociação que você desenvolver deve ser testada minuciosamente em rastreamento em tempo real ou em dados separados para validar os resultados e se familiarizar com as características de negociação da estratégia antes da negociação ao vivo.
Este artigo foi publicado na edição de fevereiro de 2015 do boletim da Adaptrade Software.
OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INERENTES. A PARTIR DE UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, UMA VEZ QUE AS COMERCIALIZAÇÕES NAO SÃO REALMENTE EXECUTADAS, OS RESULTADOS PODEM TER COMPENSADO OU SUPERIOR AO IMPACTO, SE ALGUM, DE DETERMINADOS FATORES DE MERCADO, COMO A FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL TAMBÉM ESTÃO SUJEITOS AO FATO DE QUE ELES FORAM CONCEBIDOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ SENDO FEITA QUE QUALQUER CONTA PODERÁ OU POSSIBILITAR LUCROS OU PERDAS SIMILARES AOS APRESENTADOS.
Se você gostaria de ser informado sobre novos desenvolvimentos, novidades e ofertas especiais da Adaptrade Software, por favor, junte-se à nossa lista de e-mail. Obrigado.
Copyright © 2004-2015 Adaptrade Software. Todos os direitos reservados.

Комментариев нет:

Отправить комментарий