Monday 12 February 2018

Redes neurais em estratégias de negociação


Forex Mecânico.
Negociação no mercado FX usando estratégias mecânicas de negociação.
Redes Neurais na Negociação: Construindo um poderoso comércio & # 8220; brain & # 8221; com vários NN.
Vamos começar a semana com boas notícias: o). Nos últimos 2 anos, o desenvolvimento de sistemas de aprendizagem de máquinas tem sido uma grande prioridade para mim. Essas técnicas nos oferecem o sonho de implementações de negociação permanentemente auto-adaptadas, onde as decisões de negociação são constantemente ajustadas para corresponderem aos dados mais recentes. Embora eu esteja ciente de que mesmo este nível de adaptabilidade não garante qualquer rentabilidade e # 8211; como os modelos subjacentes podem tornar-se inúteis em algumas novas condições & # 8211; Isso nos proporciona um maior grau de confiança em relação à nossa capacidade de prever um determinado instrumento de mercado no futuro. Na publicação de hoje, vou mostrar-lhe o meu mais recente desenvolvimento no mundo das redes neurais, onde finalmente consegui o que considero resultados de testes históricos excepcionais baseados em técnicas de aprendizado de máquina. Através deste artigo, vou discutir os diferentes métodos que entraram neste novo sistema e como a chave para o seu sucesso veio de reunir alguns dos que já foram bem sucedidos e # 8211; ainda não excelente e # 8211; implementações de negociação.
Em primeiro lugar, gostaria de descrever a maneira pela qual eu desenvolvo estratégias de redes neurais para que você possa entender melhor meus sistemas e os últimos desenvolvimentos. Meus sistemas de negociação de rede neural são projetados para que eles sempre se reciclem de pesos recém-casualizados em cada nova barra diária utilizando as barras N passadas (geralmente são usados ​​dados por cerca de 200-500 dias) e então faça uma decisão de negociação apenas para a próxima barra diária . O processo de reciclagem é feito em todas as barras, a fim de evitar qualquer ajuste de curva para um determinado tempo de início ou freqüência de treinamento e os pesos são completamente reiniciados para evitar qualquer dependência do comportamento de treinamento anterior. As redes neurais que eu programei aproveitam nossa estrutura de programação F4 e a biblioteca FANN (Fast Artificial Neural Network), que é o núcleo da implementação da aprendizagem de máquinas. A topologia da rede não é otimizada contra a rentabilidade, mas simplesmente atribuída como a quantidade mínima de neurônios necessários 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 insumos de treinamento e os exemplos usados, são de fato deixados como parâmetros do modelo. Agora que você entenda melhor como me aproximo das redes neurais, podemos aprofundar o meu trabalho no NN.
Eu 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 o meu primeiro modelo de sucesso (o sistema de negociação Sunqu # 8212, que é realmente lucrativo depois de mais de um ano de negociação ao vivo), mas depois desse desenvolvimento inicial eu não consegui melhorá-lo muito além (além de alguns pequenos aprimoramentos). Depois disso, eu decidi deixar este modelo sozinho e # 8211; o que é realmente complicado na natureza & # 8211; e tentar desenvolver um modelo mais simples, que seria mais fácil de melhorar. Foi quando desenvolvi o sistema Paqarin, que usa um conjunto mais simples de entradas e saídas para alcançar níveis similares de rentabilidade histórica no EUR / USD. No entanto, # 8211; para continuar minha frustração # 8211; Paqarin não era muito fácil de melhorar também. Eu fiz alguns progressos na melhoria desta estratégia de negociação durante as últimas semanas, mas eu quero deixar essa discussão para uma publicação futura (na medida em que trata de insumos).
Minha última tentativa de superar os problemas acima foi a estratégia comercial de Tapuy, um sistema inspirado em um artigo que trata do uso do NN nas imagens. Usando as bibliotecas ChartDirector, DeVil e FANN, consegui implementar um mecanismo de criação e processamento de imagens que usava gráficos diários EUR / USD (uma drástica redução deles) para fazer previsões sobre o próximo dia de negociação. Este 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. Â Tapuy também é interessante no sentido de que ele processa gráficos comerciais, a mesma entrada que os comerciantes manuais usam para enfrentar o mercado. No entanto, este sistema não era panaceia e melhorar essa estratégia também foi extremamente difícil. O Tapuy também é difícil de testar (leva muito tempo devido à criação e ao processo de leitura da imagem) e, portanto, a quantidade de experiências que poderiam ser feitas foi reduzida.
Depois de criar esses três sistemas, minhas novas criações NN eram nulas. Eu não poderia melhorá-los substancialmente e não consegui encontrar uma nova estratégia para criar um NN, essa 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 vetor de suporte, etc. ). No entanto, durante a semana passada, tive uma espécie de epifania quando pensei em maneiras pelas quais eu poderia limitar a exposição do mercado desses sistemas, fazendo-os trocar menos de alguma maneira e percebendo que a solução para meus problemas estava na minha frente o todo Tempo. A solução para melhorar o desempenho de três classificadores & # 8211; todos eles mostrando bordas históricas de longo prazo e # 8211; é simples & # 8230; Basta juntá-los para tomar decisões comerciais! : o)
Certamente, minha experiência com outras técnicas de aprendizado de máquinas me disse que colocar os classificadores juntos para tomar decisões comerciais geralmente melhorou o desempenho, mas nunca pensei em juntar esses sistemas, porque eu os vi principalmente como estratégias de negociação separadas e não simplesmente como aprendentes de máquinas. No entanto, fez todo o sentido colocar os três núcleos de tomada de decisão em uma estratégia: o que agora eu gosto de chamar o & # 8220; AsirikuyBrain & # 8221; e chegar a conclusões sobre decisões comerciais a partir de uma previsão que esteja em conformidade com as três técnicas. Se todos tiverem bordas de longo prazo, seu acordo total deve ter mais poder preditivo do que o seu acordo parcial. O resultado me surpreendeu. As estratégias de negociação melhoraram enormemente as estatísticas de cada um (muito mais do que se fossem negociadas em conjunto como sistemas dentro de um portfólio) e, além disso, diminuíam a exposição geral ao mercado das estratégias por uma grande margem. O sistema possui apenas uma posição aberta em 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 a redução é a mais baixa, o que significa que o AsirikuyBrain atinge um Razão Anualizada Média ao Rácio de Drawdown Máximo que é maior do que qualquer uma das técnicas de negociação individuais utilizadas, o período do período de retirada máximo também é reduzido 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 de não composição também aumenta enormemente (para R ^ 2 = 0,98), graças ao poder de suavização obtido com o efeito do comitê (o que significa que a idéia funciona!). Como você pode ver nas imagens dentro desta publicação, as curvas para os sistemas individuais são marcadamente inferiores quando comparadas com a curva de equidade da estratégia AsirikuyBrain. Eu continuarei a fazer alguns testes e melhorias, então espere algumas novas postagens no NN nos próximos dias e semanas (incluindo algumas postagens sobre insumos, precisão de previsão de lucratividade e previsões de rentabilidade com previsões de direcionalidade).
Se você quiser saber mais sobre as estratégias de rede neural e como você também pode construir continuamente a reconversão de sistemas NN usando FANN que pode ser executado no MQL4 / MQL5 / JForex ou na API Oanda REST, considere se juntar a Asirikuy, um site cheio de informações educacionais vídeos, sistemas de negociação, desenvolvimento e uma abordagem sólida, sincera e transparente em relação ao comércio automatizado em geral. Espero que tenha gostado deste artigo ! : o)
7 Respostas às Redes Neurais na Negociação: Construindo um poderoso comércio & # 8220; brain & # 8221; com vários NN & # 8221;
Você vai lançar este AsirikuyBrain ea no futuro próximo?
Obrigado pelo seu comentário: o) Sim, será na atualização F4.3.14 no próximo fim de semana,
Conceito interessante. I & # 8217; m calculando um CAGR = 3,5% ou perto dele. Eu acho que isso é muito baixo (o SPX TR para o mesmo período é de cerca de 10%) e combinado com o recuo muito longo, acho que você ainda pode ter um longo caminho a percorrer com isso. É bom que você seja persistente. :)
E se você ajustar as previsões do tamanho da posição 2 concordam em 2/3 e até a posição completa quando todos concordam?
Você mantém a posição aberta até que um preditor não concorde ou apenas feche-a no final do dia? Não sei se perdi isso.
Obrigado por publicar: o)
Conceito interessante. Eu estou calculando um CAGR = 3,5% ou perto dele. Eu acho que isso é muito baixo (o SPX TR para o mesmo período é de cerca de 10%) e combinado com o recuo muito longo, acho que você ainda pode ter um longo caminho a percorrer com isso. É bom que você seja persistente. :)
O CAGR não pode ser calculado a partir desta simulação de não composição como você faria regularmente, uma vez que o risco é um valor constante em USD (1% do saldo inicial). Ao usar a gestão regular de dinheiro (1% de risco de saldo no comércio aberto), o CAGR é aproximadamente cerca de 10% e o AAR / MaxDD está na região 0,8-0,9 (o DD máximo é de cerca de 13,5%). A combinação regular de gerenciamento de dinheiro geraria gráficos de crescimento exponencial (que são difíceis de interpretar visualmente adequadamente) pelo que sempre postei simulações não-complexas. No entanto, ao negociar ao vivo, você sempre usaria gerenciamento de dinheiro regular, arriscando uma porcentagem fixa do saldo no comércio aberto. Eu também fiz algumas melhorias significativas nos últimos dias e obtive o comprimento máximo de retirada inferior a 500 dias: o)
E se você ajustar as previsões do tamanho da posição 2 concordam em 2/3 e até a posição completa quando todos 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 apenas feche-a no final do dia? Não sei se perdi isso.
Eu tentei os dois, fechando posições em algum desacordo me deram resultados ruins, eu só negociações sempre que o SL é atingido ou um sinal oposto (onde todos NNs concordam) aparece.
Obrigado novamente por comentar Bog: o)
A combinação regular de gerenciamento de dinheiro geraria gráficos de crescimento exponencial (que são difíceis de interpretar visualmente adequadamente) pelo que sempre postei simulações não-complexas. No entanto, ao negociar ao vivo, você sempre usaria o gerenciamento regular de dinheiro, arriscando uma porcentagem fixa do saldo no comércio aberto. & # 8221;
Eu sou de opinião que MM regular deve ser usado em backtests porque é um método anti-martingale apropriado. É raro ver o crescimento exponencial devido a retiradas. A melhor maneira de backtest é que eu acredito na maneira como você realmente troca e que envolve MM.
Eu sou de opinião que MM regular deve ser usado em backtests porque é um método anti-martingale apropriado. É raro ver o crescimento exponencial devido a retiradas. A melhor maneira de backtest é que eu acredito na maneira como você realmente troca e que envolve MM.
Sim, é claro, concordo plenamente com isso, este (com MM) é, obviamente, a maneira pela qual nós testamos os sistemas para analisar antes da negociação ao vivo. Eu apenas executo as simulações de não composição no blog porque elas são mais fáceis de analisar e tirar conclusões de (tendo apenas os gráficos). Uma simulação de MM regular sem as estatísticas (apenas o gráfico) é mais difícil de analisar. Na próxima vez, eu também publicarei algumas estatísticas regulares de MM. Obrigado novamente por comentar Bob: o)
A linearidade da curva de equidade é Daniel muito impressionante. Obrigado por compartilhar seu trabalho árduo.

Redes neurais em estratégias de negociação
Estratégias de Stop-and-Reverse da Rede Neural Híbrida para Forex.
por Michael R. Bryant.
As redes de neurônios têm sido utilizadas 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 de negociação padrão, baseadas em indicadores. Uma das críticas foi que as estratégias de negociação baseadas na rede neural tendem a ser excessivas e, portanto, não funcionam bem em novos dados. Uma possível solução para este problema é combinar redes neurais com lógica de estratégia baseada em regras para criar um tipo de estratégia híbrida. Este artigo mostrará como isso pode ser feito usando o Adaptrade Builder.
Em particular, este artigo irá ilustrar o seguinte:
Combinando rede neural e lógica baseada em regras para entradas de comércio.
Segmentação múltipla de plataformas simultaneamente (MetaTrader 4 e TradeStation)
Desenvolvendo uma estratégia com lógica de parada e inversa assimétrica.
Usando dados forex intraday.
Será utilizada uma abordagem de dados de três segmentos, com o terceiro segmento usado para validar as estratégias finais. O código de estratégia resultante para MetaTrader 4 e TradeStation será mostrado, e será demonstrado que os resultados de validação são positivos para cada plataforma.
Redes Neurais como Filtros de Entrada Comercial.
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 negociação, uma rede neural geralmente é usada de duas maneiras: (1) como previsão de movimento futuro de preços, ou (2) como indicador ou filtro para negociação. Aqui, será usado como indicador ou filtro comercial.
Como um indicador, uma rede neural age como uma condição ou filtro adicional que deve ser satisfeito antes que uma troca possa ser inserida. As entradas para a rede normalmente são outros indicadores técnicos, tais como dinâmica, estocástica, ADX, médias móveis, etc., bem como preços e combinações dos anteriores. 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 limiar, como 0,5 e uma entrada curta, se a saída for menor ou igual ao negativo do limite; por exemplo, -0,5. Esta condição seria adicional a quaisquer condições de entrada existentes. Por exemplo, se houvesse uma condição de entrada longa, 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 normalmente seria responsável por escolher as entradas e a topologia da rede e para "treinamento" a rede, que determina os melhores valores de pesos. Como será mostrado abaixo, o Adaptrade Builder executa essas etapas automaticamente como parte do processo de compilação evolutiva no qual o software se baseia. Usar a rede neural como um filtro de comércio permite que ele seja facilmente combinado com outras regras para criar uma estratégia de negociação híbrida, que combine as melhores características das abordagens tradicionais baseadas em regras e as vantagens das redes neurais. Como um exemplo simples, o Builder pode combinar uma regra de cruzamento média móvel com uma rede neural de modo que uma posição longa seja tomada quando a média móvel rápida cruza acima da média lenta e a saída da rede neural está em ou acima do seu limite.
Estratégias de negociação Stop-and-Reverse.
Uma estratégia de negociação de parada e reversa é uma que está sempre no mercado, seja longa ou curta. Estritamente falando, "stop-and-reverse" significa que você inverte o comércio quando sua ordem de parada é atingida. No entanto, uso-o como uma mão curta para qualquer estratégia de negociação que reverte 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 pedidos de parada. Você pode entrar e reverter usando pedidos de mercado ou limite também. Também não é necessário que cada lado use a mesma lógica ou mesmo o mesmo tipo de ordem. Por exemplo, você pode entrar em um período longo (e sair curto) em uma ordem de parada e digitar curto (e sair por muito tempo) em uma ordem de mercado, usando diferentes regras e condições para cada entrada / saída. Este seria um exemplo de uma estratégia de parada e inversão assimétrica.
A principal vantagem de uma estratégia de parar e reverter é que, sempre no mercado, você nunca perca nenhuma grande jogada. Outra vantagem é a simplicidade. Quando existem regras e condições separadas para entrar e sair de negócios, há mais complexidade e mais que podem dar errado. A combinação de entradas e saídas significa que há menos decisões de tempo, o que pode significar menos erros.
Por outro lado, pode-se argumentar que as melhores condições para sair de um comércio raramente são as mesmas para entrar na direção oposta; que entrar e sair trades são decisões inerentemente separadas que, portanto, deveriam empregar regras e lógica separadas. Outra desvantagem potencial de estar sempre no mercado é que a estratégia irá trocar todo o intervalo 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 mais seletivamente ou que saem ao final do dia podem minimizar o impacto das brechas de abertura.
Uma vez que o objetivo é construir uma estratégia forex, o MetaTrader 4 (MT4) é uma escolha óbvia para a plataforma de negociação, dado que o MetaTrader 4 foi projetado principalmente para o forex e é amplamente utilizado para comercializar esses mercados (veja, por exemplo, MetaTrader vs. TradeStation : Uma comparação de linguagem). No entanto, nos últimos anos, a TradeStation segmentou os mercados de divisas de forma muito mais agressiva. Dependendo do seu volume de negociação e / ou nível da conta, é possível negociar os mercados de divisas através da TradeStation sem incorrer em taxas de plataforma ou pagar comissões. Spreads são supostamente apertado com boa liquidez nos principais pares de divisas. Por estas razões, ambas as plataformas foram direcionadas para este projeto.
Várias questões surgem ao direcionar várias plataformas simultaneamente. Primeiro, os dados podem ser diferentes em diferentes plataformas, com diferenças em fusos horários, cotações de preços para algumas barras, volume e faixas 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 das diferenças nos dados.
As configurações de dados usadas no Builder são mostradas abaixo na Fig. 1. Como se pode inferir da tabela Market Data na figura, o mercado de Forex Euro / dólar foi segmentado (EURUSD) com um tamanho de barra de 4 horas (240 minutos). Outros tamanhos de barras ou mercados teriam servido também. 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 nº 2), de modo que o mesmo intervalo de datas foi usado na obtenção de séries de dados equivalentes da TradeStation (data series # 1). 80% dos dados foram utilizados para construção (combinado na amostra e "fora da amostra"), com 20% (6/20/14 a 2/10/15) reservado para validação. 80% dos 80% originais foram então ajustados para "na amostra" com 20% definido para "out-of-sample", & quot; como mostrado na Fig. 1. O spread de oferta / solicitação foi fixado em 5 pips, e os custos de negociação de 6 pips ou US $ 60 por lote completo (100.000 ações) foram assumidos por rodada. Ambas as séries de dados foram incluídas na compilação, conforme indicado pelas marcas de seleção na coluna da esquerda da tabela de dados do mercado.
Figura 1. Configurações de dados do mercado para construir uma estratégia forex para MetaTrader 4 e TradeStation.
Outro problema potencial ao direcionar várias plataformas é que o Builder foi projetado para duplicar a forma como cada plataforma suportada calcula seus indicadores, o que pode significar que os valores dos indicadores serão diferentes dependendo da plataforma selecionada. Para evitar esta possível fonte de discrepância, todos os indicadores que avaliem de forma diferente 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 estocástico D.
Todos os outros indicadores que estão disponíveis para ambas as plataformas são calculados da mesma maneira em ambas as plataformas. O TradeStation inclui todos os indicadores que estão 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 Builder. Isso eliminará automaticamente qualquer indicador do conjunto de compilação que não esteja disponível para MT4, o que deixará os indicadores disponíveis em ambas as plataformas. Além disso, como notei diferenças nos dados de volume obtidos de cada plataforma, removi todos os indicadores dependentes do volume do conjunto de compilação. Por fim, o indicador do horário 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 utilizados no conjunto de compilação é mostrada ordenada por se o indicador foi ou não considerado pelo processo de compilação ("Considere" coluna). Os indicadores removidos da consideração pelos motivos discutidos acima são mostrados no topo da lista. Os indicadores restantes, começando com "Simple Mov Ave", foram todos parte do conjunto de compilação.
Figura 2. Seleções de indicadores no Builder, mostrando os indicadores removidos do conjunto de compilação.
As opções de avaliação usadas no processo de compilação são mostradas na Fig. 3. Conforme discutido, o MetaTrader 4 foi selecionado como a escolha de saída do código. Depois que as estratégias são criadas no Builder, 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, que também reescreverão o código em qualquer idioma selecionado. Esse recurso foi usado para obter o código da TradeStation para a estratégia final depois que as estratégias foram criadas para o MetaTrader 4.
Figura 3. Opções de avaliação no Builder para a estratégia forex EURUSD.
Para criar estratégias de parada e reversão, todos os tipos de saída foram removidos do conjunto de compilação, conforme mostrado abaixo na Fig. 4. Todos os três tipos de pedidos de entrada - mercado, parada e limite - foram deixados como "considerar" , o que significa que o processo de compilação poderia considerar qualquer um deles durante o processo de compilação.
Figura 4. Tipos de ordem selecionados no Builder 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 "Incluir uma rede neural nas condições de entrada" na guia Opções de Estratégia, como mostrado abaixo na Fig. 5. As configurações de rede neural foram deixadas em seus padrões. Como parte da lógica stop-and-reverse, a opção Market Sides foi definida para Long / Short e a opção para "Wait for exit before enter new trade". estava desmarcado. O último é necessário para habilitar a ordem de entrada para sair da posição atual em uma inversã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 baseadas em regras e neurais.
A natureza evolutiva do processo de construção no Builder é orientada pela aptidão, que é calculada a partir dos objetivos e condições definidos na guia Metrics, conforme mostrado abaixo na Figura 6. Os objetivos de construção foram mantidos simples: maximizando o lucro líquido e minimizando a complexidade, que recebeu um pequeno peso em relação ao lucro líquido. Mais ênfase foi colocada nas condições de construção, que incluíram o coeficiente de correlação e significância para a qualidade geral da estratégia, bem como as barras médias nos negócios e a quantidade de negócios.
Inicialmente, apenas as barras médias em negociações foram incluídas como condição de construção. No entanto, em algumas das construções iniciais, o lucro líquido foi favorecido ao longo do prazo comercial, de modo que a métrica do número de negociações foi adicionada. O intervalo especificado para o número de trades (entre 209 e 418) é equivalente ao comprimento médio de comércio entre 15 e 30 barras com base no número de barras no período de compilação. Como resultado, a adição desta métrica colocou mais ênfase no objetivo de longo prazo, o que resultou em mais membros da população com o intervalo desejado de comprimentos comerciais.
Figura 6. Construir objetivos e condições definidos na guia Métrica determinar como a aptidão é calculada.
As "condições para selecionar estratégias superiores" duplicar as condições de compilação, exceto que as principais condições de estratégias são avaliadas em toda a gama de dados (não incluindo o segmento de validação, que é separado), em vez de apenas ao longo do período de compilação, como é o caso das condições de construção. As principais condições de estratégias são usadas pelo programa para deixar de lado quaisquer estratégias que atendam a todas as condições em uma população separada.
As configurações finais são feitas na guia Configurações de Configuração, como mostrado abaixo na Figura 7. As opções mais importantes aqui são o tamanho da população, o número de gerações ea opção para redefinir com base no "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 uma quantidade razoável de tempo. O número de gerações foi baseado em quanto tempo levou durante algumas compilações preliminares para que os resultados começassem a convergir.
Figura 7. As opções de construção incluem o tamanho da população, o número de gerações e as opções para redefinir a população com base em "out-of-sample" desempenho.
A opção para & quot; Reset on Out-of-Sample (OOS) Performance & 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á redefinida se o "out-of-sample" O lucro líquido é inferior a US $ 20.000. Esse 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 compilação foi repetido a cada 30 gerações até parar manualmente. Esta é uma maneira de permitir que o programa identifique estratégias com base nas condições de Top Strategies durante um longo período de tempo. Periodicamente, a população Top Strategies pode ser verificada e o processo de compilação é cancelado quando são encontradas estratégias adequadas.
Observe que eu coloco "out-of-sample" entre citações. Quando o "fora da amostra" O período é usado para redefinir a população desta maneira, a "saída de amostra" O período não é mais verdadeiramente fora da amostra. Uma vez que esse período agora está sendo usado para orientar o processo de compilação, é efetivamente parte do período de exibição. É por isso que é aconselhável reservar um terceiro segmento para validação, conforme discutido acima.
Após várias horas de processamento e uma série de reconstruções automáticas, uma estratégia adequada foi encontrada na população Top Strategies. A curva de equidade comercial fechada é mostrada abaixo na Figura 8. A curva de equidade demonstra um desempenho consistente em ambos os segmentos de dados com um número adequado de negócios e, essencialmente, os mesmos resultados em ambas as séries de dados.
Figura 8. Curva de equidade de comércio fechado para a estratégia de paragem e reversão do EURUSD.
Para verificar a estratégia durante o período de validação, a data controlada na guia Mercados (veja a Fig. 1) foi alterada para a data final dos dados (2/11/2018) e a estratégia foi reavaliada selecionando Avaliar comando no menu Estratégia no Builder. Os resultados são mostrados abaixo na Fig. 9. Os resultados de validação na caixa vermelha demonstram que a estratégia mantida em dados não utilizados durante o processo de compilação.
Figura 9. Curva de equidade de comércio fechado para a estratégia de paragem e reversão do EURUSD, incluindo o período de validação.
A verificação final é ver como a estratégia realizada 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) das séries 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 guia 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 equidade de comércio fechado para a estratégia de paragem e reversão do 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 Mercados, a saída do código foi alterada para "TradeStation", "quot; 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, conforme esperado.
Figura 11. Curva de equidade de comércio fechado para a estratégia de paragem e reversão do EURUSD, incluindo o período de validação, para a TradeStation.
O código para ambas as plataformas é fornecido abaixo na Fig. 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-semana, a tendência (ZLTrend), o intraday high, osciladores (InvFisherCycle, InvFisherRSI), as bandas de Bollinger e o desvio padrão.
A natureza híbrida da estratégia pode ser vista diretamente na declaração de código (do código da TradeStation):
Se EntCondL e NNOutput & gt; = 0.5 então começarem.
Compre (& quot; EnMark-L & quot;); NShares compartilha a próxima barra no mercado;
A variável "EntCondL" representa as condições de entrada baseadas em regras, e "NNOuput & quot; é o resultado da rede neural. Ambas as condições devem 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 reversa do 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 de rede baseada em regras híbridas / neural para o EURUSD usando uma abordagem stop-and-reverse (sempre no mercado) com o Adaptrade Builder. Foi mostrado como o código da estratégia pode ser gerado para várias 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 se revertem de longo para curto e para trás foram descritas, e foi demonstrado que a estratégia resultante foi realizada positivamente em um segmento separado de validação de dados. Verificou-se também que a estratégia gerou resultados semelhantes com a opção de dados e código para cada plataforma.
Conforme discutido acima, a abordagem de parar e reverter tem várias desvantagens e pode não atrair a todos. No entanto, uma abordagem sempre no mercado pode ser mais atraente com os dados de divisas, porque os mercados de divisas são comercializados 24 horas por dia. Como resultado, não há lacunas de abertura de sessão e as ordens de negociação sempre estão ativas e disponíveis para reverter o comércio quando o mercado muda. O uso de dados intradía (barras de 4 horas) proporcionou mais barras de dados para uso no processo de compilação, mas foi de outra forma bastante arbitrário, na medida em que a natureza sempre dentro do mercado da estratégia significa que os negócios são transportados durante a noite.
O processo de compilação permitiu evoluir diferentes condições para inserção longa e curta, resultando em uma estratégia de parada e inversã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 fossem consideradas pelo processo de construção de forma independente para cada lado. Na prática, a reversão de longo a curto significaria vender curto o dobro do número de ações no mercado, já que a estratégia era longa; por exemplo, se a posição longa atual fosse de 100.000 ações, você venderia 200.000 ações curtas no mercado. Da mesma forma, se a posição curta atual fosse de 100.000 ações, você compraria 200.000 ações no mercado para reverter de curto para longo.
Foi usado um histórico de preços mais curto do que seria ideal. No entanto, os resultados foram positivos no segmento de validação, sugerindo que a estratégia não estava em excesso. Isso apóia a idéia de que uma rede neural pode ser usada em uma estratégia comercial sem necessariamente superar a estratégia para o mercado.
A estratégia apresentada aqui não se destina a 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 similares para o EURUSD ou outros mercados. Como sempre, qualquer estratégia de negociação que você desenvolver deve ser testada completamente no rastreamento em tempo real ou em dados separados para validar os resultados e familiarizar-se com as características de negociação da estratégia antes da negociação ao vivo.
Este artigo apareceu na edição de fevereiro de 2018 do boletim informativo Adaptrade Software.
OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INERENTES. DESEJO UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, DESDE QUE OS NEGÓCIOS NÃO SEJAM REALMENTE EXECUTOS, OS RESULTADOS PODEM TENER SOB OU COMENTÁRIOS COMPLEMENTARES PARA O IMPACTO, SE HAVER, DE CERTOS FATORES DE MERCADO, TAL COMO FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL SÃO TAMBÉM SUJEITOS AO FATO QUE ESTÃO DESIGNADOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ FAZENDO QUE QUALQUER CONTA VÁ OU SEJA PROBABILITÁVEL PARA ALCANÇAR LUCROS OU PERDAS SIMILARES ÀOS MOSTRADOS.
Se você quiser ser informado de novos desenvolvimentos, novidades e ofertas especiais do Adaptrade Software, por favor, junte-se à nossa lista de e-mail. Obrigado.
Copyright © 2004-2018 Adaptrade Software. Todos os direitos reservados.

Redes neurais para negociação algorítmica. Previsão de séries temporais simples.
ACTUALIZAÇÃO IMPORTANTE:
Esta é a primeira parte dos meus experimentos em aplicação de aprendizado profundo para financiar, em particular para negociação algorítmica.
Eu quero implementar o sistema de negociação a partir do zero com base apenas em abordagens de aprendizado profundo, então, para qualquer problema que temos aqui (previsão de preços, estratégia de negociação, gerenciamento de riscos), usaremos diferentes variações de redes neuronais artificiais (RNAs) e veremos o quanto elas podem lide com isso.
Agora eu planejo 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, reforço de aprendizagem Indo ao vivo, corretores API, ganhando (l̶o̶s̶i̶n̶g̶) dinheiro.
Eu recomendo 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 a previsão de séries temporais financeiras. Nesta parte, não vamos usar nenhuma engenharia de recursos. Vamos considerar o conjunto de dados históricos dos movimentos dos preços do índice S & P 500. Temos informações de 1950 a 2018 sobre preços abertos, fechados, altos e baixos para todos os dias do ano e volume de negócios. Primeiro, tentaremos apenas prever fechar o preço no final do próximo dia, em segundo lugar, tentaremos prever o retorno (preço fechado - preço aberto). Baixe o conjunto de dados do Yahoo Finance ou deste repositório.
Definição do problema.
Consideraremos o nosso problema como 1) problema de regressão (tentando prever exatamente fechar o preço ou retornar no dia seguinte) 2) problema de classificação binária (o preço aumentará [1; 0] ou abaixo [0; 1]).
Para treinar NNs, usaremos framework Keras.
Primeiro vamos preparar nossos dados para treinamento. Queremos prever o valor de t + 1 com base em informações de N dias anteriores. Por exemplo, tendo preços próximos dos últimos 30 dias no mercado, queremos prever, que preço será amanhã, no 31º dia.
Utilizamos as primeiras 90% das séries temporais como conjunto de treinamento (considere-a como dados históricos) e 10% como conjunto de testes para avaliação do modelo.
Aqui é exemplo de carregamento, dividindo em amostras de treinamento e pré-processamento de dados de entrada brutos:
Problema de regressão. MLP.
Será apenas um perceptron de 2 camadas escondidas. O número de neurônios escondidos é escolhido de forma empírica, vamos trabalhar na otimização de hiperparâmetros nas próximas seções. Entre duas camadas ocultas, adicionamos uma camada de Saída para evitar a sobreposição.
O importante é Dense (1), Activation ('linear') e 'mse' na seção de compilação. Queremos um produto que possa estar em qualquer intervalo (prevemos valor real) e nossa função de perda é definida como erro quadrático médio.
Vamos ver o que acontece se apenas passarmos pedaços de preços próximos de 20 dias e prever o preço no 21º dia. Final MSE = 46.3635263557, mas não é uma informação muito representativa. Abaixo está um gráfico de 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 mesmo de perto, mas pode aprender a tendência.
Vamos dimensionar nossos dados usando o método de sklearn pré-processamento. Escala () para ter nossa série zero de tempo e variância unitária e treinar o mesmo MLP. Agora temos MSE = 0.0040424330518 (mas está em dados dimensionados). No gráfico abaixo, você pode ver as séries temporais reais escaladas (preto) e a nossa previsão (azul) para ela:
Para usar este modelo no mundo real, devemos retornar às séries temporais não escaladas. Podemos fazê-lo, multiplicando ou preditivo por desvio padrão de séries temporais que usamos para fazer predição (20 etapas de tempo não escalonadas) e adicione seu valor médio:
MSE neste caso é igual a 937.963649937. Aqui está o enredo de previsões restauradas (vermelho) e dados reais (verde):
Não está mal, 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 convolutivas, você pode verificar esses recursos incríveis:
Vamos definir a rede neural convolucional de 2 camadas (combinação de camadas de convolução e max-pooling) com uma camada totalmente conectada e a mesma saída que anteriormente:
Vamos verificar resultados. MSEs para dados escalados e restaurados são: 0.227074542433; 935.520550172. As parcelas estão abaixo:
Mesmo olhando para MSE em dados escalados, esta rede aprendeu muito pior. Provavelmente, uma arquitetura mais profunda precisa de mais dados para o treinamento, ou simplesmente é superada devido ao número muito alto de filtros ou camadas. Vamos considerar esta questão mais tarde.
Problema de regressão. RNN.
Como arquitetura recorrente, eu quero usar duas camadas LSTM empilhadas (leia mais sobre LSTM aqui).
As parcelas das previsões estão abaixo, MSEs = 0.0246238639582; 939.948636707.
A previsão da RNN se parece mais com o modelo médio móvel, não pode aprender e prever todas as flutuações.
Então, é um resultado pouco esperável, mas podemos ver que os MLPs funcionam melhor para esta previsão de séries temporais. Vamos verificar o que acontecerá se nós passarmos de regressão para problema de classificação. Agora, usaremos os preços não fechados, mas o retorno diário (fechar preço-preço aberto) e queremos prever se o preço fechado é maior ou menor do que o preço aberto com base nos últimos 20 dias de devolução.
Problema de classificação. MLP.
O código é alterado um pouco - alteramos nossa última camada Densa para ter saída [0; 1] ou [1; 0] e adicione a saída softmax para esperar resultados probabilísticos.
Para carregar saídas binárias, mude a linha seguinte do código:
Também mudamos a função de perda para cross-entopy binário e adicionamos métricas de precisão.
Oh, 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 o tratamento da previsão de séries temporárias financeiras como problema de regressão é uma abordagem melhor, pode aprender a tendência e os preços próximos do real.
O que foi surpreendente para mim, que MLPs estão tratando dados de seqüência melhor como CNNs ou RNNs que deveriam funcionar melhor com séries temporais. Explico isso com conjunto de dados bastante pequeno (
Selos de tempo de 16k) e escolha de hiperparâmetros fofos.
Você pode reproduzir resultados e melhorar usando o código do repositório.
Eu acho que podemos obter melhores resultados em regressão e classificação usando diferentes recursos (não apenas séries temporais escalonadas) como alguns indicadores técnicos, volume de vendas. Também podemos tentar dados mais freqüentes, digamos carrapatos minuto a minuto para ter mais dados de treinamento. Todas essas coisas que eu vou fazer depois, então fique atento :)
Ao bater palmas mais ou menos, você pode nos indicar quais são as histórias que realmente se destacam.
Alex Honchar.
máquinas de ensino e raphamento.
Mundo de aprendizagem de máquinas.
O melhor sobre Aprendizado de Máquinas, Visão de Computador, Aprendizagem Profunda, Processamento de linguagem natural e outros.

Redes Neurais Aprende Estratégias de Negociação Forex.
O último zumbido no mundo Forex é 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 estão ligadas entre si por probabilidades ponderadas. Em termos mais simples, as redes neurais são um modelo vagamente parecido com a forma como o cérebro humano funciona e aprende. Há várias décadas, aqueles na comunidade de inteligência artificial usaram o modelo de rede neural na criação de computadores que pensam & # 39; e & # 39; learn & # 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 existe uma maneira de quantificar os dados, existe uma maneira de adicioná-lo aos fatores que estão sendo considerados na realização de uma predição. Eles são freqüentemente usados ​​no software de previsão de mercado Forex porque a rede pode ser treinada para interpretar dados e tirar uma conclusão disso.
Antes que eles possam ser de qualquer utilidade para fazer previsões Forex, as redes neurais precisam ser treinadas. para reconhecer e ajustar padrões que surgem entre entrada e saída. O treinamento e o teste podem ser demorados, mas é o que dá às redes neurais sua capacidade de prever resultados futuros com base em dados passados. A idéia 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 são apresentadas novas informações. A partir daí, a rede pode comparar a sua própria saída para ver o quão perto de corrigir a previsão e voltar e ajustar o peso das várias dependências até chegar à resposta correta.
Isso exige que a rede seja treinada com dois conjuntos de dados separados e mdash; o treinamento e o conjunto de testes. Um dos pontos fortes das redes neurais é que pode continuar a aprender comparando suas próprias previsões com os dados que são alimentados continuamente. As redes neurais também são muito boas ao combinar dados técnicos e fundamentais, fazendo assim o melhor cenário de ambos os mundos. O seu próprio poder permite que eles encontrem padrões que talvez não tenham sido considerados e apliquem esses padrões à previsão para apresentar resultados estranhamente precisos.
Infelizmente, essa força também pode ser uma fraqueza no uso de redes neurais para previsões comerciais. Em última análise, a saída é tão boa quanto a entrada. Eles são muito bons em correlação de dados, mesmo quando você os alimenta de enormes quantidades. Eles são muito bons na extração de padrões de tipos de informações amplamente diferentes, e mdash; mesmo quando não existe um padrão ou relacionamento. Sua outra grande força e mdash; a capacidade de aplicar inteligência sem emoção e mdash; Afinal, um computador não tem um ego e 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.
Atualmente, existem dezenas de plataformas de negociação Forex no mercado que incorporam teoria e tecnologia de redes neurais para ensinar & # 39; A rede do seu sistema e deixá-lo fazer previsões e gerar ordens de compra / venda com base nela. O importante a ter em mente é que a regra mais básica da negociação Forex se aplica quando você se propõe a construir sua rede neural e mdash; educar-se e saber o que você está fazendo. Se você está lidando com análises técnicas, 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: Previsão de Lucros.
As redes de neurônios são algoritmos de última geração, imutáveis, que imitam 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 classificadas e, o mais importante, a capacidade de fazer previsões com base na informação histórica que eles têm à sua disposição.
As redes de neurônios têm sido usadas cada vez mais em uma variedade de aplicativos de negócios, incluindo soluções de pesquisa de previsão e marketing. Em algumas áreas, como detecção de fraude ou avaliação de riscos, são líderes indiscutíveis. Os principais campos em que as redes neurais encontraram aplicações são operações financeiras, planejamento empresarial, negociação, análise de negócios e manutenção de produtos. As redes neurais podem ser aplicadas de forma lucrativa por todos os tipos de comerciantes, por isso, se você é um comerciante e ainda não foi introduzido em redes neurais, nós o acompanharemos 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 excelente produto ou tecnologia, as redes neurais começaram a atrair todos aqueles que estão procurando por um mercado em desenvolvimento. Torrents de anúncios sobre software de próxima geração inundaram o mercado - anúncios comemorando o mais poderoso de todos os algoritmos de rede neural já criados. Mesmo nesses casos raros, quando reivindicações publicitárias 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 milagrosos e, independentemente de quão bem ele funciona em uma situação particular, haverá alguns conjuntos de dados e classes de tarefas para as quais os algoritmos utilizados anteriormente são superiores. Lembre-se disso: não é o algoritmo que faz o truque. Informações de entrada bem preparadas sobre o indicador segmentado são o componente mais importante do seu sucesso com as redes neurais.
A Convergência mais rápida é melhor?
Muitos daqueles que já utilizam redes neurais acreditam erroneamente que quanto mais rápido sua rede fornece resultados, melhor será. Isso, no entanto, é uma ilusão. Uma boa rede não é determinada pela taxa em que 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 produz.
Aplicação correta de redes neurais.
Muitos comerciantes aplicam redes neurais de forma incorreta porque depositam muita confiança no software que utilizam, sem terem fornecido instruções adequadas sobre como usá-lo adequadamente. Para usar uma rede neural do jeito certo e, portanto, de forma lucrativa, um comerciante deve prestar atenção a todas as etapas do ciclo de preparação da rede. É o comerciante e não a rede dele que é responsável por inventar uma ideia, formalizando essa idéia, testando e melhorando, e, finalmente, escolhendo o momento certo para descartá-la quando não for mais útil. Consideremos os estágios deste processo crucial com mais detalhes:
1. Encontrando e Formalizando uma Idéia de Negociação.
2. Melhorando os Parâmetros do seu Modelo.
3. Eliminação do modelo quando se torna obsoleto.
Todo modelo baseado na rede neural possui uma vida útil e não pode ser usado indefinidamente. A longevidade do período de vida de um modelo depende da situação do mercado e de quanto tempo as interdependências do mercado refletem nele permanecerem atualizadas. No entanto, mais cedo ou mais tarde, qualquer modelo se torna obsoleto. Quando isso acontece, você pode redirecionar o modelo usando dados completamente novos (ou seja, substituir todos os dados que foram usados), adicionar alguns dados novos 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 fortemente e usam a abordagem para a qual seu software fornece a funcionalidade mais amigável e automatizada. Essa abordagem mais simples é prever um preço de algumas barras à frente e basear seu sistema de negociação nesta previsão. Outros comerciantes prevêem variação de preço ou porcentagem da mudança de preço. Esta abordagem raramente produz melhores resultados do que prever o preço diretamente. Ambas as abordagens simplistas não conseguem descobrir e explorar de forma lucrativa a maior parte das importantes interdependências a longo prazo e, como resultado, o modelo torna-se rapidamente obsoleto à medida que as forças motrizes globais mudam.
A Abordagem Geral Mais Ótima para o Uso de Redes Neurais.

No comments:

Post a Comment