Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 230

 

E assim, o meu conceito de como "aprendizagem de máquinas" poderia ser implementado em relação à negociação de MQL:


Primeiro sobre os conceitos básicos:

1. A assinatura é uma descrição numérica do carácter das alterações do valor do parâmetro. A assinatura é feita por um algoritmo especial. Tem um formato. É armazenado em um bloco especial (array). É o resultado final de todos os algoritmos, cálculos e operações.

2. período atual - um período de tempo definido. É implementado em um buffer de anel através do qual passam os valores dos parâmetros. Cada novo valor move toda a fila de valores previamente registrados e pega a cabeça da matriz, e o valor mais antigo é apagado. Pode haver muitos períodos atuais, e cada um pode ser dedicado a uma escala de tempo diferente e a um parâmetro diferente.

3. Intervalo de valores de parâmetro - o intervalo dentro do qual o valor do parâmetro muda. É definido pela experiência durante os testes do sistema. O intervalo entre os valores mínimo e máximo pode incluir uma divisão em intervalos menores, servindo para quebrar o intervalo completo dos valores de um parâmetro e para levá-los a uma escala conveniente.

4. Intervalos de tempo entre os valores de entrada - medidos à medida que os valores chegam ao buffer de anéis. Juntamente com os intervalos são necessários para compilar a natureza da mudança de valor e a análise matemática subsequente.

5. Curva de alteração de valor - alteração condicional, in-programada, que combina os valores em si e os intervalos de tempo entre eles. O resultado é uma curva gráfica (representada em matriz bidimensional) à qual vários métodos de análise matemática podem ser aplicados.

6. Filtros matemáticos - métodos de análise (fórmulas) que revelam várias características de mudança de valor dentro do período atual.

7. Redução de valor para um intervalo - resumindo o valor atual, a fim de reduzir o número de suas variantes. É necessário na análise da variação.

8. Recolha de estatísticas de assinaturas - Processo que é realizado durante os testes do sistema ou durante a execução em condições reais. Na verdade, a "experiência" do sistema é recolhida, o seu "conhecimento" de várias situações que representam vários caracteres de comportamento de valores de vários parâmetros é realizado. Estas assinaturas são armazenadas em um banco de dados especial.

9. Base de dados de assinaturas - Bloco de memória onde todas as assinaturas reais são armazenadas. O lugar de armazenamento da "experiência" do sistema, filtrado por seleção estatística constante. Dentro da base de dados, as assinaturas relevantes são seleccionadas e rodadas e as menos relevantes são gradualmente suplantadas. A seleção é feita pelo período atual a partir do qual certas assinaturas são levadas para o banco de dados após a sua criação (após análise e filtragem dos valores, é claro).


Descrição do processo de trabalho do sistema:

Imaginemos um motor de programa - por um lado recebendo valores de parâmetros, por outro, dando assinaturas prontas de padrões de suas mudanças ao longo de vários períodos de tempo. Um motor que também armazena essas assinaturas em um banco de dados e as rotaciona no banco de dados.

Suponha que um usuário digite um grupo de parâmetros simplesmente apontando o motor para variáveis ou parâmetros de ambiente predefinidos. Estes parâmetros começam a ser "observados" pelo motor. Ou seja, os seus valores entram em amortecedores circulares, são colapsados em períodos de tempo e analisados através de filtros matemáticos. Como resultado - as assinaturas acabadas são introduzidas na base de dados.

Então, o usuário começa a "treinar" o motor, o que é feito da seguinte forma:

Liga os valores dos parâmetros de entrada da sua estratégia a assinaturas específicas. Ou seja, define a dependência dos valores dos parâmetros de entrada em "casts" digitais específicos da situação atual. Além disso, o usuário pode vincular suas chamadas de função às assinaturas selecionadas, simplesmente indexando essas chamadas. O motor chamará as funções definidas pelo usuário pelo seu número nas assinaturas selecionadas.

Contudo, o sistema não é independente nesta fase, uma vez que o utilizador tem de "treinar" manualmente o sistema, ligando os melhores valores dos parâmetros de entrada da sua estratégia a assinaturas específicas. Imaginemos como o sistema poderia ser mais desenvolvido no sentido da independência total:

Para isso, o sistema deve não só recolher assinaturas na fase de aprendizagem, mas em paralelo optimizar os parâmetros de entrada da estratégia para que se obtenha a máxima rentabilidade desta estratégia. No momento em que a rentabilidade máxima for atingida, os valores dos parâmetros de entrada estarão ligados à assinatura específica que reflete a situação onde esses valores são mais eficazes. Depois de ter um conjunto de assinaturas que reflecte uma grande variedade de situações de mercado, o sistema terá configurações prontas de parâmetros de entrada de estratégia para cada uma dessas situações.

//===================================================================================

Esta abordagem pode não ter nada a ver com a compreensão clássica da aprendizagem de máquinas, mas o fato de que ela percebe seu propósito no comércio é certo. Até agora tudo isto é em termos gerais, mas não tenho dúvidas sobre a validade desta abordagem e a viabilidade da sua implementação na MQL.

Por favor, partilhe a opinião de especialistas da IO e de outros que estejam interessados nisto.

Obrigado pela vossa atenção.



 
pantural:

Muito obrigado, foi mesmo o que o médico pediu! Curto e conciso! Todo o MO em 10 linhas! Pantural está satisfeito, Pantural agradece! Ei, kamon!

double perceptron() 
  {
   double w1 = x1 - 100;
   double w2 = x2 - 100;
   double w3 = x3 - 100;
   double w4 = x4 - 100;
   double a1 = iAC(Symbol(), 00);
   double a2 = iAC(Symbol(), 07);
   double a3 = iAC(Symbol(), 014);
   double a4 = iAC(Symbol(), 021);
   return(w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);
  }

Agora podes ver a diferença entre ingenuidade infantil e trolling gordo...

Mas aparentemente é a primeira.

pantural:

Olá, pessoal. Eu sou o Pantural.

Na minha terceira tentativa de me acomodar ao forex, sinto que isso é algo, mas a vida curva seu curso, e além da ameixa 2 depo 200 dólares cada, ela não chegou. Estou tentando fazer alguns bons resultados agora, há mais de 4 anos atrás, pelo menos as propagandas são muito legais (oh meu Deus! É o pantural! uau!)

 
Tag Konow:

E assim, o meu conceito de como "aprendizagem de máquinas" poderia ser implementado em relação à negociação de MQL:

Não importa em que linguagem o MO está, o importante aqui é que é aqui que o conceito de MO é considerado como se segue:

1. Vem-me à cabeça uma ideia.

2. Pegamos o primeiro pacote disponível do R

3. Verifique, certifique-se de que o pacote é lixo ou dá resultados insatisfatórios de acordo com a idéia, vá para o ponto 2 para experimentar todos os pacotes. Quando ficares sem pacotes, vai para o passo 1.

O que você tenta assimilar ou implementar, você não será compreendido aqui, na melhor das hipóteses você será chamado de troll.

 
Andrey Dik:

Não importa em que linguagem o MO está, o importante é que é aqui que o conceito de MO é visto da seguinte forma:

1. Vem-me à cabeça uma ideia.

2. Recebemos o primeiro pacote que vemos do R

3. Teste-o, certifique-se de que o pacote é lixo ou dá resultados insatisfatórios de acordo com a idéia, vá para o ponto 2 para experimentar todos os pacotes. Quando ficares sem pacotes, vai para o passo 1.

E o que você tenta assimilar ou realizar - você não será compreendido aqui, no melhor dos casos, eles o declararão um troll.

Eu concordo com os três primeiros pontos. Mas estes são usuários comuns que se comportam de tal maneira. Há especialistas que devem entender sobre o que estou a escrever.

Se eles também não têm nada a dizer sobre a essência do conceito, isso significa que a estrutura local é tão estreita que não permite nenhum pensamento livre. Vamos ver...

 
Tag Konow:

Eu concordo com os três primeiros pontos. Mas são os usuários comuns que se comportam dessa maneira. Há especialistas que devem entender sobre o que estou escrevendo.

Se eles não têm nada a dizer sobre a essência do conceito, então a estrutura local é tão estreita que não permite nenhum pensamento livre. Vamos ver...

Não usuários comuns, mas usuários muito inteligentes, alguns com PhDs, mas eles são usuários R, e isso diz tudo.

Você pode falar com Yuri Reshetov sobre o assunto, mas ele também não tem paciência para escrever nada aqui por muito tempo.

 
mytarmailS:

O que otóxico mostrou é uma espécie de agrupamento, mas com um professor, os pontos no início são sinais ou melhor, os seus parâmetros numéricos, você tem um alvo tchau e um take, você marcou antes do treino onde houve um crescimento (compra) e uma queda (take), e o algoritmo começa a dividir estupidamente os parâmetros dos sinais pelo alvo, como a área azul é uma compra, vermelho é um take...

Mas neste momento o último zumbido é algo como isto.

https://www.youtube.com/watch?v=05rEefXlmhI

https://www.youtube.com/watch?v=qv6UVOQ0F44

https://www.youtube.com/watch?v=xcIBoPuNIiw

mas eu sou um nerd total.

E este é hilariante.)

https://www.youtube.com/watch?v=pgaEE27nsQw

Obrigado por estes vídeos, os dinossauros saltadores entregam especialmente ))))

imho a rede neural para mario ilustra um ponto importante:

você pode treinar um algoritmo para passar um determinado nível (mesmo um nível muito difícil)

mas isso não significa que será tão bem sucedido a outro nível.

e se você olhar de perto como este bot passa de nível, é claro

é apenas um ajuste e o bot não faz sentido da situação e não tem inteligência de jogo real.

A rede acabou de apanhar o tempo para os botões.

A propósito, o mario mete a cara dele em obstáculos e salta para as paredes.

o seu sucesso é mais aleatório do que lógico

assim como em forex, um bot pode passar com sucesso uma seção/nível e falhar outra

porque ele não tem inteligência de comerciante e o bot "não entende" o que ele está fazendo...

para ter sucesso em qualquer área/nível o bot deve ter um modelo de objeto do mundo em que ele existe

ou seja, o algoritmo não deve apenas otimizar os padrões

O algoritmo deve operar com categorias semânticas e descrever a situação tal como é vista pelo trader/jogador

O bot deve distinguir os tipos de objetos e suas características e avaliar o perigo da situação de forma dinâmica

e isso requer um nível de heurística bem diferente da simples otimização da rede neural.

O resultado da aprendizagem deve ser um modelo semântico e conhecimento de objectos e processos.

Se estiver ausente, então os bots de troca estão condenados a picar aleatoriamente

é muitas vezes claro, pelo histórico das transacções dos bots, quão estupidamente o algoritmo avalia a situação de negociação

e entra onde um comerciante humano normal nunca se envolveria

É por isso que sou pessimista em relação à robótica.

você pode, na melhor das hipóteses, fazer um semi-robô com uma descrição do domínio na forma de processamento de algumas situações típicas

(por exemplo, flat-out ou inversão de tendências)

mas de qualquer forma, você precisa ficar de olho no seu robô, para evitar que ele cometa irregularidades como Mario Bots faz em um novo nível.

 
transcendreamer:

...

Eu concordo com o seu ponto de vista.
 
Tag Konow:

Eu concordo com os três primeiros pontos. Mas são os usuários comuns que se comportam dessa maneira. Há especialistas que devem entender sobre o que estou escrevendo.

Se eles não têm nada a dizer sobre a essência do conceito, isso significa que a estrutura local é tão estreita que não permite nenhum pensamento livre. Vamos ver...

O MoD é antes de tudo uma arte de engenharia, o resultado justifica qualquer conceito. Dá-me o resultado. Aqui está o desafio: https://numer.ai/

Numerai
Numerai
  • numer.ai
A new kind of hedge fund built by a network of data scientists.
 
Tag Konow:

E assim, o meu conceito de como "aprendizagem de máquinas" poderia ser implementado em relação à negociação de MQL:

Primeiro sobre os conceitos básicos:...................

Por favor, dê a sua opinião aos especialistas da MQL e a qualquer outra pessoa que esteja interessada.

Vou começar com o básico: Primeiro vou começar com o básico da aprendizagem da máquina.

Eu pessoalmente nem sequer o entendo )

Mas eu posso, não me considero um especialista.

 

O MoD é antes de tudo uma arte de engenharia, o resultado justifica qualquer conceito. Dá-me o resultado. Eis o desafio: https: //numer.ai/

E que tal resolver o problema? Caso contrário - "dá, dá... ".)) Eu vou fazer este motor. Mas depois de terminar o projecto principal.