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

 
Alexey Burnakov:

Você avalia o desempenho da estratégia na história ou há um longo avanço? O inferno pode estar na avaliação da história.

Entrada no momento, saída via OR em várias condições. Em princípio, até funciona. Mas se você entrar no pico, então espere um ano para sair do sorteio...

Eu verifico isso em Forex. Se eles entraram em um pico - há SL para isso.
 
Andrey Dik:

Mais detalhes: comprar sinal na barra atual, como comprar, contar o menor número de barras para frente......

Eu também tenho uma versão similar de como você pode suavizar isso, eu falei sobre isso há cerca de 100 páginas, mas está em um nível mais abstrato...

Nós não sabemos como negociar, onde entrar, onde sair.

é por isso que tudo o que inventamos (tendências, zz, cores dos castiçais, ressaltos) é apenas um disparate na tentativa de descrever os movimentos do mercado, o subjectivismo como ele é

Cada um escolheu a sua própria direcção e cada um escava nela - alguns usam cores de velas, outros usam zz, eu pessoalmente uso zz rebounds, etc. É tudo muito subjetivo e isso é o que nos separa, embora em essência todos nós façamos a mesma coisa e o resultado seja o mesmo.

Proponho tomar algo que nos una a todos e que não seja subjectivo, nomeadamente o alvo sob a forma de - podemos dizer o desejo

"Eu quero que o algoritmo ganhe min. 5% por semana com um drawdown máximo. 2%"

Alvo normal? Toda a gente gosta e encaixa, certo? e tudo está claro...

Você não tem que treinar a rede de acordo com as nossas metas concebidas como GZ e outras, que são subjetividade, mas você tem que treinar a rede como a busca de um certo mínimo ou máximo em lucro ou drawdown, ou em relação a uma relação de ganho ou PV ou uma combinação destes indicadores.

Não me interessa como negoceia, mas todas as semanas devo receber +5% com um saque até 2%..... Deixe a própria rede negociar e determine se há uma tendência ou inversão, na verdade, tudo o que nos interessa é lucro e drawdown, e nós controlamos isso, e não sabemos como negociar, por isso não precisamos de entrar nela....

Como fazer isso...

Existem redes que já nos ensinam a jogar jogos, especialmente Super Mario http://gekkoquant.com/2016/03/13/evolving-neural-networks-through-augmenting-topologies-part-1-of-4/, proponho-me ensinar a rede da mesma forma, vamos usar uma analogia ...

1) Existe um ambiente - as tartarugas que cospem, obstáculos sob a forma de tubos, caixas que precisam saltar, etc.

2) Existem ações - os botões no joystick que a rede pressiona para controlar Mario

3) há pontos - uma recompensa para a rede

4) há uma pena - a morte de Mário

Uma vez no ambiente (1) a rede começa a pressionar os botões do joystick (2) e assim por diante durante milhares de iterações até aprender a completar o nível, marcando uma quantidade razoável de pontos (3) sem morrer (4)

Analogia à negociação

1) existe um ambiente - receptor de dados na rede - preditores

2) há ações - comprar/vender/ não fazer nada

3) há pontos - lucro recebido

4) há uma penalidade - drawdown obtido

 
mytarmailS:

Você não deve treinar a rede por nossos objetivos desenvolvidos como GZ e outros que são subjetividade, mas treinar a rede em busca de algum mínimo ou máximo de lucro ou de drawdown ou de uma relação de força maior ou PV ou combinação destes indicadores

Concordo, o alvo escolhido é subjetivo e irracional. Eu tentei fazer um modelo de negociação com pacote de rneat, que aprendeu um pouco de negociação na história, mas ainda assim falhou em prever corretamente os novos dados.

Há uma diferença muito importante - em todas estas experiências com jogos o modelo é treinado dezenas de milhares de vezes em cada jogo. E o seu resultado é estimado jogando estes mesmos jogos, avaliação de dados para aprendizagem, por assim dizer. Para Forex um bom desempenho nos dados não é suficiente para o treinamento, é necessário que o modelo trabalhe nos novos dados também, e parece ser um grande problema para tal algoritmo.

 
Dr. Trader:

1)Concordo que o alvo escolhido é subjetivo e irracional. Eu tentei fazer um modelo de negociação com pacote rneat, que aprendeu um pouco sobre a história, mas ainda não conseguia prever corretamente sobre novos dados.

2) Para forex, um bom desempenho em dados de treinamento não é suficiente, o modelo precisa trabalhar em novos dados também, e aparentemente este é um grande problema para tal algoritmo.

1) Eu não sei como colocá-lo corretamente, mas em sua experiência você não deixou a rede pensar, você não deixou que ela fizesse negócios estabelecendo seu objetivo, assim você transformou a rede em um modelo muito simples, sua idéia principal é auto-aprender e você fez isso por ela, você vê?

Eu disse para deixá-lo fazer as negociações, deixá-lo fazer as negociações e tirar conclusões por si só.

o nosso controlo é lucro e drawdown, é isso... ela está por conta própria...

2) Sim, é um problema para qualquer algoritmo, mas há esperança de que se a rede se treinar para negociar bem, sem o nosso alvo sem o nosso subjetivismo, então há uma chance de perceber novos dados com mais objetividade e já sabemos como os algoritmos com o nosso alvo percebem novos dados

 
Andrey Dik:
Estou a verificar o avançado. Se você tiver entrado no pico - há SL para isso.
O SL está lá.
 
Dr.Trader:

Apesar de estar implícito, prefiro adicioná-lo para torná-lo mais claro para todos.

Normalmente, a aprendizagem excessiva em modelos tem o efeito de que o modelo se lembra dos exemplos de formação de forma muito precisa. A aprendizagem começa com o modelo derivando de algumas regras gerais, valores-alvo dependentes de preditores, mas quanto mais se vai aprendendo, mais rígidas se tornam estas regras no modelo, levando eventualmente a exemplos completamente memorizados, com completa incapacidade do modelo de predizer sobre novos dados. Isto é tratado por validação cruzada, e parando o treinamento quando o modelo aprendeu algumas regras generalizadas, mas ainda não começou a aprender exemplos específicos, o que dará um melhor desempenho preditivo em novos dados.

Isto funciona muito bem em dados onde as dependências permanecem constantes ao longo do tempo - reconhecimento de imagem, ou reconhecimento de som, por exemplo. Mas forex é diferente na medida em que muitas das dependências encontradas não são persistentes com o tempo. O problema não é apenas alcançar a aprendizagem sem memorizar exemplos de treino, mas também de alguma forma garantir que os padrões encontrados permanecem no futuro.


Tens razão. Imagem, o reconhecimento do som é um processo pseudo-estacionário, desde que a amostra seja representativa e a forma como as imagens são desenhadas na amostra de controle não seja dada a pacientes paralisados cerebrais canhotos (mais ou menos, desculpe).

A tarefa é mais completa: desenvolver uma forma de estimar os preditores em relação à variável alvo que garanta que a relação entre os preditores e a variável alvo seja constante e que também exista nos novos dados.

Selecionar os preditores pela sua importância para a variável prevista com base na sua persistência ao longo do tempo é quase o mesmo que procurar preditores em uma única amostra maior. Ou seja, se você selecionar preditores em várias amostras consecutivas que tenham o mesmo desempenho em todas as parcelas, é um ajuste direto a essas parcelas.

Em essência, de N preditores, são selecionados n que terão um bom desempenho em todos os níveis (em todas as amostras disponíveis). Equipado, o que se segue? E depois vem o verdadeiro avanço, no qual observamos um desabamento. Qual é a razão?

A razão é que a metodologia de seleção dos preditores no lote K não foi testada para gerar resultados de qualidade semelhantes no lote M. Em outras palavras, cada subconjunto de preditores selecionados deve produzir resultados correlacionados em K e M.

Eu posso selecionar para você tais preditores e um modelo correspondente que não aprende fora da amostra, no entanto, atravessa a trama muito bem. Na verdade, este é o tipo de modelo que aprenderia bem se todas as amostras fossem coladas juntas, e eu como que faço esta colagem à mão.

Precisamos de encontrar uma forma de seleccionar os preditores para que no treino e validação os modelos se comportem como na imagem da esquerda:

E só então podemos dizer que o modelo passa no teste fora da amostra. Não apenas que alguns modelos (preditores) desmaiem da amostra.

 
SanSanych Fomenko:

Parece que somos só nós os dois aqui, pois a posição do Alexei não é totalmente clara para mim.


Não percebo porque é que a minha posição é complicada. Já disse que se eu não vejo correlação entre o desempenho dos modelos na amostra e fora da amostra, então eu não estou produzindo um modelo robusto. Ou não entendes ou nunca o fizeste.

Eu estou dizendo que se você encaixar os preditores, ou parâmetros do modelo para que o modelo funcione bem em todos os lugares, é apenas uma coisa fina de se fazer. O modelo será equipado em excesso, mesmo que esteja protegido contra o excesso de equipamento.

 
Alexey Burnakov:

A razão é que a metodologia de seleção de preditores no local K não foi testada para gerar resultados de qualidade similares no local M. Em outras palavras, cada subconjunto de preditores selecionados deve produzir resultados correlacionados em K e M.

O que deve estar relacionado com o quê? Como é que se faz? Eu também não percebo...

Alexey Burnakov:

Ou não entendes ou nunca o fizeste.

Acho que ninguém o fez aqui a não ser tu.)

 
Alexey Burnakov:

Não vejo porque é que a minha posição é complicada. Já disse que se eu não vejo correlação entre o desempenho dos modelos na amostra e fora da amostra, então eu não estou produzindo um modelo robusto. Ou você não entende, ou nunca o fez.

Eu estou dizendo que se você encaixar os preditores, ou parâmetros do modelo para que o modelo funcione bem em todos os lugares, é apenas uma coisa fina de se fazer. O modelo será equipado em excesso, mesmo que esteja protegido contra o excesso de equipamento.

Eu me lembrei - já foi discutido, mas desculpe, eu esqueci.

Parece-me que você está fazendo exigências muito rígidas, e às custas de tornar a ferramenta mais complexa, e uma ferramenta mais simples é sempre preferível a uma ferramenta complexa.

Eu uso o seguinte esquema:

1. Eu formulo a variável alvo

2. invento um conjunto de preditores que intuitivamente se relacionam com minha variável alvo.

3. Usando o meu algoritmo, eu penetro aqueles preditores que eu atribuo ao ruído por razões formais. Isto normalmente deixa-me com 15-20% do número original que eu inventei.

4. Gerar um grande arquivo de não menos de 10000 barras

5. Eu divido este ficheiro em duas partes: 7000 и 3000

6. No 7000 eu ensino o modelo, testo e valido

7. Se os três números forem aproximadamente os mesmos, então o passo 8. Se não, eu volto ao passo 1.

8. O modelo treinado é utilizado na prática. Eu seleciono os preditores por um dos algoritmos (eu uso rfe) na janela atual. Eu faço esta selecção nas saídas para H1. Rfe do conjunto no qual aprendi o modelo, seleciona entre 5 ou mais preditores para a janela atual. A lista de preditores muda o tempo todo, mas é eliminada do conjunto que recebi durante o treino inicial.

Todo o esquema tem funcionado de forma robusta desde o outono passado sobre o real. Mas há uma essencial, mas: esta é apenas uma parte da EA. Antes, os meus EAs no TA não viviam mais de meio ano. Agora não vejo este problema.

 
mytarmailS:

Também tenho uma opção similar sobre como suavizá-lo, eu o expressei há cerca de 100 páginas, mas está em um nível mais abstrato...

Não sabemos como negociar, onde entrar, onde sair, não sabemos absolutamente nada

é por isso que tudo o que inventamos (tendências, zz, cores dos castiçais, ressaltos) é apenas um disparate na tentativa de descrever os movimentos do mercado, o subjectivismo como ele é

Cada um escolheu a sua própria direcção e cada um escava nela - alguns usam cores de velas, outros usam zz, eu pessoalmente uso zz rebounds, etc. É tudo muito subjetivo e isso é o que nos separa, embora em essência todos nós façamos a mesma coisa e o resultado seja o mesmo.

Proponho tomar algo que nos una a todos e que não seja subjectivo, nomeadamente o alvo sob a forma de - podemos dizer o desejo

"Eu quero que o algoritmo ganhe min. 5% por semana com um drawdown máximo. 2%"

Alvo normal? Toda a gente gosta e encaixa, certo? e tudo está claro...

Pareces ter-me entendido mal. Eu não digo à rede onde entrar, não com zz ou qualquer outro indicador. Uma rede treinada escolhe por si só onde entrar.