Download MetaTrader 5

Sequência DeMarker (TD SEQUENTIAL) com uso de inteligência artificial (IA)

10 maio 2017, 10:05
Mihail Marchukajtes
0
1 133

1. Introdução

Os sistemas de inteligência artificial envolvem como se fossem teias de aranha as atividades diárias humanas. Eles são umas das primeiras formas de operar empregadas por traders. Sugiro falar sobre como se pode usar o sistema de inteligência artificial com base em redes neurais durante a negociação. 

Para começar, é importante discernir o fato de uma rede neural não poder negociar por si mesma. Que dizer, quando temos uma rede podemos alimentá-la quanto necessário com preço, indicadores e outras coisas saborosas. Claro, a partir dela não obteremos nenhum resultado, portanto, podemos imediatamente dizer adeus a esta ideia. A rede neural só pode estar perto da estratégia, "servir-lhe": ajudar a tomar decisões, filtrar, prever. Uma rede neural que seja em si uma estratégia pronta é um absurdo (em qualquer caso, eu pessoalmente não vi algo desse genro).

Neste ativo, vou discutir como, "cruzando" uma estratégia muito importante e uma rede neural, é possível se envolver com sucesso na negociação. Falaremos sobre a estratégia "Sequential" de Thomas DeMarker com o uso de sistemas de inteligência artificial. A "Sequential" é bem descrita por DeMarker no livro "A nova ciência da análise técnica", que é também leitura útil para qualquer trader. Aqui é possível entrar em contacto com este trabalho. 

Primeiro, algumas palavras sobre a estratégia. A "Sequential" é uma estratégia de contra-tendência. Nela os sinais que aparecem são independentes uns dos outros. Em outras palavras, podem entrar consecutivamente três sinais para compra e para venda, o que complica muito o uso da "Sequential". Tal como acontece com qualquer estratégia, tem sinais falsos que vamos procurar. O princípio de plotagem do sinal segundo a "Sequential" é bem descrito pelo autor, no entanto, nós nos encarregaremos de introduzir algumas pequenas mudanças em sua interpretação. Vamos trabalhar APENAS segundo a primeira parte da estratégia, utilizando os sinais "Instalação" e "Interseção". Eu escolhi-os por duas razões: em primeiro lugar, estes sinais são localizados nas partes superiores e inferiores, e, em segundo lugar, surgem com mais frequência do que "Contagem" e "Entrada".

Só quero mencionar que se pode selecionar absolutamente qualquer estratégia de negociação para a integração de inteligência artificial - até mesmo o comum cruzamento de MA. Em qualquer caso, em cada estratégia, o principal a levar em conta será momento da tomada de decisão. Na verdade, analisar cada barra é uma utopia, e, portanto, é necessário identificar em que momentos, em quais barras vamos estudar a situação do mercado. É para isso que serve a estratégia de negociação. Os métodos de análise, repito mais uma vez, podem ser absolutamente quaisquer - desde o cruzamento de MA a construções fractais -, a principal coisa neste caso será obter um sinal. No nosso caso, na "Sequential", estamos interessados ​​na janela de pixels verdes, dentro da qual vamos determinar o comportamento do mercado e fazer uma conclusão sobre a verdade ou falsidade deste sinal.

               

 Fig. 1. Indicador TDSEQUENTA by nikelodeon.mql5

Analisemos a imagem de como trabalhar com a estratégia de negociação "Sequential" sem usar a rede neural. Na imagem você pode ver o surgimento de pontos verdes. Aqui é exibida uma versão adaptativa de como construir a estratégia, isto é, quando não tomamos um número específico de barras (por exemplo, 9 barras consecutivas), enquanto a condição é levada a cabo. Assim que a condição de construção deixa de ser realizada, aparece o sinal. Assim, cada sinal aparece após um número de pontos, dependendo do comportamento do mercado atual. É aqui que acontece a adaptação da "Sequential" em relação ao mercado. Este efeito faz com que seja possível selecionar uma janela - para análise - que consiste em pontos verdes. Para cada sinal, esta janela tem uma duração diferente. Ao usar I.A., isto dá uma certa vantagem. Eu escolhi a coloração: ponto azul após verdes indica um sinal de compra, enquanto ponto vermelho, venda.

Vemos que o primeiro sinal para venda (ponto vermelho) é falso, porque o sinal que lhe segue é maior. Sempre e quando nós trabalhemos de sinal a sinal, se entrarmos no mercado segundo este ponto vermelho, perderemos dinheiro. O primeiro ponto azul também nos engana, poque, após comprar segundo ele, nós obtemos um negativo tangível. Como dividir os sinais em falsos e verdadeiros então? A inteligência artificial nos ajudará a fazer isso, nomeadamente, uma rede neural (RN).


2. Contexto de mercado 

Anteontem seu sistema de negociação estava funcionando perfeitamente. E ontem, mal. Hoje novamente estava trabalhando de uma maneira aceitável. Soa familiar? Claro, cada trader é confrontado com o fato de que o desempenho do sistema de negociação muda de dia para dia. Não é culpa do próprio sistema. O culpável é o chamado contexto de dia de negociação. Ele é formado com base nas alterações anteriores do volume de negociação, das posições abertas (open interests) e do preço. Simplificando, o fundo de negociações é definido por estes dados, que no fim de cada dia são diferentes. Assim, chegamos às recomendações importantes: otimize seus robôs nos dias cujas condições sejam semelhantes a aquilos nos quais eles vão negociar. A tarefa mais difícil ao otimizar uma RN consiste em fazer que os padrões a serem formados no dia atual fiquem na base instrutiva. Uma das maneiras para que fiquem nela é precisamente o "Contexto de dia".

Examinemos um exemplo. Digamos que hoje o volume de negociação e a posição aberta (open interests) caíram, ao mesmo tempo que a taxa de câmbio se tornou mais atrativa. Aparentemente, o mercado está enfraquecendo e esperamos uma reversão para baixo. Após treinar o suficiente a RN - APENAS nos dias em que o volume e a "open interests" caem e a taxa de câmbio se torna mais atrativa -, seremos mais propensos a apresentar para entrada da RN os padrões que temos a chance de ver durante o dia. Ou seja, verifica-se que a RN está bem treinada no que diz respeito ao "Contexto de mercado". Provavelmente, a reação do mercado será como num dia com parâmetros semelhantes. É fácil calcular que são apenas nove as opções em geral para combinar o volume, o preço e a posição aberta (open interests). Bem treinada a rede de acordo com cada contexto separadamente, conseguimos cobrir todo o mercado. Nove modelos bem treinados trabalham, em média, duas semanas, e, em alguns casos, até mais.

Organizar o trabalho quanto ao contexto de dia é muito simples usando o indicador eVOLution-dvoid.1.3 (1). Na verdade, este indicador lê os dados do arquivo csv localizado no diretório ...\Files\evolution-dvoid\dvoid-BP.csv. Como podemos ver, aqui é usada a cotação da libra esterlina em relação ao dólar estadunidense. Para exibir corretamente os dados e ter hipótese de usá-los no contexto do dia, é necessário todas as manhãs por volta das 4:30 GMT entrar no site da Bolsa de Chicago. Nele baixamos o boletim diário (para a libra este boletim é o número 27) que mostra o volume e a "open interests" para o fim do pregão do dia anterior. Devemos colocar estes dados todos os dias antes do pregão no arquivo "dvoid-BP.csv", assim, durante o dia o indicador exibirá a alteração no volume em comparação com o valor anterior. Ou seja, não estamos interessados ​​no valor real do volume de mercado, mas sim na sua mudança. Da mesma forma acontece com a posição aberta (open interests), isto é, o que é importante é seu movimento relativo.


3. Abordagem para a organização do modelo

Para aumentar a base instrutiva e fornecer o nível adequado de generalidade, introduzimos uma condição importante. Vamos dividir os sinais em verdadeiros e falsos separadamente para compra e para venda. Assim, os recursos da própria RN não serão gastos na classificação de sinais. Seremos nós que pré-dividiremos estes sinais e construiremos dois modelos: um deles responderá pelos sinais de compra, o outro, pelos de venda. Assim, de maneira simples, dobraremos o tamanho da base instrutiva. Ao fazer isto, sabe-se que: quanto maiores a base instrutiva e seu nível de generalização, por mais tempo ajustar-se-á o modelo ao mercado.

Introduzimos o conceito intervalo de confiança: trata-se do intervalo em que nós confiamos no modelo e consideramo-lo qualificado para ser usado. Supomos que o intervalo de confiança para o modelo considerado é 1/3 do intervalo de treino. Ou seja, treinado o modelo em 30 sinais, assumimos que seu período adequado para trabalhar é de 10 sinais. No entanto, também não é incomum o fato de o modelo trabalhar pelo triplo do tempo em comparação com o intervalo de treino. 

Tem-se notado também (e é muito natural) que quando o intervalo de treino aumenta, a capacidade de generalização do modelo diminui. Isto apoia a teoria de que o Graal das estratégias de negociação sem perdas não existe. Pois, se imaginarmos que conseguimos treinar a RN em todo o histórico de mercado, com 100% de generalização, então, estaríamos perante um modelo ideal, isto é, que sempre daria certo. Infelizmente, a prática mostra que se trata de uma utopia. Mas, mesmo assim, é possível construir um bom modelo de longa duração. O segredo está nos dados que são introduzidos à rede. Se eles refletem a essência da variável de saída e são - para ela - a causa, é fácil construir o modelo. 

Falando na variável de saída, ela é tão difícil de selecionar, quanto encontrar os dados de entrada para construir a rede. Olhando para os dados históricos dos sinais, podemos determinar com precisão quais deles são verdadeiro ou falso. Normalmente, ao construir a variável de saída, interpretamos claramente cada sinal, tornando ideal a saída da rede. Ou seja, em nossa saída não há nenhum erro, o que faz com que a RN se foque em aprender essas saídas ideais. Naturalmente, é praticamente impossível obter um modelo com 100% de generalização num intervalo longo. Duvido que existam dados que possam interpretar os sinais da variável de saída por um longo período. Além disso, se existirem, a necessidade de usar uma RN desaparecerá completamente.

Isso faz com que seja necessário formar uma variável de saída com pequenos erros, ou seja, lucros significativos se sobrepõem a pequenas perdas vindas dos sinais. Como resultado, temos uma variável de saída que não é ideal, mas tem o potencial de aumentar o depósito. Em outras palavras, os erros trazem perdas menores que são cobertas totalmente por outros sinais rentáveis. Isso torna possível obter um modelo com um alto nível de generalização em relação à variável de saída. Neste caso é muito importante o fato de nós sabermos o grau de erro desse modelo. Por conseguinte, a credibilidade no sinal conterá esta correção.

E, finalmente, o momento mais importante na construção de modelos, isto é, a variedade de carga semântica na variável de saída. Naturalmente, em primeiro lugar, lembremo-nos do lucro. Designamos como 1 os sinais rentáveis no passado, enquanto, como 0, os não rentáveis. No entanto, existem muitas outras variáveis ​​semânticas para saída que darão informações valiosas adicionais sobre o mercado. Por exemplo: será que haverá recuo após o sinal, atingirei a um certo lucro, será que a próxima barra após o sinal será de baixa ou de alta? Então, é possível dar sentido a variável de saída em diferentes direções, ao fazer isto, são utilizados os mesmos dados de entrada. Assim, obtemos mais informações sobre o mercado, e se alguns modelos confirmam outros, a probabilidade de lucro aumenta.   

Já vi muitas vezes traders tentando obter 100 ou mais sinais num intervalo longo. Eu não compartilho dessa opinião. Na minha opinião, para ganhar, são suficientes 10-15 sinais, mas seu erro não deve ser superior a 20%. Isto é devido ao fato de que mesmo se dois sinais de dez dão a perda máxima, temos oito certinhos. Pelo menos dois deles trazem um lucro que cobre a perda.

Então, como fazer um modelo que seja viável a longo prazo? Por exemplo, estamos interessados ​​em que o sistema em 5M seja estável uma ou duas semanas, uma vez que teríamos um bom resultado ao trabalhar sem re-otimização. Suponhamos que nosso indicador principal, nosso sistema de negociação principal (neste caso, a "Sequential") dá uma média de 5 sinais todos os dias. Para cada um dos nove modelos do contexto de mercado, pegaremos em 10 sinais. Neste caso, são cinco os dias de negociação durante a semana. Ou seja, verifica-se que alguns modelos funcionarão, mas outros, não. Como mostra a prática, numa semana cada modelo funciona não mais do que duas vezes, e muito raramente, três vezes. Portanto, a estratégia de negociação generalizada trabalha mesmo mais de uma semana, tendo em vista que o intervalo de confiança no período fora da amostra é de 10 sinais.


4. Teoria de redes neurais

Passamos agora para a teoria de redes neurais. Provavelmente você pensou que eu vou lhe ensinar topologias, títulos e métodos de treino? Você está enganado.

Vamos falar do seguinte. Há duas tendências no uso de redes neurais de diferentes topologias. Uma preditiva e outra de classificação.

A rede preditiva dá o valor futuro da variável de saída. Considera-se que, além da direção da taxa de câmbio (para cima ou para baixo), ela emite também o grau dessa direção. Por exemplo, agora o par EUR/USD está fixo em 1,0600, e a rede diz que uma hora mais tarde ele vai subir para 1,0700, isto é, ela antecipa esses 100 pontos adicionais. Só quero mencionar que não compartilho dessa abordagem para as redes neurais, porque o futuro não está traçado. Eu, pessoalmente, acho que esse argumento filosófico é suficiente para abandonar esse método de trabalho com a RN. Claro, eu entendo que é apenas uma questão de gosto, e, para ser justo, eu mesmo constato que as redes preditivas lidam bem com tarefas.

No entanto, eu uso a rede de classificação. Elas nos dão uma ideia das condições atuais do mercado, e quanto mais precisas forem nossas definições, melhor será nossa negociação. A resposta da rede em ambos os casos leva à realização de uma ação. No primeiro caso, nós compramos em 1,0600 e vendemos quando o preço atinge 1,0700. No segundo caso, apenas compramos e saímos da negociação no sinal seguinte, mas não podemos prever em que nível estará o preço. 

Para revelar a essência desta abordagem, vou contar uma anedota. Uma vez, perguntaram ao campeão mundial de xadrez Garry Kasparov quantos movimentos à frente pensava quando planejava a próxima jogada. Todos achavam que Kasparov ia dizer alguma cifra enorme. No entanto, o que ele disse prova que nem todo mundo entende a essência do jogo: "A principal coisa no xadrez não consiste em quantos movimentos à frente você pensa, mas sim quão bem você analisa a situação atual." Da mesma forma, no mercado de moedas: a fim de compreender a essência do jogo, não necessariamente se deve olhar para algumas barras à frente. Basta definir o estado atual do mercado num determinado momento e fazer o movimento certo.

É esta ideologia que é mais achegada a mim, mas, repito que esta é uma questão de gosto. As redes neurais preditivas são muito populares, e não se pode negar-lhes o direito de existir.


5. Organização interna dos sistemas de inteligência artificial

Junto com as duas abordagens para a construção e utilização de redes neurais (previsão e classificação), existem dois tipos de especialistas nesta área, isto é, os desenvolvedores de sistemas de IA e seus usuários. Tenho a certeza de que Stradivari tocou muito bem seus violinos, mas não é famoso como um grande virtuoso. Claro, o fabricante sabe como usar o instrumento, mas, nem sempre, o mestre pode descobrir todo o potencial do que tem criado. Infelizmente, não consegui entrar em contato com o autor do otimizador fornecido aqui, uma vez que ele não responde aos correios que lhe envio. No entanto, ele é conhecido por muitos frequentadores do fórum. Trata-se do Yuri Rechetov.

Eu usei sua abordagem ao trabalho e com base na comunicação com ele, descobri a estrutura interna do otimizador sobre a qual quero falar a seguir. Espero que o autor não se importe, já que o produto foi colocado como um de código aberto. Eu, como um usuário de sistemas de IA, não necessariamente tenho de entender o código, mas sim é necessário conhecer a estrutura interna do otimizador. Comecei a me interessar neste produto, em primeiro lugar, porque no otimizador é usado um método de treino diferente dos clássicos. O calcanhar de Aquiles no treino de redes neurais é o retreinamento da rede. É quase impossível de calcular se ocorreu e qual foi o grau. O otimizador do Rechetov utiliza uma abordagem diferente, isto é: é impossível voltar a treinar rede, só se pode não treiná-la até ao final. Esta abordagem permite avaliar a qualidade do treino da rede como uma porcentagem. Nós temos um limite máximo de 100% no treinamento, ele é nosso objetivo (este resultado é muito difícil de alcançar). Treinada a rede, digamos, a 80%, sabemos que em 20% dos casos a rede gerará um erro, e podemos estar preparados para isso. Esta é uma das principais vantagens do método.

Os resultados de trabalho do otimizador estão no arquivo com o código. Há duas redes, cada uma das quais é uma equação não linear. Em cada uma das funções, primeiro, é usada a normalização de dados, dados esses que, posteriormente, chegam na entrada da equação não linear. Para aumentar a capacidade de generalização foi implementado um "comitê" de duas redes. Se ambas dizem "sim", então o sinal é verdadeiro, se dizem "não", é falso. Se as leituras das duas redes são diferentes, temos como resposta um "não sei". Note que no passado não há nenhum estado "não sei", porque nos dados passados ​​sempre podemos determinar qual foi o sinal. Assim, neste caso o "não sei" implica a existência simultânea de um sinal falso e um verdadeiro. Passamos do cálculo bidimensional para o quântico. Como uma analogia, é possível dar o um exemplo com o bit quântico, isto é: ele pode tomar os valores 1 e 0. Assim, com o "não sei": a resposta pode ser a unidade e zero nas páginas do histórico. Mais tarde falaremos sobre um pequeno truque oculto aqui e que usamos para a negociação.

Procedemos à preparação de dados. Os dados em si são apresentados na forma de uma planilha Excel. Neste caso as colunas serão as entradas de rede. A última coluna é a variável de saída. De acordo com seu objetivo, nesta coluna, são registrados uns e zeros. No meu caso, o sinal que recebe o lucro é designado 1, enquanto o que recebe a perda é 0. As linhas da tabela são os dados que armazenamos no momento que surge o sinal. Ao carregar o otimizador, a tabela é dividida em duas bases, isto é, uma instrutiva e outra de teste, com a particularidade de que as duas redes são treinadas de forma cruzada. Mas o cálculo e otimização vão com o comitê destas redes. Assim, o treino de cada rede tem lugar separadamente, mas com resultado global. 

No final desta seção enfatizo que não importa se você está usando um sistema IA ou um ambiente de programação. Mesmo o perceptron mais primitivo pode ser treinado pelo método de retro-propagação (backpropagation) e não treiná-lo novamente, graças a bons dados na a entrada da rede. A questão não está no sistema de IA, mas sim na qualidade dos dados utilizados. É por isso que, no otimizador, os dados são primeiro normalizados, e, em seguida, tudo é processado na mais comum equação não-linear. E se os dados de entrada são a razão para a variável de saída, então estamos perante uma equação simples com cerca de 20 coeficientes que lhe dará em breve 10 sinais com um erro de 20%. Tem-se notado repetidamente, no entanto, que qualquer conversão de preço leva a um atraso. Portanto, como regra, todos os indicadores dão um atraso que afeta o trabalho dos sistemas de inteligência artificial. No próximo artigo falaremos mais com você sobre as variáveis ​​de entrada e de saída. 

 

6 TD "Sequential" e SN

Passamos agora para o uso prático da teoria descrita acima.

Realizamos uma análise na área da negociação real. As setas azuis exibirão o trabalho do SN. Quando a seta aponta para baixo no ponto vermelho o sinal para venda é verdadeiro quando a seta aponta para cima é falso. Se a seta não estiver presente, obteremos a resposta "Não sei." Com os sinais de compra (ponto azul) é o oposto, ou seja, a seta para cima indica que o sinal de compra é verdadeiro e a seta para baixo que é falso.

Consideremos o trabalho do modelo durante o dia. À primeira vista, seria difícil ganhar dinheiro, mas é só à primeira vista. Aqui é o entendimento do que significa a separação que vem em nosso auxílio. Suponhamos que temos dois sinais que são diferentes. Um deles, segundo a IA, é falso para venda, mas na verdade traz lucro. Recebido o seguinte sinal de venda "falso" a partir da IA, é necessário vigilar que esses dois sinais pertençam a uma área de separação ou que simplesmente eles sejam iguais. Se isto é assim, para que o sinal traga lucro, precisamos orientar o indicador de modo que a seta aponte na direção do mercado, ou seja, na direção de lucro do sinal.

Vejam a imagem. O primeiro sinal de venda (ponto vermelho) acabou por ser não lucrativo, mas, quando invertemos para baixo a seta, ele resultou sendo rentável, porque o sinal de venda №2 ficou numa mesma área com o sinal №1. Invertendo a seta, fizemos rentável o segundo sinal, que já podia ser negociado. Agora consideremos o sinal de compra. Como podemos ver, neste caso, a IA cometeu outro erro e gravou um sinal rentável no falso. Agora precisamos melhorar a situação e inverter a seta do sinal de compra №3. Como resultado, o sinal №4 começou a apontar na direção certa. Mas o sinal №5 ficou noutra área, diferente do sinal anterior, e levou a uma reversão no mercado na sua totalidade.

Em outras palavras, obtivemos um bom anti-modelo que só gerava perdas e, depois, invertemo-lo e conseguimos um modelo rentável! Eu chamo este método de "Orientação de modelo". Geralmente é realizado durante um único sinal. Basta esperar no início do dia o surgimento de um sinal de compra e um sinal de venda, orientá-los, para poder começar a trabalhar. Assim, num dia vamos conseguir pelo menos 3-4 sinais. A questão não é ver qual os sinais aconteceram no passado e como ocorreram. É necessário comparar os dois últimos sinais e tirar conclusões, isto é, saber se eles pertencem ao mesmo grupo ou não e como manobrar se conhecido o resultado do sinal anterior. Ao mesmo tempo, não devemos esquecer que a rede pode gerar um erro.


Fig. 2. Indicadores BuyVOLDOWNOPNDOWN.mq5 e SellVOLDOWNOPNDOWN.mq5 


Fig. 3. Indicadores orientados BuyVOLDOWNOPNDOWN.mq5 e SellVOLDOWNOPNDOWN.mq5 

As duas imagens a seguir mostram o trabalho da rede durante 4 dias. Deve ser lembrado que apenas o segundo sinal diário vai ser usado no trabalho. A linha verde representa todos os sinais rentáveis, a vermelha, os não rentáveis. A primeira figura mostra o ótimo trabalho da rede, a segunda, a orientação do primeiro sinal durante o dia. A primeira imagem não só causa impressão, concorda comigo, pois não? Mas se olharmos para a segunda imagem e começarmos a processar as operações a partir do segundo sinal de cada dia e orientada a estratégia de negociação, a imagem melhora significativamente. Tenha em mente que a técnica de inverter deve ser usada com cautela.


Fig. 4 indicadores segundo o nome de cada dia e não orientados na direção certa 


Fig. 5. Indicadores para cada dia orientados segundo o primeiro sinal diário (para compra e para venda separadamente)

 

Como tal, os modelos já não parecem um fracasso, mais parecem bastante competentes. Como eles não esgotaram seu recurso de intervalo de confiança, penso que sua validade é de mais alguns dias. 

A essência da classificação consiste em que o espaço multi-dimensional de dados é dividido pela linha universal que define os sinais para o grupo de "verdadeiros" e o grupo de "falsos". Os sinais "verdadeiros" estão acima de zero, enquanto os "falsos", abaixo. O importante aqui é a estabilidade na divisão entre sinais. É introduzido o conceito de orientação de estratégia de negociação. É importante determinar quando a rede começa a "jogar dinheiro" dando sinais invertidos. Tipicamente, neste caso, o primeiro sinal do dia é a guia. É possível negociar sobre este sinal, mas, com extrema cautela, com base na análise de outros fatores. Meu conselho é que, para livrar a rede de desvios, tente fazer com que o número de zeros e uns na variável de saída seja igual. Para igualização, com segurança remova nas bases instrutivas os zeros ou unidades a mais, começando com os sinais mais distantes. 

Não importa como acontece a divisão, porque o importante é que ela foi estável. Voltamos ao nosso exemplo: antes da reorientação obtivemos dois erros consecutivos na figura №2 e aproveitamos a situação. Como podemos ver, quando se trabalha com a Sequential em 15 minutos obtemos de 2 a 5 sinais durante o dia. E, por exemplo, se os dois sinais de compra caem dentro de classes diferentes (um verdadeiro e outro falso), então, sabendo o resultado do anterior - o primeiro sinal -, é fácil determinar se o seguinte será falso ou verdadeiro. No entanto, é preciso trabalhar com muito cuidado usando o método de orientação. A rede pode dar um erro e, em seguida, continuar a funcionar corretamente. Em qualquer caso, tudo vem com a experiência, as reações automáticas e a intuição para usar o modelo. Em artigos subsequentes, pretendo destacar mais amplamente a questão da adequação do modelo resultante, uma vez que nesta matéria há uma série de nuances.

Aspecto organizativo: os anexos incluem os desenhos que você vê acima. Você pode baixá-los e verificar na data especificada. A estratégia de negociação é insensível às cotações, mas houve casos em que a "Sequential" não dava o sinal noutra corretora, porque, no momento crucial, as cotações eram diferentes. Mas esses casos são raros e os dados de entrada precisam ser idênticos em todas as corretoras, porque são fornecidos a partir da mesma fonte e não podem ser alterados. Ao acontecer isto, não posso garantir que, baixando os arquivos anexos para seu computador, você obtenha o mesmo resultado no mesmo período. Mas acho que você pode usar o modelo para separar o sinal atual e o anterior.

Na conclusão deste capítulo, consideraremos uma outra questão que já mencionamos acima. O que se deve fazer quando a rede nos dá o sinal "NÃO SEI", e o que significa isso? Repito: em princípio, nas páginas do histórico, não pode existir um conceito como "não sei". Isto só significa que, na base instrutiva, não existia esse padrão e que as opiniões das duas redes no comitê sobre este assunto eram divididas. O "NÃO SEI" assume que podemos estar perante tanto um sinal verdadeiro como um falso. É bem possível que se tomássemos uma parte um pouco maior do histórico, encontraríamos o padrão necessário e a rede poderia identificá-lo. Mas a profundidade de treino é pequena, isto é, cerca de 30 sinais, o que corresponde a cerca de 8-10 dias. Com certeza, periodicamente aparecem sinais - que não estavam durante o treino - e modelos desconhecidos. De acordo com minhas observações, quanto mais tempo funciona o modelo, mais frequentemente ele responde "não sei." Isso se encaixa bem com a teoria do "mercado ao vivo", quando o passado não é o futuro. Os padrões recentes podem se repetir tanto no futuro próximo quanto no futuro distante. A essência do mercado é tal que o valor da barra diminui gradualmente após ser fechada à medida que se vai mais fundo no histórico. Esta é uma regra geral para qualquer informação: quanto mais velha é, menos significativa.

Há duas maneiras de resolver os problemas de classificação do estado "Eu não sei." Vejamos a seguinte imagem. Temos sinais sem setas e o nosso infame "não sei" - duas redes que no comitê são interpretadas de maneiras diferentes. Na figura, estes sinais são referidos como 1 e 2, com a particularidade de que o primeiro sinal deve ser falso, para poder ganhar com ele.


Fig. 6 Método para organizar a orientação do sinal segundo o contexto do dia  

 

Há duas maneiras de classificar até ao fim o estado "Não sei." A primeira maneira é muito simples (ver fig. 7). Nós determinamos que o estado "Não sei" era falso para a primeira venda. Isto é, consideramos o sinal "Não sei" para venda falso. Também consideramos que o sinal №2 é falso, supondo que as compras continuarão. Na verdade, a rede cometeu um erro, mas, na prática, este erro pode ser reduzido a nada entrando no mercado com o melhor preço. Portanto, o surgimento da seta para cima não prejudicará muito, embora, de fato, o sinal resultasse negativo. Também consideramos o sinal "Não sei" para compra (ponto azul) como falso, porque a como da última vez durante o estado "não sei" o sinal de compra era falso. Este método é muito antigo, mas, em nossa experiência, ele funciona bem.


Fig. 7. Classificação do sinal "Não sei", quando é considerado como uma classe alternativa 

O segundo método de classificação do estado "Não sei" apela para a organização interna do otimizador e é baseado em sua fundação. Assim, o estado "não sei" ocorre quando no comitê uma rede mostra 1, e outra 0. A essência do método consiste em que escolhemos no comitê a rede que mostra corretamente. Voltamos ao nosso exemplo. O sinal №1 era falso quando a rede A era maior que zero, e a rede B, menor. Portanto, se a rede B está acima de zero e a rede A, abaixo, o estado "Não sei" é verdadeiro. No caso de um sinal de compra, é o oposto, isto é: o sinal anterior (que não está na imagem) era falso, quando a resposta da rede A foi negativa e a resposta da rede B, positiva. No sinal de compra atual a situação é oposta, portanto, assumimos que este sinal é verdadeiro, e, assim, é recomendado comprar. 


Fig. 8. Classificação do sinal "Não sei" segundo as leituras de cada uma das redes no comitê

Dos dois métodos de classificação do estado "não sei" pessoalmente eu prefiro o primeiro, o que tem uma explicação bastante lógica. Ao usar comitês de duas redes, temos três classes, isto é: "Sim", "Não" e "Não sei", e nestes três grupos estão distribuídos nossos dados. Não é importante que tenhamos três grupos, mas sim o fato de que eles são fundamentalmente diferentes. Recebido o sinal "Não sei" e aclarada posteriormente sua direção, acreditamos que os novos sinais neste grupo terão a mesma direção. A experiência atual mostra que este método é mais confiável do que o segundo.

Prever os mercados financeiros é difícil, porque são um organismo animado e imprevisível, no qual trabalham pessoas reais. Durante o dia, a situação do mercado pode mudar de modo que ninguém possa prever nada, nem os criadores de mercado nem os grandes traders nem eu e você. O modo destas alterações consiste em dois componentes. O primeiro é o contexto de mercado, sobre o qual já falamos. O segundo consiste na atividade dos compradores e vendedores em tempo real, aqui e agora. Assim, a principal coisa na negociação é estar alerta e orientar-se no momento certo!

O uso da IA não é uma panaceia nem o Graal das estratégias de negociação sem perdas. Claro que, ao negociar utilizando redes neurais, definitivamente vale a pena ouvir os conselhos da inteligência artificial. Mas é preciso negociar usando a cabeça própria. Depois de receber um sinal da IA, é preciso esperar a confirmação, escolher o nível certo, estimar a probabilidade de reversão, etc. É sobre isso que quero falar no terceiro artigo que incidirá sobre as particularidades práticas da negociação segundo a estratégia "Sequential" com uso de redes neurais.

 

7. Conclusão

Mais uma vez eu quero enfatizar que este artigo é puramente de natureza metodológica. Todas os métodos que descrevo podem ser usados em sua estratégia de negociação. Ademais, espero que minhas dicas sejam úteis.

Sei que haverá apoiantes e opositores deste método. Se você leu até aqui, então você está pelo menos interessado. Eu acho que sua opinião é muito importante, sobretudo, se você discorda e tem soluções construtivas que aportem para fazer bons melhoramentos ou alterações. Em outras palavras, critique e proponha! A construção conjunta do sistema de inteligência artificial pode ser a prova do desempenho dessa abordagem. Eu ficaria feliz de trabalhar em conjunto com um programador profissional sobre este assunto. Convido você realizar um trabalho em cooperação.

No apêndice do artigo vem anexado o código do indicador TD "Sequential", bem como os indicadores que filtram ou classificam os sinais de compra e de venda tendo em conta o contexto do dia e a orientação no início do pregão. Sinto a necessidade de dizer que os indicadores foram reescritos da partir da linguagem MQL4 e não são capazes de reproduzir plenamente tudo o que é mostrado no artigo. A razão é que os dados de entrada para a RN requerem um conjunto considerável de indicadores do projeto ClusterDelta, que estão disponíveis apenas por assinatura.

Para todos aqueles que desejem, eu estou pronto para fornecer o arquivo preparado para o trabalho dos indicadores. Seria interessante reescrever todos os indicadores necessários em MQL5 para repetir completamente o algoritmo de trabalho. O meu propósito aqui era mostrar como usar na famosa estratégia de negociação Demark o código que se encontra no domínio público para a criação e formação de redes neurais. Estou pronto para ouvir os comentários e responder às suas perguntas.


Programas utilizados no artigo:

 # Nome
Tipo
 Descrição
1  TDSEQUENTA_by_nikelodeon.mq5 Indicador  Estratégia básica que dá sinais de compra e venda na forma de pixels azuis e vermelhos, respectivamente. Os pontos verdes indicam que as condições para formação do sinal estão criadas, e é preciso esperar o surgimento do próprio sinal. A estratégia é conveniente porque o trader está pronto para o surgimento do sinal graças ao ponto verde.
2  eVOLution-dvoid.1.3 (1).mq5 Indicador  Carrega um arquivo de texto com os dados sobre o volume e a "open interests" para os dias anteriores, calcula a diferença entre os dados e coloca tudo no buffer de indicador para referência futura ao salvar dados, bem como ao escolher qual modelo deve trabalhar hoje. Em outras palavras, organiza o contexto de mercado.
3  dvoid-BP.csv Arquivo de texto
 Projetado para registrar informações sobre o volume e a "open interests" todas as manhãs às 7:30 GMT a partir do site da Bolsa de Chicago. Os dados são gravados manualmente todas as manhãs. O arquivo é carregado com a extensão txt. Após baixar a extensão, é necessário alterar para csv e colocar o arquivo na pasta \Files\evolution-dvoid\dvoid-BP.csv
4  BuyVOLDOWNOPNDOWN.mq5 Indicador  Rede para classificação de sinais para compra nos dias quando o volume e a posição aberta (open interests) caem.
5  BuyVOLDOWNOPNUP.mq5 Indicador  Rede para classificação de sinais para compra nos dias quando o volume cai e a posição aberta (open interests) aumenta.
6  BuyVOLUPOPNDOWN.mq5 Indicador  Rede para classificação de sinais para compra nos dias em que o volume aumenta, enquanto em aberto cai.
 7  BuyVOLUPOPUP.mq5   Indicador  Rede para classificação de sinais para compra nos dias quando o volume e a posição aberta (open interests) aumentam.
 8  SellVOLDOWNOPNDOWN.mq5   Indicador
 Rede para classificação de sinais para venda nos dias quando o volume e a posição aberta (open interests) caem.
 9  SellVOLDOWNOPNUP.mq5   Indicador  Rede para classificação de sinais para venda nos dias quando o volume cai e a posição aberta (open interests) aumenta.
 10  SellVOLUPOPNDOWN.mq5   Indicador
 Rede para classificação de sinais para venda nos dias em que o volume aumenta, enquanto em aberto cai.
 11  SellVOLUPOPNUP.mq5   Indicador
 Rede para classificação de sinais para venda nos dias quando o volume e a posição aberta (open interests) aumentam.

Traduzido do russo por MetaQuotes Software Corp.
Artigo original: https://www.mql5.com/ru/articles/2773

Negociação usando canais Donchian Negociação usando canais Donchian

No artigo, são desenvolvidas e testadas várias estratégias com base no canal Donchian com a utilização de diferentes indicadores de filtro. São realizadas a pesquisa e a análise comparativa de seu funcionamento.

Interfaces gráficas X: Ordenação, reconstrução da tabela e controles nas células (build 11) Interfaces gráficas X: Ordenação, reconstrução da tabela e controles nas células (build 11)

Nós continuamos a adicionar novos recursos para a tabela renderizada: ordenação dos dados, gerenciamento do número de colunas e linhas, definição dos tipos de células da tabela para colocar os controles dentro delas.

Interfaces gráficas X: Algoritmo de quebra de linha na caixa de texto multilinha (build 12) Interfaces gráficas X: Algoritmo de quebra de linha na caixa de texto multilinha (build 12)

Nós continuamos com o desenvolvimento do controle da caixa de texto Multilinha. Desta vez, nossa tarefa é implementar um quebra automático de linha no caso da largura da caixa de texto ser excedida ou uma quebra automática de linha inversa do texto para a linha anterior se a oportunidade surgir.

Receitas MQL5 - Criamos um buffer circular para calcular rapidamente indicadores numa janela deslizante Receitas MQL5 - Criamos um buffer circular para calcular rapidamente indicadores numa janela deslizante

O buffer circular é a maneira mais simples e eficaz de organizar os dados para os cálculos numa janela deslizante. Este artigo descreve como está construído este algoritmo e mostra como usá-lo para fazer o cálculo numa janela deslizante usando um processo simples e eficiente.