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

 
Yuriy Asaulenko:
É certamente verdade. Mas o elevado limiar de entrada aumenta todo o tipo de riscos. Não necessariamente financeiro.

É verdade, o acima mencionado também pode ser expresso de uma forma banal: "o lucro é uma função monotónica de risco razoável", que se aplica não só ao comércio, mas a todas as actividades humanas, além de se saber que aqueles que pensam que não arriscam de todo, por exemplo, escolhendo uma profissão que não é competitiva e confiando na pensão do Estado, são pessoas extremas)))


E o que é uma vida "sem" riscos? Não é nada interessante, dado que terminará da mesma forma para todos.

 
Bem, o meu artigo cobre o intervalo de confiança e assim por diante. Recomendo vivamente que o leiam com atenção e podem tirar muito proveito disso.
 
Yuriy Asaulenko:

Por uma abordagem sistemática entendo o que você está fazendo e, portanto, ser capaz de planejar e prever os resultados de suas ações.

Obrigado pelo artigo. Como não estou familiarizado com nenhum software em particular, é o melhor para um iniciante - simples e claro. A única coisa que não entendo é que método é usado, regressão ou classificação um?
Naturalmente, comecei imediatamente a experimentá-lo nos meus próprios sistemas. Se alguma pergunta for problemática, pode ser que seja descoberta à medida que o jogo avança.

1. eu não uso castiçais para entrar e sair - apenas um fluxo de citações, e castiçais apenas no histórico do castiçal anterior. Enquanto eu posso deixá-lo aprender pelo candelabro, ainda é um mistério como fazer Rattle engolir o fluxo de citações do candelabro dentro do candelabro atual. O fluxo do candelabro deve ser analisado de alguma forma.

2. O que fazer com os preditores reconstruíveis? Por exemplo, com linhas de regressão e sigmas. Você não pode nem mesmo colá-los na história (para aprender), precisamos de funções que os calculem na mosca e removam seus desenhos anteriores da história.

Da mesma forma, há preditores cintilantes que nem sempre existem e são construídos a partir de certos pontos da série e, em geral, também podem ser reconstruídos no decorrer da peça.

4 A questão da normalização dos preditores pelos itens 2 e 3 - é fundamentalmente impossível.

E a história dos preditores deve ser calculada tanto no decurso da formação como do trabalho.

Até agora não temos nada a não ser confusão.


O guizo é bom em dois casos:

  1. Quando nos conhecermos pela primeira vez.
  2. para tentar... quando souberes o problema...

1. Regressão ou classificação. Isto determina o tipo de variável alvo. Um número real é a regressão. Nominal (fator) - classificação.

2. Comece com a variável alvo. Embora aparentemente simples, esta é uma questão complexa. O que é que vais prever? Sentido? magnitude, excesso, nível...

3. Preditores. Você tem que provar que eles são "relevantes" para a variável alvo. Esta é a parte mais difícil. Passo até 70% do meu tempo com esta pergunta. Eu escrevi muito sobre isso neste tópico.

4. Não estou contente com a estática. É aqui que entra a saída para R. O guizo facilita ir para R porque regista todas as suas acções em R e este código acabado pode ser usado para modificação. Geralmente o próximo passo é a carpete.

 
SanSanych Fomenko:


2. Você tem que começar com a variável de destino. Apesar da sua aparente simplicidade, é uma questão bastante complicada. O que é que vais prever? Direcção? Magnitude, excesso, nível...

Parece que tudo precisa de ser previsto). Existem agora cerca de 30 "indicadores" (mais correctamente chamados de preditores) no modelo (não MO) + o seu processamento e lógica mútuos. Era suposto ser + 10 mais.

Lidar manualmente com tal volume e ainda compreender a contribuição de cada preditor para o todo, não é mais realista. Daí, já agora, a ideia de usar o MO. Tudo ainda está numa fase muito precoce.

SanSanych Fomenko:

3. Preditores. Você tem que provar que eles são "relevantes" para a variável alvo. Isto é o mais difícil. Passo até 70% do meu tempo com esta pergunta. Escrevi muito sobre isso na linha.

Sim, vou ter de o adaptar. Parece que não se pode simplesmente enfiá-lo).

SanSanych Fomenko:

4. Não estou contente com a estática. É aqui que entra a saída para R. O guizo simplifica essa saída para R porque registra todas as suas ações em R e este código pronto pode ser usado para modificação. Na verdade, o próximo passo é a carpete.

Já está.

 

Tabela interessante, os pacotes de MO mais comumente utilizados

turmanomepacotedownloads
sobreviver.coxphModelo de Risco Proporcional Coxsobrevivência153681
classif.naiveBayesNaïve Bayese1071102249
classif.svmMáquinas Vector de Suporte (libsvm)e1071102249
classif.ldaAnálise Linear DiscriminatóriaMASSA55852
classif.qdaAnálise Discriminatória QuadráticaMASSA55852
classif.randomForestFloresta AleatóriarandomForest52094
classif.gaussprProcessos Gaussianoskernlab44812
classif.ksvmMáquinas Vector de Suportekernlab44812
classif.lssvmMáquina Vetorial de Menos Quadrados de Apoiokernlab44812
cluster.kkmeansKernel K-Meanskernlab44812
regr.rvmMáquina Vectorial Relevantekernlab44812
classif.cvglmnetGLM com Lasso ou Elasticnet Regularização (Cross Validated Lambda)glmnet41179
classif.glmnetGLM com Lasso ou Elasticnet Regularizaçãoglmnet41179
sobreviver.cvglmnetGLM com Regularização (Cross Validated Lambda)glmnet41179
sobreviver.glmnetGLM com Regularizaçãoglmnet41179
classif.cforestFloresta aleatória baseada em árvores de inferência condicionalfesta36492
classif.ctreeÁrvores de Inferência Condicionalfesta36492
regr.cforestFloresta Aleatória Baseada em Árvores de Inferência Condicionadafesta36492
multidão em regressãoParticionamento Recursivo Baseado em Modelos Produzindo uma Árvore com Modelos Adaptados Associados a cada Nó Terminalfesta,modeltools36492
sobreviver.cforestFloresta Aleatória Baseada em Árvores de Inferência Condicionadapartido, sobrevivência36492
 
SanSanych Fomenko:

Tabela interessante, os pacotes de MO mais comumente utilizados

turmanomepacotedownloads
sobreviver.coxphModelo de Risco Proporcional Coxsobrevivência153681
classif.naiveBayesNaïve Bayese1071102249
classif.svmMáquinas Vector de Suporte (libsvm)e1071102249
classif.ldaAnálise Linear DiscriminatóriaMASSA55852
classif.qdaAnálise Discriminatória QuadráticaMASSA55852
classif.randomForestFloresta AleatóriarandomForest52094
classif.gaussprProcessos Gaussianoskernlab44812
classif.ksvmMáquinas Vector de Suportekernlab44812
classif.lssvmMáquina Vetorial de Menos Quadrados de Apoiokernlab44812
cluster.kkmeansKernel K-Meanskernlab44812
regr.rvmMáquina Vectorial Relevantekernlab44812
classif.cvglmnetGLM com Lasso ou Elasticnet Regularização (Cross Validated Lambda)glmnet41179
classif.glmnetGLM com Lasso ou Elasticnet Regularizaçãoglmnet41179
sobreviver.cvglmnetGLM com Regularização (Cross Validated Lambda)glmnet41179
sobreviver.glmnetGLM com Regularizaçãoglmnet41179
classif.cforestFloresta aleatória baseada em árvores de inferência condicionalfesta36492
classif.ctreeÁrvores de Inferência Condicionalfesta36492
regr.cforestFloresta Aleatória Baseada em Árvores de Inferência Condicionadafesta36492
multidão em regressãoParticionamento Recursivo Baseado em Modelos Produzindo uma Árvore com Modelos Adaptados Associados a Cada Nó Terminalfesta,modeltools36492
sobreviver.cforestFloresta Aleatória Baseada em Árvores de Inferência Condicionadapartido, sobrevivência36492

Esqueci-me de incluir outro na lista. Ah sim, eu tenho um software único, pode-se dizer que é raro :-)
 
Yuriy Asaulenko:

Parece que tudo precisa de ser previsto). Existem agora cerca de 30 "indicadores" (mais correctamente chamados de preditores) no modelo (não MO) + o seu processamento e lógica mútuos. Era suposto ser + 10 mais.

Lidar manualmente com tal volume e ainda compreender a contribuição de cada preditor para o todo, não é mais realista. Daí, já agora, a ideia de usar o MO. Tudo ainda está numa fase muito precoce.

SanSanych Fomenko:

3. Preditores. Você tem que provar que eles são "relevantes" para a variável alvo. Isto é o mais difícil. Passo até 70% do meu tempo com esta pergunta. Escrevi muito sobre isso na linha.

Sim, vou ter de o adaptar. Parece que não se pode simplesmente enfiá-lo).

SanSanych Fomenko:

4. Não estou contente com a estática. É aqui que entra a saída para R. O guizo simplifica essa saída para R porque registra todas as suas ações em R e esse código pronto pode ser usado para modificação. Na verdade, o próximo passo é a carpete.

Já está.

Vou adicionar os meus 5 kopeck. Na verdade, você precisa alimentar tais entradas que causarão não a variável de saída, mas sim o preço! Então qualquer TS será bem treinado. Exemplos de funções de destino:

A MELHOR MELHOR SINAL, então haverá um recuo para um certo nível, qual dos níveis de hoje será alcançado, etc. Leia o meu artigo, não seja preguiçoso, eu mencionei-o. Assim, para todas estas funções de destino dou os mesmos inputs e o funcionamento de todos os modelos é bastante satisfatório. E você pode ver como os mesmos insumos estão olhando para o mercado. Aqui no lucro, aqui no recuo, aqui no nível. Eles funcionam bem, porque as entradas são a razão do preço.

Para explicar um pouco, a razão é quando as mudanças na entrada levam a mudanças no preço, e não o contrário. Isto pode ser muito confuso, porque as estatísticas do próprio TS são muito más. Porque o Zscore toma exactamente o valor que o preço lhe diz, não o inverso. O delta é o motivo da mudança de preço, por exemplo. :-)

 
Mihail Marchukajtes:

Eu dou-te os meus cinco cêntimos. O que você realmente precisa fazer é fornecer inputs que não são a razão para a variável de saída, mas sim para o PREÇO! Então qualquer TS vai treinar bem. Exemplos de funções de destino:

A MELHOR MELHOR SINAL, então haverá um recuo para um certo nível, qual dos níveis de hoje será alcançado, etc. Leia o meu artigo, não seja preguiçoso, eu mencionei-o. Assim, para todas estas funções de destino dou os mesmos inputs e o funcionamento de todos os modelos é bastante satisfatório. E você pode ver como os mesmos insumos estão olhando para o mercado. Aqui no lucro, aqui no recuo, aqui no nível. Eles funcionam bem, porque as entradas são a razão do preço.

Para explicar um pouco, a razão é quando as mudanças na entrada levam a mudanças no preço, e não o contrário. Isto pode ser muito confuso, porque as estatísticas do próprio TS são muito más. Porque o Zscore toma exactamente o valor que o preço lhe diz, não o inverso. O delta é o motivo da mudança de preço, por exemplo. :-)

Eu li o seu artigo, se você se refere ao link da página anterior. Talvez me tenha escapado alguma coisa. Eu vou reler.

É claro que os preditores estão lá para prever o movimento dos preços. Mas a sua sobreposição + preço dá um sinal para a entrada, ou seja, prevêem a reacção da caixa negra inicial (treino). A questão é semelhante à da galinha ou do ovo primeiro? Talvez a discordância seja puramente uma questão de terminologia.

Do ponto de vista da ideologia, pelo menos em sistemas com lógica rígida, é mais correto prever o preço, enquanto a variável de saída já é o resultado do processamento.

 
Yuriy Asaulenko:

Seu artigo, se você se refere ao link da página anterior, foi lido. Talvez me tenha escapado alguma coisa. Eu vou reler.

Sim, é claro que os preditores estão lá para prever o movimento dos preços. Mas a sua sobreposição + preço dá um sinal para a entrada, ou seja, prevêem a reacção da caixa negra inicial (treino). A questão é semelhante à da galinha ou do ovo primeiro? Talvez a discordância seja puramente uma questão de terminologia.

Do ponto de vista ideológico, pelo menos em sistemas com lógica rígida, é mais correto prever o preço, enquanto a variável de saída é o resultado do processamento.


Tudo bem, mas você deve prever o preço usando os dados a partir dos quais ele muda. Há uma observação muito interessante. Se o input é a razão do preço, então o resultado do trabalho fora da amostra será ligeiramente pior do que o treinamento, ou seja, NS trabalha em treinamento e ainda trabalha em "Fora da amostra", mas pior, quando significativamente, quando não. Tudo depende do modelo. E quando você dá nos dados de entrada que não dependem do preço, a operação no setor "Out of sample" se transforma em uma CoinFlip, moeda ao ar livre. Nunca se sabe quando é que a NS vai cometer um erro. Como esta....
 
Mihail Marchukajtes:

Tudo bem, mas você deve prever o preço com a ajuda dos dados de onde ele muda. Há uma observação muito interessante. Se o input é a razão do preço, então o resultado de trabalhar fora da amostra será ligeiramente pior do que em treinamento, ou seja, NS trabalha em treinamento e ainda trabalha em "Fora da amostra", só que pior, quando significativamente, quando não. Tudo depende do modelo. E quando você alimenta os dados de entrada que dependem do preço, a operação no setor "Fora de amostra" se transforma em uma CoinFlip, moeda ao ar livre. Nunca se sabe quando é que a NS vai cometer um erro. Como esta....

Na verdade, não temos dados dos quais dependam o preço e as suas alterações. E não pode haver, a não ser que estejamos infiltrados. Em geral, estamos procurando dados indiretos (secundários) sobre o futuro no próprio comportamento dos preços. Ou seja, os nossos dados dependem precisamente do preço e do seu comportamento no passado e no presente.

E esta afirmação:devemos prever o preço com os dados a partir dos quais ele muda. Você não pode concordar com isso. Mas quanto maior for a qualidade dos dados de entrada, melhores são os resultados, é evidente.

------------------------------

Comecei a preparar os preditores para a migração para o MoD. Queria fazer tudo isso em R. Acontece que o R, com toda a sua potência, não está de todo adaptado à modelagem e ao processamento de sinais. Infelizmente. Tudo é extremamente inconveniente.

Terei que transferir todo o trabalho preparatório para o SciLab, onde tudo é muito mais fácil e conveniente. SciLab é um ambiente com uma interface e ideologia muito próximas ao R, e é projetado para processamento de dados e modelagem matemática. Tem tudo, desde engenharia de rádio até aerodinâmica e muita matemática que está completamente ausente em R. Especificidade, no entanto. Os métodos Stat e Data Mining no SciLab são bastante bem representados, mas neste sentido, o SciLab é significativamente inferior ao R na escolha de tais métodos. Não se pode fazer uma floresta SanSanitch no SciLab). No entanto, existem muitos pacotes instalados, mas nada parece estar perto.

Em geral, tenho que combinar diferentes IDEs para resolver diferentes tarefas e transferir dados entre os ambientes. Que pena. Eu queria fazer tudo da melhor maneira (com R) mas acabou por ser o mesmo de sempre.