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

 
Vou esperar que o CC esclareça como ele quer fazer isso.

Mais uma vez, acho que prever negócios com uma saída por uma simples condição pode não ser o ideal.

E se treinarmos outra máquina que aprenda o momento de fechar em negócios já abertos? Deixa-me explicar. Um negócio deve fechar após uma hora - treinamos a máquina para abrir negócios desta forma.

Para cada negócio aberto, haverá 60 registros (linhas) com fichas - para cada minuto, começando em 31 minutos e terminando em 90 minutos. Cerca de metade destas entradas será marcada 1 como uma boa saída por volta do 60º minuto.

Isto é o que eu chamo uma explicação detalhada de como o problema deve ser resolvido.

O que você acha?
 
Alexey Burnakov:

É uma ideia interessante. Eu também tenho EAs a funcionar. Talvez eu pense em como melhorá-los. Mas não está claro para mim o que exactamente precisa de ser melhorado? O que você precisa ensinar à máquina?

O Expert Advisor tem uma lógica rígida de abertura e fechamento de posições. Na aprendizagem mecânica, a decisão é tomada de uma forma ligeiramente diferente.

Isto é, não está muito claro o que exatamente você vai fazer.

Aqui você pode vê-lo do meu posto acima:

Estou a tomar a direcção geral a partir da barra alta. Mas quando se olha de perto para o tempo, há um atraso monstruoso em termos de barras mais baixas, especialmente. Então, se é D1 mas eu negoceio no M5, acontece que eu levo quase os dados de anteontem para a direção. Mesmo prevendo um passo à frente para D1 com 30% de erro melhorou radicalmente a rentabilidade do Expert Advisor, e o mais importante, aumentou a confiança de que não vai vender para fora.

No meu caso, vou usar dados desfasados de indicadores para uma previsão R apropriada.

 
SanSanych Fomenko:

Aqui está uma nota do meu posto acima:

A direção geral é tomada a partir da barra alta. Mas quando se olha de perto para o tempo, há um atraso monstruoso em termos de barras mais baixas, especialmente. Então, se é D1 mas eu negoceio no M5, acontece que eu levo quase os dados de anteontem para a direção. Mesmo prevendo um passo à frente para D1 com 30% de erro melhorou radicalmente a rentabilidade do Expert Advisor, e o mais importante, aumentou a confiança de que não vai vender para fora.

No meu caso particular estou a seguir o caminho do uso de dados desfasados dos indicadores nas previsões correspondentes do R.

Ok, eu entendo a ideia de uma maneira geral.
 

Eu tenho grandes notícias.

Durante uma viagem de negócios, à noite, eu geria as máquinas lerning nos meus dados. Tentei diferentes combinações de abordagens. E parece que uma flor de pedra apareceu - de repente.

Então, tenho usado meus dados do link que citei para fazer mais e mais treinamentos, tentando coisas que já foram descritas no meu blog. Mas eu acrescentei mais alguns truques. Por exemplo, eu selecionei aqueles parâmetros de treinamento onde há mais lucro na validação cruzada, ao invés de adivinhar a precisão abstrata.

Para isso, claro, tive de escrever a minha função de aptidão física.

No gráfico estão os pares de valores de expectativa sobre Formação e Validação para diferentes horizontes de previsão e parâmetros de formação. Usei também a ideia de uma "zona cinzenta", ou seja, um espaço de previsão onde nada acontece.

Como podem ver, obtive valores de MO bastante sãos tanto no treino como valores correlacionados na validação! Note que a simulação utilizou um spread de 0.00020 (vinte picks).

Eu também calculei o comércio total incluindo o spread. Os valores também são muito bons. O lucro máximo é alcançado a uma determinada relação entre o número de negócios e o MO do negócio, tudo isto num horizonte de planejamento de 12 horas. No gráfico está uma análise de todos os horizontes de planejamento, todos os valores de área cinza e os melhores parâmetros de aprendizagem do modelo. Veja abaixo:


Bem, e a fim de divulgar este conhecimento, estou anexando um arquivo com todos os resultados, incluindo até os parâmetros de treinamento do andaime. Mas sem as entradas. As entradas dos meus dados são seleccionadas. Isto vai ser um pequeno segredo. Vou pensar sobre o código completo da experiência ou não. Agora quero fazer a integração com o MT desta máquina, porque o resultado parece-me já bastante funcional.

Alexey

 
Alexey Burnakov:

Eu tenho grandes notícias.

Durante uma viagem de negócios, à noite, eu geria as máquinas lerning nos meus dados. Tentei diferentes combinações de abordagens. E parece que uma flor de pedra apareceu - de repente.

De qualquer forma, nos meus dados do link que dei, corri o treino uma e outra vez, tentando coisas que já foram descritas no meu blog. Mas eu acrescentei mais alguns truques. Por exemplo, a seleção daqueles parâmetros de treinamento onde há mais lucro na validação cruzada, ao invés da precisão abstrata da adivinhação.

Para isso, claro, tive de escrever a minha função de aptidão física.

No gráfico estão os pares de valores de expectativa sobre Formação e Validação para diferentes horizontes de previsão e parâmetros de formação. Usei também a ideia de uma "zona cinzenta", ou seja, um espaço de previsão onde nada acontece.

Como podem ver, obtive valores de MO bastante sãos tanto no treino como valores correlacionados na validação! Note que a simulação utilizou um spread de 0.00020 (vinte picks).

Eu também calculei o comércio total incluindo o spread. Os valores também são muito bons. O lucro máximo é alcançado a uma determinada relação entre o número de negócios e o MO do negócio, tudo isto num horizonte de planejamento de 12 horas. No gráfico está uma análise de todos os horizontes de planejamento, todos os valores de área cinza e os melhores parâmetros de aprendizagem do modelo. Veja abaixo:


Bem, e a fim de divulgar este conhecimento, estou anexando um arquivo com todos os resultados, incluindo até os parâmetros de treinamento do andaime. Mas sem as entradas. As entradas dos meus dados são seleccionadas. Isto vai ser um pequeno segredo. Vou pensar sobre o código completo da experiência ou não. Agora quero fazer a integração com o MT desta máquina, porque o resultado parece-me já bastante funcional.

Alexey

O lucro total em pips não é um indicador. É a relação entre este lucro total e o número de barras da história, sobre a qual é obtido, que é o factor de qualidade que é indicativo. Eu venho dizendo há muito tempo e eu o uso apenas para otimização e estimativa de modelos.

O trabalho duro dá resultados.

Boa sorte.

 
Vladimir Perervenko:

O lucro total em pips não é o indicador. É a relação deste lucro total com o número de barras da história, sobre a qual ele é obtido, que é o fator de qualidade que é indicativo. Eu venho dizendo há muito tempo, e eu o uso apenas para otimização e estimativa de modelos.

O trabalho duro dá resultados.

Boa sorte.

A meu ver, um não exclui o outro.

Alexey superou a desvantagem óbvia de todas as avaliações de previsão de classificação: é óbvio que o valor de uma previsão correta de 1 pip bar e o valor de uma previsão de 10 pip bar são completamente diferentes.

Parabéns a você Alexey!

 
Vladimir Perervenko:

O lucro total em pips não é um indicador. É a relação entre este lucro total e o número de barras do histórico sobre o qual ele é obtido - este é o coeficiente de qualidade que é indicativo. Há muito tempo que o digo e o utilizo apenas para optimização e estimativa do modelo.

O trabalho duro dá resultados.

Boa sorte.

Deixa-me explicar.

Previsão com 12 horas de antecedência (724 minutos para ser exacto).

O número de negócios é superior a 5000 para cada uma das amostras de validação. O resultado é obtido através de uma média de 49 amostras de validação. As trocas dentro de cada amostra ocorrem em incrementos de cerca de 12 horas, ou seja, não há dependência óbvia e não há sobreposição de resultados. Vou publicar mais gráficos da simulação de negociação dentro de momentos. Os resultados são demasiado bons. Mas até agora está tudo confirmado.

 

Dados finais da minha experiência:

Simulação de sinais de negociação de uma máquina treinada em 49 amostras de validação (em pips):

Distribuição do resultado do comércio em pips para 49 amostras:

E realizar testes de hipóteses de uma diferença significativa entre a média (mediana) do MO de cada amostra de validação e zero:

amostra de validação
teste shapiro p-valor de normalidade
teste p-valor para diferença a partir de zero
médio
mediana
média distante superior 99%-tail
média dist inferior a 99% - cauda
1
1.11E-65
0
0.000139
0.000095
0.000146
0.000133
2
8.55E-64
0
0.000139
0.000096
0.000145
0.000133
3
8.24E-63
0
0.000137
0.000096
0.000143
0.000131
4
3.31E-66
0
0.000139
0.000095
0.000146
0.000133
5
4.64E-66
0
0.000142
0.000097
0.000149
0.000136
6
7.08E-63
0
0.000141
0.000097
0.000147
0.000135
7
8.72E-65
0
0.000135
0.000096
0.000141
0.000129
8
4.52E-65
0
0.000139
0.000096
0.000145
0.000132
9
4.31E-64
0
0.000143
0.000102
0.000149
0.000137
10
4.53E-66
0
0.000141
0.000099
0.000147
0.000134
11
8.97E-67
0
0.000143
0.000098
0.000149
0.000136
12
2.21E-63
0
0.000139
0.000102
0.000145
0.000133
13
1.16E-63
0
0.000142
0.000099
0.000148
0.000135
14
7.82E-64
0
0.000138
0.000097
0.000144
0.000132
15
1.41E-65
0
0.000146
0.000103
0.000152
0.000140
16
8.17E-63
0
0.000135
0.000097
0.000140
0.000129
17
6.54E-65
0
0.000143
0.000099
0.000149
0.000136
18
6.70E-66
0
0.000138
0.000096
0.000144
0.000132
19
1.86E-65
0
0.000143
0.000099
0.000149
0.000136
20
1.79E-66
0
0.000142
0.000098
0.000148
0.000135
21
2.37E-62
0
0.000136
0.000099
0.000142
0.000131
22
5.51E-65
0
0.000141
0.000100
0.000147
0.000135
23
7.15E-67
0
0.000142
0.000097
0.000149
0.000136
24
1.06E-65
0
0.000144
0.000102
0.000150
0.000137
25
4.01E-65
0
0.000147
0.000101
0.000153
0.000140
26
2.33E-64
0
0.000141
0.000098
0.000147
0.000135
27
7.85E-65
0
0.000141
0.000100
0.000147
0.000134
28
2.07E-64
0
0.000141
0.000098
0.000147
0.000134
29
2.01E-63
0
0.000140
0.000098
0.000146
0.000134
30
2.77E-64
0
0.000139
0.000098
0.000145
0.000133
31
1.43E-66
0
0.000145
0.000098
0.000151
0.000138
32
1.08E-65
0
0.000141
0.000098
0.000147
0.000134
33
3.47E-62
0
0.000136
0.000099
0.000141
0.000130
34
6.04E-67
0
0.000140
0.000096
0.000147
0.000134
35
2.32E-65
0
0.000145
0.000100
0.000152
0.000139
36
6.39E-65
0
0.000143
0.000098
0.000149
0.000137
37
1.10E-61
0
0.000141
0.000103
0.000147
0.000135
38
6.74E-63
0
0.000142
0.000100
0.000148
0.000136
39
2.54E-64
0
0.000141
0.000098
0.000147
0.000135
40
2.45E-64
0
0.000139
0.000098
0.000145
0.000133
41
6.25E-66
0
0.000141
0.000099
0.000148
0.000135
42
3.99E-66
0
0.000141
0.000097
0.000147
0.000135
43
1.35E-66
0
0.000142
0.000098
0.000148
0.000135
44
1.01E-63
0
0.000134
0.000097
0.000140
0.000128
45
1.56E-64
0
0.000139
0.000097
0.000145
0.000133
46
3.11E-66
0
0.000145
0.000103
0.000152
0.000139
47
6.11E-66
0
0.000138
0.000099
0.000144
0.000131
48
2.99E-66
0
0.000146
0.000101
0.000152
0.000139
49
1.84E-63
0
0.000138
0.000098
0.000144
0.000131

A distribuição dentro das amostras não é normal. O teste Wilcoxon mostra que o MO é significativamente diferente de zero.

A propósito, a mudança no padrão de crescimento da curva da soma de pontos nas últimas 3/5 partes das amostras de validação é explicável.

Tenho um número aproximadamente igual de observações para os 5 maiores dentro das amostras e elas vão na seguinte ordem:

dat_eurusd 
dat_audusd 
dat_gbpusd 
dat_usdcad 
dat_usdchf

Tenho certeza que para os últimos três pares a volatilidade é maior e o spread é maior (devemos tomar 25-30 pips ao invés de 20 pips). Portanto, o seu resultado bruto e percentagem de direcções adivinhadas é melhor. Mas entrar em um spread maior não tornará as estatísticas nulas de qualquer maneira. Só para entender o que está a acontecer.

PM.

 
SanSanych Fomenko:

Do meu ponto de vista, um não exclui o outro.

Alexey superou a desvantagem óbvia de todas as avaliações de previsão de classificação: obviamente, o valor de uma previsão correta de 1 pip bar e o valor de uma previsão de 10 pip bar são completamente diferentes.

Parabéns a você Alexey!

Obrigado, SanSanych. Está tudo a funcionar. Vou tentar correr no MT4 para começar.
 

Aviso. Encontrei um bug no código, o que causou grandes resultados. Todas as minhas otimizações são canceladas até a análise detalhada!

Eu fiz um Expert Advisor no MT4 em conexão com o Arom. Vi algumas diferenças nos resultados, por isso fiz uma revisão detalhada do código e encontrei um erro grosseiro. Eu ainda não encontrei nada lucrativo. A experiência continua.