четверг, 17 мая 2018 г.

Sistema de negociação difusa


Lógica Difusa em estratégias de negociação.
Introdução.
Os traders freqüentemente se perguntam como melhorar um sistema de negociação ou criar um novo através do aprendizado de máquina. Apesar da abundância de publicações, um método simples e intuitivo ainda é encontrado para criar modelos que não podem ser analiticamente estimados sem recorrer a cálculos auxiliados por computador. A lógica fuzzy é uma janela para o mundo do aprendizado de máquina. Combinado com algoritmos genéticos, é capaz de expandir as capacidades de criar sistemas de negociação de auto-aprendizagem ou facilmente otimizáveis. Ao mesmo tempo, a lógica fuzzy é intuitiva, pois encapsula informações numéricas nítidas em termos nebulosos (borrados), assim como uma pessoa faz no processo de pensar.
Aqui está um exemplo. Em termos de lógica nítida, a velocidade de um carro em movimento é determinada por dispositivos de medição: por exemplo, 60 km / h. Mas um observador casual sem dispositivos de medição só pode estimar aproximadamente a velocidade do carro, confiando em sua experiência ou base de conhecimento. Por exemplo, sabe-se que um carro pode ir rápido e "rápido" é definido como aproximadamente 100 km / he acima. Sabe-se também que um carro pode ir devagar, o que é 5-10 km / h. E finalmente, a velocidade é visualmente estimada como média (cerca de 60 km / h) se o carro que se aproxima aumentar de tamanho a uma taxa moderada. Assim, é possível caracterizar 60 km / h com quatro diferentes expressões:
velocidade média; velocidade perto da média;
É assim que a informação é encapsulada em uma consciência humana, permitindo-lhe captar apenas as informações necessárias no momento atual, por exemplo: "terei tempo para atravessar a estrada se o carro não estiver se movendo muito rápido?". Pensar em tudo de uma vez e em grande detalhe forçaria uma pessoa a gastar quantias colossais de tempo e recursos energéticos antes de tomar qualquer decisão específica: atravessar a estrada ou deixar o carro passar. Ao mesmo tempo, a situação atual seria minuciosamente estudada, o que pode nunca ser idêntico no futuro, e teria apenas contornos similares. No aprendizado de máquina, tais situações são chamadas de overfitting.
Este artigo não se aprofundará na teoria da lógica fuzzy. Informações sobre este tópico estão amplamente disponíveis na Internet e no site MQL5. Vamos começar com a prática imediatamente, o que será explicado com trechos da teoria e fatos curiosos.
Para construir um modelo, a biblioteca Fuzzy é usada, disponível no pacote de terminais padrão do MetaTrader 5.
O resultado será um Expert Advisor pronto, baseado em lógica fuzzy, que pode ser tomado como um exemplo para a construção de sistemas personalizados.
Criando um protótipo do sistema de negociação.
Vamos seguir em frente para criar uma lógica TS nítida, que será usada como base em futuras pesquisas. Então dois sistemas idênticos podem ser comparados, onde o segundo utilizará a lógica fuzzy.
3 osciladores RSI com diferentes períodos serão usados ​​como base:
Vamos formular as condições nítidas dos sinais e defini-los na função:
Em seguida, vamos escrever todas as outras funções de serviço e testar o especialista a partir do início de 2017 no EURUSD, nos prazos М15 e М5 (o código completo do especialista é anexado no final do artigo):
Embora as condições nítidas para combinações dos três indicadores tenham sido definidas e as condições sejam lógicas e consistentes, essa abordagem se mostrou muito simples e inflexível. Em média, o sistema não perde nem ganha por um período de 8 meses. Para ganhar, seria necessário passar por várias combinações de condições e, possivelmente, adicionar mais osciladores. Mas não há muito o que otimizar, já que as condições são definidas com extrema precisão.
Vamos tentar desfazer as idéias sobre as condições para tornar lucrativo esse sistema de negociação usando a lógica fuzzy.
Criando um modelo lógico difuso.
Primeiro, é necessário incluir a biblioteca Fuzzy. Para ser exato, um dos dois modelos de lógica difusa disponíveis - Mamdani ou Sugeno. A diferença entre eles é que Sugeno produz um modelo linear sem criar uma variável de saída na forma de um conjunto de termos fuzzy, enquanto Mamdani fornece esse elemento. Desde que o artigo é escrito para comerciantes fuzzy, Mamdani será usado. Mas isso não implica que o modelo Sugeno seja inadequado para algumas tarefas específicas: é sempre possível e necessário experimentar com base na compreensão básica da lógica difusa.
A biblioteca está incluída, uma referência à classe Mamdani é declarada. Isso é tudo o que é necessário para começar.
Agora vamos considerar os principais estágios de construção da inferência fuzzy. Ocupa um lugar central em sistemas de modelagem fuzzy. O processo de inferência fuzzy é um procedimento específico ou um algoritmo para obter conclusões fuzzy baseadas em suposições fuzzy usando as operações básicas da lógica fuzzy.
Existem 7 estágios de construção da inferência fuzzy.
Determinando a estrutura do sistema de inferência difusa.
O número de entradas e saídas, assim como as funções de associação, são definidos no estágio de projeto. No nosso caso, haverá 4 entradas, 1 saída, e cada uma delas terá 3 funções de associação.
Formando a base de regras do sistema de inferência difusa.
Durante o processo de desenvolvimento, criamos regras personalizadas para inferência fuzzy, com base no nosso julgamento especializado do sistema de negociação.
Estabelecer correspondência entre o valor numérico da variável de entrada do sistema de inferência difusa e o valor da função de pertinência do termo correspondente da variável linguística.
O procedimento de determinar o grau de verdade das condições para cada regra do sistema de inferência difusa.
O processo de encontrar o grau de verdade de cada uma das proposições elementares (subcláusulas) constituindo os consequentes de núcleos de todas as regras de produção difusas.
O processo de encontrar uma função de associação para cada uma das variáveis ​​lingüísticas de saída.
Deve-se notar que apenas os pontos 1 e 2 precisam ser realizados, todos os outros serão feitos pelo sistema sem intervenção. Os interessados ​​nas sutilezas da operação da lógica difusa em todos os estágios podem encontrar mais detalhes aqui.
Determinando a estrutura do sistema de inferência difusa.
Vamos continuar com a criação do modelo. Definir objetos de três entradas e uma saída, bem como objetos auxiliares do dicionário para facilitar o trabalho com a lógica:
Três RSI com diferentes períodos serão usados ​​como entradas. Como o oscilador RSI está sempre no intervalo de 0 a 100, é necessário criar uma variável para ele com a mesma dimensão. Mas, por conveniência, os valores do indicador serão normalizados para um intervalo de 0 a 1. Basta ter em mente que a variável criada deve ter uma dimensão igual à dimensão do vetor de entrada, ou seja, deve conter todos os valores. Um intervalo de 0 a 1 também é definido na saída.
De acordo com o ponto 1 da criação da lógica fuzzy, também é necessário definir e configurar as funções de associação. Isso será feito no manipulador de eventos OnInit ():
Agora vamos ver qual é a função de associação e qual a finalidade dela.
Três termos foram criados para cada variável de entrada (e uma saída): "comprar", "neutro", "vender", cada um com sua própria função de associação. Em outras palavras, os valores do oscilador agora podem ser divididos em 3 grupos fuzzy, e cada grupo pode receber um intervalo de valores usando a função de associação. Falando na linguagem da lógica difusa, 4 conjuntos de termos foram criados, cada um com 3 termos. Para ilustrar o acima, vamos escrever um script simples que pode ser usado para visualização dos termos e suas funções de associação:
Execute o script no gráfico:
Essas funções de associação foram selecionadas porque elas têm apenas dois parâmetros de entrada otimizáveis ​​(isso será feito posteriormente, durante o estágio de teste do sistema). Eles também descrevem bem as posições extrema e central do sistema. Você pode aplicar qualquer função de associação a partir das disponíveis na biblioteca Fuzzy.
Adotamos a regra de que os valores extremos do oscilador indicam uma mudança futura em sua direção e, conseqüentemente, uma reversão de tendência futura. Portanto, o oscilador aproximando-se de zero sugere um possível começo de crescimento. O movimento do oscilador para a marca de 0,5 é acompanhado por uma diminuição gradual em CZ_ShapedMembershipFunction ou termo "Buy zone". Ao mesmo tempo, a incerteza em CNormalMembershipFunction de "Neutral zone" irá crescer, o que é eventualmente substituído por um aumento em CS_ShapedMembershipFunction ou "Sell zone" à medida que o oscilador se aproxima de 1. O mesmo princípio é usado em todas as entradas e saídas. se os valores do indicador pertencerem a uma zona específica com limites imprecisos.
Não há restrições quanto ao número de funções de associação para cada variável. Você pode definir 5, 7, 15 funções em vez de três, mas, é claro, dentro dos limites do senso comum e em nome da lógica difusa.
Formando a base de regras do sistema de inferência difusa.
Nesta fase, adicionamos uma base de conhecimento ao sistema a ser usada ao tomar decisões difusas.
Pelo menos uma condição lógica deve ser adicionada à base de conhecimento: ela é considerada incompleta se pelo menos um termo não estiver envolvido nas operações lógicas. Pode haver uma quantidade indefinida de condições lógicas.
O exemplo fornecido define 12 condições lógicas, que influenciam a inferência difusa quando satisfeitas. Assim, todos os termos participam de operações lógicas. Por padrão, todas as operações lógicas recebem os mesmos coeficientes de peso iguais a 1. Elas não serão alteradas neste exemplo.
Se todos os 3 indicadores estiverem dentro da área difusa para a compra, será emitido um sinal de compra difuso. O mesmo se aplica aos sinais de venda e neutros. (regras 1-3)
Se 2 indicadores mostrarem comprar e um mostrar vender, o valor de saída será neutro, isto é, incerto. (regras 4-6)
Se 2 indicadores mostrarem comprar ou vender, e um for neutro, então, comprar ou vender é atribuído ao valor de saída. (regras 7-12)
Obviamente, esta não é a única variante para criar uma base de regras, você está livre para experimentar. Essa base de regras baseia-se apenas no meu julgamento "especializado" e na visão de como o sistema deve funcionar.
Obtendo um valor de saída nítido após a defuzzificação.
Resta calcular o modelo e obter o resultado como um valor de 0 a 1. Valores próximos a 0 indicam um sinal de compra forte, aqueles próximos a 0,5 são neutros e valores próximos a 1 significam um sinal de venda forte.
Esta função obtém os valores de três osciladores RSI com diferentes períodos, normaliza-os para um intervalo de 0 a 1 (os valores podem ser simplesmente divididos por 100), atualiza a lista com objetos do dicionário Fuzzy (os últimos valores indicadores), envia para cálculos, cria uma lista para a variável de saída e pega o resultado na variável 'res'.
Adicionando funções de serviço e otimizando / testando o sistema resultante.
Como o aprendizado de máquina ou pelo menos seus fundamentos também estão sendo considerados, alguns parâmetros serão movidos para entradas e otimizados.
Os parâmetros do Gaussian (função de associação) serão submetidos à otimização na saída da lógica difusa. Terá seu centro ao longo do eixo X deslocado (parâmetro Gposition), seu sigma alterado (seu sino estreitado e comprimido, parâmetro Gsigma). Isso dará um melhor ajuste do sistema caso os sinais de RSI para compra e venda sejam assimétricos.
Além disso, otimize as condições para abertura de ofertas: o valor mínimo de um sinal neutro e o valor máximo (novas posições não serão abertas no intervalo entre esses valores, pois o sinal não está definido).
O processamento de um sinal na saída da lógica difusa é mostrado na listagem a seguir:
Cálculos serão realizados na nova barra para acelerar a demonstração. Você é livre para personalizar a lógica a seu critério, por exemplo, negociar em cada tick simplesmente removendo a verificação de uma nova barra.
Se houver posições abertas e o sinal contradizer a posição atual ou não estiver definido, feche a posição. Se houver uma condição para abrir uma posição oposta, abra-a.
Este sistema não utiliza stop loss, pois não são reversões de negociação, e o fechamento / reabertura de negociações é baseado em sinais.
O Expert Advisor usa a biblioteca MT4Orders para facilitar o trabalho com pedidos e tornar o código facilmente conversível em MQL4.
Processo de teste.
Selecione o melhor resultado de otimização:
Compare com os resultados do teste do modelo estrito:
A associação resultante funciona na saída, após a otimização (as entradas permanecem inalteradas desde que não foram otimizadas):
Antes das mudanças:
Otimize o sistema com as mesmas configurações, mas no prazo do M5:
Compare com os resultados do teste do modelo estrito:
A associação resultante funciona na saída, após a otimização (as entradas permanecem inalteradas desde que não foram otimizadas):
Antes das mudanças:
Em ambos os casos, a Gaussiana (zona neutra) foi deslocada para compras e o número de posições longas prevalece sobre o número de posições curtas. Isso significa que os sinais de compra e venda se mostraram assimétricos nesse segmento particular da história, que não puderam ser descobertos sem essa experiência. É possível que o sistema consistindo de três RSIs estivesse na zona de sobrevenda (área 1) mais frequentemente do que na zona de sobrecompra (área 0), e a otimização do Gauss ajudou a suavizar esse desequilíbrio. Quanto à saída mais nítida, é analiticamente difícil imaginar por que essa configuração de saída contribuiu para a melhoria dos resultados do sistema comercial, porque o processo de defuzzificação usando o método do centro de gravidade, em conjunto com todo o mapeamento de entradas para conjuntos difusos , já é um sistema complexo por si só.
O sistema mostrou-se bastante estável por 8 meses, apesar de apenas 4 parâmetros terem sido otimizados. E eles podem ser facilmente reduzidos a dois (Gsigma e Gposition), já que os 2 restantes tiveram pouco impacto no resultado e estão sempre na vizinhança de 0,5. Isto é considerado um resultado satisfatório para um sistema experimental, cujo objetivo é mostrar como o número de parâmetros otimizados pode ser reduzido através da introdução de um elemento de lógica difusa no sistema de negociação. Em contraste, teria sido necessário criar vários critérios de otimização para regras estritas, o que aumentaria a complexidade do desenvolvimento do sistema e o número de parâmetros otimizados.
Também deve ser notado que este ainda é um exemplo muito grosseiro da construção de um sistema de negociação baseado na lógica fuzzy, já que ele usa uma estratégia primitiva baseada em RSI, mesmo sem usar stop loss. No entanto, isso deve ser suficiente para entender a aplicabilidade da lógica fuzzy à criação de sistemas de negociação.
Conclusão.
A lógica Fuzzy permite uma criação rápida de sistemas com regras difusas que são muito simples de otimizar. Ao mesmo tempo, o complexo processo de seleção dos parâmetros do sistema de negociação passa pela otimização genética, liberando o desenvolvedor da rotina de busca por uma estratégia de negociação, desenvolvendo e algoritmizando inúmeras regras do sistema de negociação. Juntamente com outros métodos de aprendizado de máquina (por exemplo, redes neurais), essa abordagem permite alcançar resultados impressionantes. Reduz as hipóteses de overfitting e a dimensão dos dados de entrada (3 indicadores RSI com diferentes períodos se reduziram a um único sinal, o que descreve a situação do mercado de forma mais completa e mais generalizada do que cada indicador em si).
Se você ainda tiver problemas para entender como a lógica difusa funciona, pergunte a si mesmo como você pensa, em que termos você opera e em que base baseia sua tomada de decisão.
Aqui está um exemplo de reforço. Por exemplo, você tem três desejos: ir a uma festa, assistir a um filme em casa ou salvar o mundo. O termo "assistir a um filme em casa" tem o maior peso, porque você já está em casa e não é necessário nenhum esforço adicional. Ir a uma festa é viável se alguém te convida e te pega, mas como isso ainda não aconteceu, as chances de ir são medianas. E, finalmente, para salvar o mundo, você precisa mobilizar todas as suas habilidades sobrenaturais, vestir uma fantasia de super-homem e lutar contra um monstro alienígena. É improvável que você decida fazê-lo hoje e não o deixe até amanhã, então as chances são pequenas.
A inferência fuzzy será algo assim: eu provavelmente ficarei em casa, e talvez eu vá para a festa, mas definitivamente não vou salvar o mundo hoje. Após a defuzzificação, nossas chances podem ser avaliadas em uma escala de 0 a 10, onde 0 é "ficar em casa", 5 é "ir para a festa", 10 é "lutar contra um monstro". Obviamente, o resultado nítido estaria no intervalo de 0 a 3, ou seja, é mais provável que você fique em casa. O mesmo princípio é usado no sistema de negociação apresentado: ele compara os valores de três indicadores e usa condições lógicas para determinar a opção mais preferida no momento atual - comprar, vender ou não fazer nada.
Possíveis maneiras de melhorar este exemplo (para estudo autônomo):
Aumentando o número de entradas e condições lógicas. Isso aumenta a capacidade do sistema e o torna mais adaptável ao mercado. Otimizando não apenas a saída Gaussiana, mas também todas as funções de associação de entradas e saídas. Otimizando a base de regras. Otimize os pesos das expressões lógicas. Criação de um comitê de vários modelos fuzzy responsáveis ​​por diferentes aspectos do sistema de negociação. Usando inferências fuzzy como preditores ("features") e / ou variáveis ​​de destino para redes neurais.
Se houver interesse suficiente no artigo, e eu receber feedback suficiente, eu poderia considerar a possibilidade de escrever um novo artigo dedicado à combinação de lógica difusa e uma rede neural.
Abaixo estão os códigos-fonte dos especialistas e um script de teste para as funções de associação. Para o especialista compilar e trabalhar, é necessário fazer o download da biblioteca MT4Orders e da biblioteca Fuzzy atualizada.
Traduzido do russo por MetaQuotes Software Corp.

Um sistema fuzzy de negociação de ações a curto prazo inteligente para auxiliar os investidores na gestão de carteiras.
Destaques.
O sistema fuzzy de curto prazo proposto utiliza um conjunto de indicadores técnicos apropriados.
Os retornos do sistema proposto são superiores aos da estratégia B & amp;
O sistema proposto evita grandes perdas durante os mercados de baixa.
Durante os mercados em alta, o sistema produz retornos mais baixos do que a estratégia da B & amp;
Os custos de transação afetam significativamente o desempenho do sistema proposto.
Os mercados financeiros são sistemas complexos influenciados por muitos fatores econômicos, políticos e psicológicos inter-relacionados e caracterizados por não-linearidades inerentes. Recentemente, tem havido muitos esforços para a previsão do mercado de ações, aplicando várias técnicas de lógica difusa e usando métodos de análise técnica.
Este artigo apresenta um sistema fuzzy de negociação de curto prazo usando uma nova estratégia de negociação e um “amálgama” entre indicadores técnicos usados ​​comumente alterados e raramente utilizados, a fim de auxiliar os investidores no gerenciamento de seu portfólio. A amostra consiste em dados diários do índice geral da Bolsa de Valores de Atenas em um período de mais de 15 anos (15/11/1996 a 5/6/2012), que também foi dividido em grupos distintos de períodos de mercado de baixa e baixa. .
Os resultados sugerem que, com ou sem considerar os custos de transação, o retorno do modelo fuzzy proposto é superior aos retornos da estratégia buy and hold. O sistema proposto pode ser caracterizado como conservador, uma vez que produz menores perdas durante os períodos de baixa e ganhos menores durante os períodos de alta do mercado em comparação com a estratégia de compra e manutenção.

ePublications na Regis University.
Todas as teses da Universidade Regis.
Primeiro conselheiro.
Segundo conselheiro.
Faculdade de Estudos Profissionais.
Nome da graduação.
Engenharia de Software MS e Tecnologias de Banco de Dados.
Escola de Computação e Ciência da Informação.
Tipo de documento.
Tese - Acesso Aberto.
Número de páginas.
A análise técnica dos mercados financeiros envolve a análise de movimentos passados ​​de preços, a fim de identificar oportunidades comerciais favoráveis. O objetivo desta pesquisa foi demonstrar que um sistema de negociação de ações fuzzy logic baseado em análise técnica pode ajudar comerciantes médios a se tornarem bem sucedidos, otimizando o uso de indicadores técnicos e regras comerciais que os especialistas usam para identificar quando comprar e vender ações. A pesquisa de literatura relevante explorou o estado atual do conhecimento em metodologias para desenvolver e validar sistemas de negociação usando indicadores técnicos e sistemas de negociação de lógica difusa, fornecendo diretrizes para o desenvolvimento e avaliação do sistema. A avaliação do sistema confirmou que a lógica fuzzy pode ter uma contribuição positiva para um sistema comercial bem sucedido, e que uma vez que um sistema de negociação bem sucedido tenha sido desenvolvido e verificado, um trader médio pode ser bem sucedido simplesmente seguindo os sinais de compra e venda do sistema de negociação. O profissional não precisa ser um especialista em interpretar os indicadores técnicos subjacentes ou reagir emocionalmente aos movimentos de preços. As decisões de negociação são tomadas pelo sistema de negociação, portanto, a única decisão que o trader médio precisa tomar é se há confiança suficiente no sistema para cometer dinheiro real em negociações ao vivo. Sugestões para pesquisas futuras incluem melhorias na precisão e flexibilidade e investigação de modelos comerciais e filtros adicionais.
Data do prêmio.
Localização (criação)
Declaração de direitos.
Todo o conteúdo desta coleção pertence e está sujeito ao controle exclusivo da Regis University e dos autores dos materiais. Está disponível apenas para fins de pesquisa e não pode ser usado em violação de leis de direitos autorais ou para fins ilegais. Os materiais não podem ser baixados no todo ou em parte sem a permissão do detentor dos direitos autorais ou de outra forma autorizada nos padrões de "uso justo" das leis e regulamentos de direitos autorais dos EUA.
Citação Recomendada.
Zeigenbein, Sammy, "Um sistema de negociação de ações de lógica fuzzy baseado em análise técnica" (2011). Todas as teses da Universidade Regis. 474

Fuzzy Decision Making System para o mercado de ações.
Conferência Internacional sobre Sensores, Segurança, Software e Sistemas Inteligentes, 8-10, janeiro de 2009.
4 páginas Publicado em: 3 de outubro de 2013
M. Gunasekaran.
Departamento de MCA, Park College de Engenharia e Tecnologia.
K. S. Ramaswami
Instituto de Tecnologia de Coimbatore - Departamento de Matemática.
Faculdade de Engenharia e Tecnologia do Parque.
Data de Escrita: 9 de janeiro de 2009.
Este artigo descreve o método de análise de estoque baseado no sistema de tomada de decisão fuzzy para prever o preço da ação. O objetivo deste sistema é projetar uma estratégia automatizada que pode maximizar o lucro. O Sistema Difuso se assemelha mais ao tipo de raciocínio de senso comum que usamos na tomada de decisões. Os benefícios do Fuzzy Decision Making System são a abordagem baseada em modelos e o gerenciamento do conhecimento, que oferece alta qualidade, previsões sistemáticas e resolução interativa de problemas. O objetivo deste estudo é desenvolver um sistema de inferência fuzzy para reconhecer as regras difusas das tendências do mercado de ações e prever as direções ascendentes e descendentes do mercado de ações. Nosso sistema proposto foi testado usando dados da National Stock Exchange (NSE).
Palavras-chave: Sistema Fuzzy, Mercado de Ações, Sistema de Negociação, Análise Técnica.

Sistema de negociação difuso
Revise nossa lista de verificação de atualização do EZproxy para garantir acesso ininterrupto.
IEEE IEEE Xplore Biblioteca Digital IEEE-SA IEEE Spectrum More Sites.
Conta IEEE.
Detalhes da compra.
Informação do Perfil.
EUA & amp; Canadá: +1 800 678 4333 Mundial: +1 732 981 0060.
Uma organização sem fins lucrativos, o IEEE é a maior organização profissional técnica do mundo dedicada ao avanço da tecnologia em benefício da humanidade.
&cópia de; Copyright 2018 IEEE - Todos os direitos reservados. O uso deste site significa sua concordância com os termos e condições.

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

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