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

 
elibrarius #:

Acrescentei um tal preditor de distância do bar atual hoje. Você pode ter um número ou apenas um tempo. Demorei o tempo necessário.

Tudo está mais ou menos claro com o tempo cíclico. Eu não entendo muito de tempo linear - será diferente para a bandeja e para frente? Ou a "barra atual" é tomada independentemente para cada amostra?

Eu tive a idéia de apenas pegar uma regressão logística linear comum e ver o significado da diferença do coeficiente zero no tempo (ou em alguma função do tempo) ou comparar esse significado com o significado para outros preditores.

 
Aleksey Nikolayev #:

O tempo cíclico é mais ou menos claro. Não está muito claro com o tempo linear - será diferente para uma bandeja e para a frente? Ou a "barra atual" é tomada independentemente para cada amostra?

Eu tive a idéia de apenas pegar uma regressão logística linear comum e ver o significado de uma diferença de coeficiente zero no tempo (ou em alguma função do tempo) ou comparar esse significado com o significado para outros preditores.

Em geral, a idéia de alimentar o tempo linear não é uma boa idéia. A propósito, sim: na bandeja é diferente em cada linha e na frente analisamos apenas 1 linha de cada vez, ou seja, o tempo será sempre atual (que não estava na bandeja), e o número sempre = 0 (e na bandeja de 0 a 5000). Isto é, nem o tempo nem o número da bandeja podem ser fornecidos. Isto é o que o teste mostrou.
 
Então, uma onda senoidal à entrada
 

Uma onda sinusoidal é para a hora cíclica como a hora do dia ou do dia da semana. E ali originalmente (Aleksey Vyazmikin) falava-se de tempo linear comum para tentar captar o efeito da não-estacionariedade sob a forma de padrões decadentes. Na minha opinião, modelos simples e facilmente interpretáveis devem ser usados para resolver tais problemas. Os modelos complexos são para fins práticos, simples para análise preliminar.

No entanto, existem dúvidas sobre a utilidade prática deste tipo de manipulação neste caso em particular. Muito provavelmente, nossos padrões não mudam uniformemente com o tempo, mas ciclicamente (mas sem periodicidade).

 
Aleksey Nikolayev #:

Uma onda sinusoidal é para a hora cíclica como a hora do dia ou do dia da semana. E lá originalmente (Aleksey Vyazmikin) estava falando sobre o tempo linear comum para tentar captar o efeito da não-estacionariedade sob a forma de decadência do padrão. Na minha opinião, modelos simples e facilmente interpretáveis devem ser usados para resolver tais problemas. Os modelos complexos são para fins práticos, simples para análise preliminar.

No entanto, existem dúvidas sobre a utilidade prática deste tipo de manipulação neste caso em particular. Muito provavelmente as nossas regularidades mudam ao longo do tempo não uniformemente, mas ciclicamente (mas sem periodicidade).

É como nos fractais. São cíclicas, mas não periódicas. Está tudo correcto.
 
elibrarius #:
Em geral, a ideia de alimentar o tempo linear é má. A propósito, sim: na bandeja é diferente em cada linha e em frente analisamos apenas 1 linha de cada vez, ou seja, o tempo será sempre atual (que não estava na bandeja), e o número sempre = 0 (e na bandeja de 0 a 5000). Isto é, nem o tempo nem o número da bandeja podem ser fornecidos. Isto é o que o teste mostrou.

Embora eu tente novamente com o número... Porque o número zero será incluído na parte da árvore que < alguma divisão (por exemplo <5000), ou seja, uma parte da árvore para encaminhamento será utilizada. Nem tudo. Algo que, por engano, decidi reservar um tempo para o teste.

Mas como fazer uma divisão por número estava a uma distância ideal para avançar?

 

Experimentei-o. O modelo com 5000 barras de história para aprender, depois de adicionar o número da linha como recurso, para Comprar melhorou, para Vender em alguns aspectos pior, em alguns aspectos melhor.
Ao mesmo tempo, se ensinarmos em 10000 bares, ambos os modelos falham. Ou seja, a tarefa principal de adicionar o número da linha para a determinação automática do comprimento do histórico necessário não foi cumprida.

Até agora, só temos de optimizar/seleccionar manualmente a duração do histórico para o treino.

 

Parece que a ideia básica de usar métricas personalizadas do trader é que elas sejam usadas na fase de seleção do modelo. Na fase de treinamento, são utilizadas as métricas padrão. Provavelmente, é algo parecido com o que Maxim Dmitrievsky escreveu anteriormente sobre este assunto.

Um pequeno artigo para ilustrar a abordagem.

The training dilemma: loss vs profit function?
The training dilemma: loss vs profit function?
  • Haris (Chariton) Chalvatzis
  • medium.com
In the world of machine learning, models are trained by minimizing some variation of a loss function. For example, when we try to predict the median house value of a specific zip code, we are dealing with a regression type problem and prime suspects for the loss function, to be used to train our model, are the Mean Squared Error (MSE), Mean...
 
Aleksey Nikolayev #:

Aparentemente, a idéia principal de usar métricas personalizadas do trader é que elas sejam usadas na fase de seleção do modelo.

No entanto, há algumas ideias de usar métricas personalizadas na fase de formação. Ao mesmo tempo, eles não são muito parecidos com os dos comerciantes, mas são versões modificadas das versões padrão para o MO.

Talvez a métrica do comerciante conduza a uma baixa condicionalidade. Isto faz lembrar, por exemplo, o uso da centralidade cruzada em vez da taxa de erro original (diz-se que esta última é pouco sensível).

É necessário reduzir de alguma forma as lacunas teóricas e práticas entre o treinamento em RI e a otimização no testador.

 
Aleksey Nikolayev #:

Embora existam ideias de utilizar métricas personalizadas já na fase de formação. No entanto, eles não são exatamente como as métricas dos comerciantes, mas sim variantes ajustadas da métrica MOE padrão.

Talvez a métrica do comerciante conduza a uma baixa condicionalidade. Parece, por exemplo, utilizar a centralidade cruzada em vez da frequência de erro original de interesse( dizem sobre a fraca sensibilidade desta última).

Confiança, mas verifique.
Aleksey Nikolayev #:
Devemos de alguma forma reduzir as lacunas teóricas e práticas entre o treinamento em MO e a otimização no testador.

Quando eu estava fazendo modelos com TP/SL a precisão era absoluta. No modelo e no testador, as negociações foram abertas nas mesmas barras e fechadas com o mesmo TP/SL. Mas a rentabilidade era cerca de 0.
Eu estava testando usando preços abertos. Mas há um problema com eles... O spread mínimo é usado na barra.

Ou seja, parte das ordens e TP/SL no testador irá disparar em

ASK HIGH = BID HIGH + spread mínimo.

Aqueles que seriam desencadeados no comércio real não funcionarão...

ASK HIGH (real) = BID HIGH + Spread calculado pelo máximo ASK

Algumas vezes sugeri aos desenvolvedores que poupassem em bares não o spread mínimo, mas

Spread = ASK HIGH - BID HIGH.

Com um tal spread, o teste por preços abertos estaria mais próximo do teste por carrapatos reais.

Por exemplo, spread min numa barra = 0.00002, enquanto Spread = ASK HIGH - BID HIGH = 0.00020. Isto é, na realidade o preço ASK era mais alto que o do testador um por 0,00018. Onde as aberturas/fechamentos comerciais poderiam ter ocorrido.

Mas não houve resposta da MetaQuotes (em russo)

PS: Para ser mais preciso, o spread Low Ask também deve ser calculado.
Razão: