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

 
Vladimir Perervenko:

É muito trabalho desmontar o código de outra pessoa. Nós olhamos apenas para a função custom_tester() e apenas a parte destacada.

Qual é o erro no cálculo do resultado? Você calcula o resultado a cada iteração adicionando o resultado += testpr[i] - lastpr ao valor anterior. É a diferença entre o fecho do bar actual e o anterior. Idealmente, seria melhor usar Fechar - Abrir, mas não importa. O importante é que tendo recebido um sinal no fechamento da barra de corrente, você o considerará como um dif(s) sinal(s) da mesma barra. Isto é incorrecto. O prémio do sinal da barra de corrente é dif(Fechar) da barra seguinte. O sinal deve ser movido para a direita por uma barra para calcular correctamente o resultado. p = model.predict_proba(X) à direita por uma barra. Vou mostrar mais cálculos sobre R, pois é mais fácil para mim.

Na primeira linha, converta as previsões para nominal (1,-1), mude para a direita por uma barra, remova NA, obtenha um vetor de sinais. A segunda linha resume cumulativamente o produto do vetor de sinais e do vetor dif(fechado), tendo-o previamente alinhado com o vetor de sinais em comprimento. Isso vai dar-nos o resultado correcto.

Boa sorte.

Ao abrir uma posição, o preço actual é guardado. No ciclo, se o sinal não mudar, nós continuamos a avançar o preço, mantendo o comércio aberto.

Se o sinal mudar na barra seguinte, inverter o comércio (lastdeal) e subtrair do preço actual o preço de abertura do comércio, a diferença = lucro ou perda, adicionar ao valor total acumulado do saldo

Para comprar, subtrair o preço de abertura do preço actual, para vender - vice versa. Não há nenhum erro aí.

Como o sinal é tomado para a barra de corrente, ele não deve ser deslocado

1 - vender, 0 - comprar. Lenda. O testador é muito simples

Talvez o código possa ser abreviado, eu não me preocupei com isso.

 
Maxim Dmitrievsky:

quando se abre uma negociação, o preço actual é mantido. No ciclo, se o sinal não tiver mudado, continuamos a avançar o preço, mantendo o comércio aberto.

Se o sinal mudar na barra seguinte, inverter o comércio (lastdeal) e subtrair do preço actual o preço de abertura do comércio, a diferença = lucro ou perda, adicionar ao valor total acumulado do saldo

Para comprar, subtrair o preço de abertura do preço actual, para vender - vice versa. Não há nenhum erro aí.

Como o sinal é tomado para a barra de corrente, ele não deve ser deslocado

1 - vender, 0 - comprar. Lenda. O testador é muito simples

Talvez o código possa ser abreviado, eu não me preocupei com isso.

Esta é outra abordagem. Com esta variante, parece estar realmente certo. Retiro a minha observação.

Boa sorte.

 

Para os interessados nos retornados - algumas informações nos cammats

https://smart-lab.ru/blog/569692.php#comments

Тестирование модели на машинном обучении. Часть четвертая.
Тестирование модели на машинном обучении. Часть четвертая.
  • smart-lab.ru
Тестирование модели на машинном обучении. Часть четвертая.
 
Maxim Dmitrievsky:

Para os interessados nos retornados - algumas informações nos cammats

https://smart-lab.ru/blog/569692.php#comments

só o nome te deixa assustado :-)

 
Meu, estou presa como sempre. Quem diria que fazer um array único em Java seria uma grande chatice. :-(
 
Grigoriy Chaunin:

Uma nova versão da biblioteca para conectar Python ao MT5 foi postada. Recordando o link https://github.com/RandomKori/Py36MT5 Mas há problemas. No Visual Studio o projeto de teste funciona como deveria, mas no MT há alguns problemas pouco claros. Agora a biblioteca funciona bem com o diretório onde o script Python está localizado. Eu não sei como depurar o link para o MT. MT está protegido contra depuração. Talvez alguém saiba como depurar?

Olá,

Por favor, aconselhe como ligar a biblioteca.

O script pode ser localizado em qualquer diretório? De acordo com o código, está ligado a "C:local".

Ao colocar a dll na pasta "MQL5\Libraries" a biblioteca está incluída, mas todas as outras bibliotecas, "python36.dll, kernell32.dll etc." não estão visíveis.

No Caminho do caminho para a pitão prescrito.

Como conectar a pymt.dll corretamente?

 
 
 
Maxim Dmitrievsky:

Há um claro excesso de formação à face da situação. Poderia-se ver que eles estão agindo hoje como ontem. Assim, os 200 anos de experiência que supostamente estão ganhando no processo de treinamento está longe do que é necessário :-(

 
Mihail Marchukajtes:

Há um claro excesso de formação à face da situação. Podias ver que eles estão a agir hoje da mesma forma que agiram ontem. Portanto, os 200 anos de experiência que alegadamente ganham no processo de treino não é o que tu precisas - infelizmente :-(

Sim, inteligência zero.