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

 
Vizard_:
"Gopher" que não consegui encontrar, estragou tudo)))) E para que servem todos estes exercícios... qualquer um que seja hippie vai entender.
Para ser honesto, não entendo.........
 
mytarmailS:

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.

 
Dr. Trader:

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.

 
Mihail Marchukajtes:
você precisa multiplicar a variável v2 pelo seu atraso e dividir por v3 .
Mostrar 10 linhas com as seguintes colunas (v2; Lag1_v2; v3; v11 (alvo) 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.
 
Mihail Marchukajtes:
lag não vê a rede.
aparas linhas vazias e as enfias onde quiseres...
 

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.

Arquivos anexados:
 
Vizard_:
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.
Para ser honesto, eu não vejo o objectivo deste jogo.... Construir a variável de saída com base na transformação não astuciosa dos dados de entrada, não há sentido. Se o TC vai funcionar bem, não há necessidade de utilizar a rede. Outra coisa que me faz pensar, e se o otimizador vai analisar um arquivo de treinamento não linha por linha, mas como um todo. Procurando correlação não só entre colunas, mas também em valores passados de qualquer coluna. O resultado pode ser bastante interessante. Além da normalização dos dados, haverá também o pré-processamento de dados, produzindo não só uma fórmula de normalização, mas também uma fórmula de pré-processamento, como por exemplo: Antes da normalização, a v2 deve ser multiplicada pelo desfasamento1 v5, etc. Então acho que a busca será muito mais interessante. Ou melhor, o pré-processamento dá-nos fórmulas de conversão, uma espécie de pré-optimizador. Depois aplicamos estas fórmulas aos dados, obtendo outro conjunto de dados e depois enfiamo-lo no optimizador para construir o modelo.... Que tal isto para si.....???? Algum tipo de busca multidimensional de dependências, não só entre colunas, mas também entre relações com valores passados. Alguém me pode dizer como organizar isto em MKUL???? Eu tentaria :-)
 
Por exemplo, antes de construir um modelo eu otimizo cada entrada para a saída usando o otimizador MKUL. Isto é, se eu usar uma varinha, então antes de construir um modelo, eu seleciono os parâmetros da varinha no intervalo de treinamento, para que ela dê o máximo de sinais lucrativos possível, e assim com cada entrada, então eu coloco tudo no otimizador....iiiand.... o modelo torna-se mais estável. O modelo é estável mas cerca de 50% de generalização ou um pouco mais, porque cada um dos predicados durante a optimização no MKUL dá num caso raro o número de negócios lucrativos superior a 50%. Mas eu faço isso com cada entrada individualmente e, principalmente, o parâmetro de média e retardo é selecionado em uma determinada seção, e não há relação com outras entradas. Suponha que procuramos essa correlação com o otimizador, como escrevi acima. Em seguida, obtenha os parâmetros de relação entre os dados. Para aplicá-los aos dados e, em seguida, colocá-los no otimizador. Penso que fará sentido então e o modelo adquirirá o nível de generalização apropriado. Mas não tenho a certeza de como organizar... Eu estou a pensar... Estou aberto a todas as ideias... ...... Eu acho que uma simples rede neural no MKUL pode ajudar, que pode construir tal curva, que descreveria ao máximo todos os sinais no conjunto de teste corretamente, ajudando assim a construir um bom modelo no otimizador básico Reshetov (é uma questão de quem senta em quê). Há algumas malhas simples em MKUL????
 
Dr. Trader:

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

Prediction   setosa versicolor virginica

  setosa         16          0         0
  versicolor      0         15         1
  virginica       0          0        18

Overall Statistics

Accuracy : 0.98    

a floresta nem notou o barulho nos dados...

e a foreca é pior

Prediction   setosa versicolor virginica
  setosa          6          6         4
  versicolor      5         10         1
  virginica       8          5         5

Overall Statistics
                                          
               Accuracy : 0.42 
Arquivos anexados:
code.txt  1 kb
 
mytarmailS:

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.