Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 95
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
"Gopher" que não consegui encontrar, estragou tudo)))) E para que servem todos estes exercícios... qualquer um que seja hippie vai entender.
sim, mas isso não está certo, um bom preditor é aquele que explica o alvo, não aquele que se explica a si próprio, não sei como se pode conhecer a qualidade de um preditor sem o comparar com o alvo, não o entendo....
Depende da extremidade do problema que está sendo abordada. Inicialmente, não conhecemos os preditores desejados, e não conhecemos a variável alvo. E para negociarmos com sucesso, precisamos de conhecer ambos. É impossível saber ambos ao mesmo tempo, por isso devemos selecionar os preditores de acordo com nossa variável alvo. Ou você pode reunir bons preditores e depois usar sua experiência para prever o que pode acontecer com eles.
Primeira abordagem. Eu, por exemplo, tenho uma variável-alvo - aumento/diminuição do preço na próxima barra. Tomei-a não por ser uma boa variável alvo, mas porque tinha de começar por algum lado, por isso tomei algo mais fácil :) Em seguida, peguei um monte de indicadores e agora estou tentando ensinar o modelo sobre "um monte de indicadores" para reconhecer "ascensão/declínio". Estou feliz que tenha funcionado pelo menos um pouco, porque não há garantia de que a variável alvo escolhida aleatoriamente seja previsível e não há garantia de que os preditores tenham informações suficientes para fazer uma previsão. O ForeCA neste caso serve apenas para pré-processar os dados, para levá-los a uma forma em que seja mais fácil para a rede neural aprender. Por exemplo, os dados podem ser normalizados, ou deltas de valores adjacentes podem ser tomados, ou componentes PCA podem ser feitos a partir deles, etc. Tudo isso facilita o trabalho dos neurónios, é mais fácil treinar esses dados pré-processados. O que a ForeCA é obrigada a fazer neste caso é agrupar aulas semelhantes de alguma forma. Mas não é certo que a ForeCA irá ajudar nisto - depende da sua sorte e dos preditores disponíveis e da variável alvo.
Em suma, neste caso, a variável alvo é combinada com um modelo e preditores que, todos juntos, têm miraculosamente pelo menos algum poder de previsão.
Outra abordagem. Pegamos um monte de preditores, ordenamo-los de acordo com a sua "fiabilidade" e apagamos os irrelevantes. Por exemplo, se o indicador tem um valor constante o tempo todo, ele é obviamente inútil. Se o preditor foi gerado usando a função random(), ele também será inútil. Isto é, é importante deixar aqueles preditores que realmente possuem alguma informação. Eu não sei muito sobre isso, a única coisa que me lembro - como encontrar a importância do preditor para o componente PCA (parâmetro pruneSig no carpete), parece ser uma estimativa adequada. Neste caso, a ForeCA deve peneirar as moscas das costeletas, e ajudar a encontrar preditores confiáveis. Como todos esses pacotes sabem o que é importante e o que não é um mistério, mas eles encontram ruidosos e preditores aleatórios e os rejeitam. Um preditor de qualidade será aquele que não é aleatório e barulhento.
A seguir, tendo um conjunto de preditores de qualidade, você deve experimentá-los para prever algo. Por exemplo, é possível construir um mapa de kohonen e encontrar a dependência do comportamento do mercado em relação à classe no mapa de kohonen. Tire conclusões sobre quais classes negociar e quais não, e assim construa uma nova variável alvo para si mesmo. A variável alvo terá alta previsibilidade com os preditores à medida que for sendo construída sobre eles, tudo soa bem, mas eu acho que haverá muitos problemas e armadilhas próprias.
Depende da extremidade do problema que está sendo abordada. Inicialmente, não conhecemos os preditores desejados, e não conhecemos a variável alvo. E para negociarmos com sucesso, precisamos de conhecer ambos. É impossível saber ambos ao mesmo tempo, por isso devemos selecionar os preditores de acordo com nossa variável alvo. Ou selecione um preditor de boa qualidade e depois veja o que pode ser previsto usando-os.
Primeira abordagem.....
Outra abordagem....
As abordagens são várias, mas será que vamos negociar?
O que vamos trocar?
Uma tendência?
Desvio?
Nível?
Tenha em mente que temos apenas duas ordens - COMPRAR/SELHAR. Ou existe uma certa variedade deles? Entrar COMPRA / Sair COMPRA / Entrar VENDA / Sair VENDA
Estas são variantes da variável de destino.
A seguir.
Podemos formar uma variável-alvo para o que negociamos?
Ou existe alguma lacuna entre o alvo e a ideia do sistema de negociação, o que é um erro?
Etc.
Mas temos de começar com o que estamos a negociar.
você precisa multiplicar a variável v2 pelo seu atraso e dividir por v3 .
v2;Lag1_v2;v3;v11(цель);v2*Lag1_v2/v3
O arquivo com o arquivo não precisa de ser descarregado.
lag não vê a rede.
SanSanych Fomenko:
Sabendo exactamente o que trocar. Há muitas opções, mas você pode novamente escolher algo imprevisível e gastar muito tempo para aprender sobre imprevisibilidade. É necessário escolher algo que seja mais fácil de prever sobre os preditores disponíveis. Tens de pensar muito sobre como fazer isto.
Fez um código de teste para previsão com ForeCA. Necessita de uma tabela de dados do comboio, com a variável de destino na última coluna. Será dividido por linhas em 2 partes para treinamento/validação (será dividido estritamente no meio). Modelo preditivo é lm, por alguma razão ele é sempre usado com PCA em exemplos, eu acho que ele vai funcionar aqui também. Você pode substituir a função lm(...) no código por outro modelo.
ForeCA requer dados em matriz com classificação completa após cov(). Anexei um código que verifica isto antecipadamente, e remove colunas com baixo valor próprio. Está tudo em loop, e leva muito tempo para ser executado, e provavelmente poderia ter sido feito mais simples. Tenho parte dos preditores eliminados desta forma, não sei se é bom ou não.
Até agora não tenho resultado, o pacote comeu 5 gigas de desespero e por muito tempo eu me perguntei, experimente, talvez dê uma boa previsão para alguém.
Mostrar 10 linhas com estas colunas (v2;Lag1_v2;v3;v11(target) e uma coluna com a fórmula v2*Lag1_v2/v3)
v2;Lag1_v2;v3;v11(цель);v2*Lag1_v2/v3
O arquivo com o arquivo não precisa de ser descarregado.
Fez um código de teste para a previsão com ForeCA.....
eu também... Decidi fazer um rápido, tomei Iris, acrescentei 10 preditores com ruído
e acabei de treinar a Forest, depois tomei a mesma data e usando a previsão reduzi-a a 4 preditores e treinei a Forest novamente
resultado:
apenas forrest sobre os novos dados
a floresta nem notou o barulho nos dados...
e a foreca é pior
Eu também... Eu decidi fazer uma correção rápida, adicionei 10 preditores com ruído
e apenas floresta treinada, depois tomou a mesma data com ruído e usando foreCA reduziu a dimensão para 4 preditores e treinou floresta novamente sobre eles
resultado:
apenas forrest sobre os novos dados
a floresta nem notou o barulho nos dados...
e com a previsão as coisas são piores.
A verdade é boa, mas a felicidade é melhor!
Verdade = 42%, oh-so-positivo para o depoimento.
Embora seja possível viver feliz, mas com um depoimento zero.