Haverá mais experimentos com diferentes variantes.....
Estou testando esses algoritmos com um conjunto de indicadores e uma mistura (indicadores + preços de fechamento). Se possível e de acordo com sua pesquisa, implemente a rejeição inicial de dados correlacionados, ou seja, verifique a correlação. Com seu método, dois indicadores próximos serão selecionados (se eles influenciarem o resultado o suficiente), embora um deles deva dar lugar a um indicador independente.
Estou testando esses algoritmos com um conjunto de indicadores e uma combinação (indicadores + preços de fechamento). Se for possível e estiver de acordo com sua pesquisa, implemente a rejeição inicial de dados correlacionados, ou seja, verifique a correlação. Com seu método, dois indicadores próximos serão selecionados (se influenciarem o resultado o suficiente), embora um deles deva dar lugar a um indicador independente.
Será possível experimentar. No momento, a versão do recursivo e do recursivo logístico (regressão logit em vez de RDF) implementa a seleção de incrementos de preço, ou seja, em uma determinada matriz de preditores de 1.000 preços de fechamento, por exemplo, ele divide a barra zero por cada valor de preço subsequente, obtendo assim um grande conjunto de incrementos com diferentes defasagens, e seleciona o melhor deles. Ou seja, alimentar osciladores diferentes, como momentum ou rsi, com períodos diferentes não faz muito sentido nesse caso
Com seleção por erro mínimo. Isso pode ser visto como um teste de correlação com o resultado.
Digamos que haja um processo de onda (corredor, cunha, etc.). Se 100 valores em um período de uma hora são aproximadamente 4 dias, há uma grande probabilidade de que haja mais de uma onda no intervalo. Então, temos 2 (ou mais) pontos correlacionados. Se um deles influenciar fortemente o resultado, o segundo também passará nesse teste. E também há meias-ondas com correlação negativa. Como resultado, das dez leituras selecionadas para construção posterior, 2 ou 3 são independentes (o restante está fortemente correlacionado com elas e proporciona pouca melhoria no reconhecimento). É necessário selecionar primeiro as leituras que têm pouca correlação entre si (não é um problema calcular para todos os pares, mas como cortar um pedaço de presunto desse porco eu ainda não tenho muita ideia).
Como uma confirmação indireta, em manuais sérios, afirma-se que o método de tree bousting fornece um resultado alguns pontos percentuais menor do que uma floresta aleatória (bagging). No entanto, isso depende muito da implementação e dos algoritmos internos de construção de árvores (no resultado acima, ambos os métodos usaram o CART).
Como resultado, a eficiência de um método depende muito da seleção do período de teste. A propósito, a inclinação do canal não salvará completamente esse problema.
Talvez devêssemos usar a mesma regressão logit ou algum outro método em vez de calcular a média das leituras dos agentes? Acho que a teoria diz que isso funciona.
Talvez devêssemos usar a mesma regressão de logit ou algum outro método em vez de calcular a média das leituras dos agentes? Quero dizer, em teoria, é assim que funciona.
Você pode usar qualquer coisa, mas, puramente em teoria, algumas coisas não são óbvias e não está claro se vale a pena gastar tempo com elas (bem como com toda a abordagem em geral). Pelo menos será um manual sobre como não fazer isso :)
sobre a multicolinearidade dos preditores - concordo. É necessário criar uma matriz de covariância e fazer a seleção de acordo com ela.
Testei-o, minha impressão é ambígua, testei-o em um gráfico personalizado gerado pela função Weierstrass usando a fórmula.
Em teoria, nesse gráfico personalizado, o RandomForest deveria ter encontrado pontos de entrada muito próximos ao ZigZag ou, pelo menos, não ter ordens perdedoras, a periodicidade do TF H1 é claramente rastreável, mas o RF meio que encontrou esse padrão, mas as ordens perdedoras também estão presentes
testei anteriormente no MT4 com os mesmos dados o antigo GoldWarrior Expert Advisor (encontrado no fórum em inglês) - um consultor em ZigZag, no otimizador MT4 em todos os TFs até M15, encontra claramente padrões e exclusivamente em + todas as ordens.
Testei um Expert Advisor indicador no cruzamento de linhas de regressão (infelizmente, fiz o pedido, não posso fornecer o código), e esse Expert Advisor no otimizador encontrou rapidamente padrões na função Weierstrass.
Por que esses exemplos? - Se os métodos primitivos podem encontrar regularidades, então o aprendizado de máquina é ainda mais obrigado a encontrá-las.
com todo o respeito ao autor, mas o resultado é duvidoso, ou melhor, o exemplo de trabalho com o RandomForest é excelente. mas ainda há espaço para colocar seus esforços ;).
ZY: treinado de 2000/01/01 a 2001/01/01 testado de 2001/01/01 a 2002/01/01
ZY: script para gráfico personalizado anexado, biblioteca de símbolos em KB
Descobrindo Weierstrass em uma versão ligeiramente adaptada, todo o gráfico é oos. Não vi sentido em ir mais longe, pois já é óbvio. Mas me divertiu :)
não funcionará com o mercado, é claro. Obrigado pelo script, a propósito, o teste foi muito útil, porque eu não conseguia entender, a princípio, se havia erros na lógica; em cotações reais, os resultados são muito mais modestos
O modelo linear lida com a mesma facilidade, ou seja, para prever essa função, nem mesmo uma rede neural é necessária.
Negociações reversas, para verificar.
Quanto à presença ou ausência de negociações perdedoras, a pergunta é puramente retórica e uma compensação entre precisão e ajuste excessivo.
Obrigado pelo script, a propósito, a verificação foi muito útil, porque eu não conseguia entender no início se havia erros na lógica, em cotações reais os resultados são muito mais modestos
;) ... Estou falando sobre isso há meio ano.
Estou "mastigando" matemática, tenho ideias não padronizadas - análise não suave e fiquei surpreso ao descobrir que uma ficção bastante interessante é "When Genius Fails" (Quando o gênio falha), de R. Lowenstein - eu a li para me distrair.
Estou muito interessado em seu código. Se puder, me dê uma olhada por MP
;) ... Estou falando sobre isso há cerca de seis meses.
Estou "mastigando" a matemática, tenho algumas ideias não padronizadas - análise não suave e fiquei surpreso ao encontrar uma ficção bastante interessante "When Genius Fails" (Quando o gênio falha) de R. Lowenstein - li para me distrair.
Estou muito interessado em seu código. Se puder, dê-me uma olhada por MP
não-suave e não-fluffy? :) à noite, reunirei em um arquivo e compartilharei o projeto comum... talvez possamos fazer algo juntos.
...sobre a multicolinearidade dos preditores - concordo. É necessário criar uma matriz de covariância e fazer a seleção nela; mais tarde pensarei em como fazer isso melhor
Talvez eu esteja batendo em uma porta aberta, mas como não houve...
Eles recomendam o pré-processamento antes da conversão para o intervalo [0,1]:
1. remoção da periodicidade, eu fiz isso em periodicityArrays() - o perfil composto por dias da semana e hora de um mês é subtraído do intervalo (embora eu tenha feito isso apenas para um período de uma hora para tentar).
2.Remoção da tendência linear em linearTrendArrays(), conforme recomendado a[i]=a[i]-a[i+1].
3) E aqui é onde a verificação de autocorrelação deve estar (ainda não implementada)
A previsibilidade após as ações 1 e 2 aumentou significativamente. O código está anexado.
Haverá mais experimentos com diferentes variantes.....
Estou testando esses algoritmos com um conjunto de indicadores e uma mistura (indicadores + preços de fechamento). Se possível e de acordo com sua pesquisa, implemente a rejeição inicial de dados correlacionados, ou seja, verifique a correlação. Com seu método, dois indicadores próximos serão selecionados (se eles influenciarem o resultado o suficiente), embora um deles deva dar lugar a um indicador independente.
Estou testando esses algoritmos com um conjunto de indicadores e uma combinação (indicadores + preços de fechamento). Se for possível e estiver de acordo com sua pesquisa, implemente a rejeição inicial de dados correlacionados, ou seja, verifique a correlação. Com seu método, dois indicadores próximos serão selecionados (se influenciarem o resultado o suficiente), embora um deles deva dar lugar a um indicador independente.
Será possível experimentar. No momento, a versão do recursivo e do recursivo logístico (regressão logit em vez de RDF) implementa a seleção de incrementos de preço, ou seja, em uma determinada matriz de preditores de 1.000 preços de fechamento, por exemplo, ele divide a barra zero por cada valor de preço subsequente, obtendo assim um grande conjunto de incrementos com diferentes defasagens, e seleciona o melhor deles. Ou seja, alimentar osciladores diferentes, como momentum ou rsi, com períodos diferentes não faz muito sentido nesse caso
É melhor tentar...
Corrija-me se eu estiver errado em meu raciocínio (sobre preços):
Vários métodos postados usam algo como:
Com seleção por erro mínimo. Isso pode ser visto como um teste de correlação com o resultado.
Digamos que haja um processo de onda (corredor, cunha, etc.). Se 100 valores em um período de uma hora são aproximadamente 4 dias, há uma grande probabilidade de que haja mais de uma onda no intervalo. Então, temos 2 (ou mais) pontos correlacionados. Se um deles influenciar fortemente o resultado, o segundo também passará nesse teste. E também há meias-ondas com correlação negativa. Como resultado, das dez leituras selecionadas para construção posterior, 2 ou 3 são independentes (o restante está fortemente correlacionado com elas e proporciona pouca melhoria no reconhecimento). É necessário selecionar primeiro as leituras que têm pouca correlação entre si (não é um problema calcular para todos os pares, mas como cortar um pedaço de presunto desse porco eu ainda não tenho muita ideia).
Como uma confirmação indireta, em manuais sérios, afirma-se que o método de tree bousting fornece um resultado alguns pontos percentuais menor do que uma floresta aleatória (bagging). No entanto, isso depende muito da implementação e dos algoritmos internos de construção de árvores (no resultado acima, ambos os métodos usaram o CART).
Como resultado, a eficiência de um método depende muito da seleção do período de teste. A propósito, a inclinação do canal não salvará completamente esse problema.Para nos atualizarmos,
Talvez devêssemos usar a mesma regressão logit ou algum outro método em vez de calcular a média das leituras dos agentes? Acho que a teoria diz que isso funciona.
Atualização,
Talvez devêssemos usar a mesma regressão de logit ou algum outro método em vez de calcular a média das leituras dos agentes? Quero dizer, em teoria, é assim que funciona.
Você pode usar qualquer coisa, mas, puramente em teoria, algumas coisas não são óbvias e não está claro se vale a pena gastar tempo com elas (bem como com toda a abordagem em geral). Pelo menos será um manual sobre como não fazer isso :)
sobre a multicolinearidade dos preditores - concordo. É necessário criar uma matriz de covariância e fazer a seleção de acordo com ela.
Testei-o, minha impressão é ambígua, testei-o em um gráfico personalizado gerado pela função Weierstrass usando a fórmula.
Em teoria, nesse gráfico personalizado, o RandomForest deveria ter encontrado pontos de entrada muito próximos ao ZigZag ou, pelo menos, não ter ordens perdedoras, a periodicidade do TF H1 é claramente rastreável, mas o RF meio que encontrou esse padrão, mas as ordens perdedoras também estão presentes
testei anteriormente no MT4 com os mesmos dados o antigo GoldWarrior Expert Advisor (encontrado no fórum em inglês) - um consultor em ZigZag, no otimizador MT4 em todos os TFs até M15, encontra claramente padrões e exclusivamente em + todas as ordens.
Testei um Expert Advisor indicador no cruzamento de linhas de regressão (infelizmente, fiz o pedido, não posso fornecer o código), e esse Expert Advisor no otimizador encontrou rapidamente padrões na função Weierstrass.
Por que esses exemplos? - Se os métodos primitivos podem encontrar regularidades, então o aprendizado de máquina é ainda mais obrigado a encontrá-las.
com todo o respeito ao autor, mas o resultado é duvidoso, ou melhor, o exemplo de trabalho com o RandomForest é excelente. mas ainda há espaço para colocar seus esforços ;).
ZY: treinado de 2000/01/01 a 2001/01/01 testado de 2001/01/01 a 2002/01/01
ZY: script para gráfico personalizado anexado, biblioteca de símbolos em KB
Descobrindo Weierstrass em uma versão ligeiramente adaptada, todo o gráfico é oos. Não vi sentido em ir mais longe, pois já é óbvio. Mas me divertiu :)
não funcionará com o mercado, é claro. Obrigado pelo script, a propósito, o teste foi muito útil, porque eu não conseguia entender, a princípio, se havia erros na lógica; em cotações reais, os resultados são muito mais modestos
O modelo linear lida com a mesma facilidade, ou seja, para prever essa função, nem mesmo uma rede neural é necessária.
Negociações reversas, para verificar.
Quanto à presença ou ausência de negociações perdedoras, a pergunta é puramente retórica e uma compensação entre precisão e ajuste excessivo.
Obrigado pelo script, a propósito, a verificação foi muito útil, porque eu não conseguia entender no início se havia erros na lógica, em cotações reais os resultados são muito mais modestos
;) ... Estou falando sobre isso há meio ano.
Estou "mastigando" matemática, tenho ideias não padronizadas - análise não suave e fiquei surpreso ao descobrir que uma ficção bastante interessante é "When Genius Fails" (Quando o gênio falha), de R. Lowenstein - eu a li para me distrair.
Estou muito interessado em seu código. Se puder, me dê uma olhada por MP
;) ... Estou falando sobre isso há cerca de seis meses.
Estou "mastigando" a matemática, tenho algumas ideias não padronizadas - análise não suave e fiquei surpreso ao encontrar uma ficção bastante interessante "When Genius Fails" (Quando o gênio falha) de R. Lowenstein - li para me distrair.
Estou muito interessado em seu código. Se puder, dê-me uma olhada por MP
não-suave e não-fluffy? :) à noite, reunirei em um arquivo e compartilharei o projeto comum... talvez possamos fazer algo juntos.
...sobre a multicolinearidade dos preditores - concordo. É necessário criar uma matriz de covariância e fazer a seleção nela; mais tarde pensarei em como fazer isso melhor
Talvez eu esteja batendo em uma porta aberta, mas como não houve...
Eles recomendam o pré-processamento antes da conversão para o intervalo [0,1]:
1. remoção da periodicidade, eu fiz isso em periodicityArrays() - o perfil composto por dias da semana e hora de um mês é subtraído do intervalo (embora eu tenha feito isso apenas para um período de uma hora para tentar).
2.Remoção da tendência linear em linearTrendArrays(), conforme recomendado a[i]=a[i]-a[i+1].
3) E aqui é onde a verificação de autocorrelação deve estar (ainda não implementada)
A previsibilidade após as ações 1 e 2 aumentou significativamente. O código está anexado.