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

 
Mihail Marchukajtes:
Agora estou a ver. Em outras palavras, vamos primeiro treinar, digamos, uma rede sem um professor. Depois escrevemos os valores obtidos nos pesos do classificador e, em seguida, o classificador é treinado com um professor. Suponha que recebemos pesos de afinação guiados por neurónios, os pesos continuam a ser optimizados????? Em outras palavras, através da pré-aprendizagem sem professor, estabelecemos pesos iniciais para o classificador que o leva ao mínimo global. É assim que funciona?

A aprendizagem "profunda" faz sentido devido à atenuação (sigmóide)/crescimento explosivo (hipertangente) dos derivados durante a propagação para trás, quando as camadas se tornam significativamente mais do que 4-5, este problema foi contornado por uma "muleta" de pré-treinamento camada por camada por meio de autocodificadores ou RBM, que essencialmente realizam a selecção de características hierárquicas não lineares (como PCA apenas não lineares e muitas vezes), que depois podem ser facilmente manuseadas por camadas de alto nível, depois por backprop habitual rapidamente afinar todo o sistema pelo conjunto de objectivos (com um professor).

Ver: https://www.youtube.com/watch?v=iowsPfk7uUY

Claro, há muitos "especialistas" com artigos e comeram os seus cães na ZZ, que sabem de cor que pacote na R deve ser usado em todos os casos, por isso vou dizer no ar, ninguém vai acreditar em mim de qualquer maneira, redes neurais profundas, como a CNN, quando você entende como elas funcionam, você não pode usá-las para previsões de mercado, porque uma hierarquia tão grande de recursos só é necessária para fotos, vídeos e PNL, porque há uma grande hierarquia, nosso mundo é construído dessa forma, os objetos são feitos de objetos, etc. o mesmo com a PNL porque a linguagem é hierárquica. Não há nada assim no mercado, você troca uma espécie de prazo, o que acontece com os menores é barulho para você. Os investidores tomam uma decisão sobre um período de tempo, eles não dependem do que os scalpers e HFTs, muito menos os hedgers, os arbitrageurs, etc. decidiram. E a hierarquia na rede profunda implica coerência, o pequeno define o grande, uma avalanche consiste em flocos de neve.

11. Data mining. Глубокие нейронные сети
11. Data mining. Глубокие нейронные сети
  • 2015.11.24
  • www.youtube.com
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Методы обработки больших объемов данных" (осень 2015) Лекция №11 - "Глубокие нейронные сети" Лектор ...
 
Gianni:

Parece fixe, mas é um pouco caro.

1 Eu gostaria de praticar em algo grátis e ver como funciona em tempo real sem atraso, e há uma demonstração com um atraso gigantesco.

2 Você pode descrever em poucas palavras como tal sinal é usado na negociação e no MO? Se não for um segredo, quando notícias importantes são divulgadas, você tem tempo para negociar, ou alguém começa a chegar ao mercado um segundo, meio segundo antes e morde a isca?

1 Par com websites.

2 Comprar melhor do que o esperado, vender pior do que o esperado.

 
A avalanche:

A aprendizagem "profunda" faz sentido por causa da atenuação (sigmóide)/crescimento explosivo (hipertangente) dos derivados durante a propagação para trás, quando as camadas se tornam significativamente mais do que 4-5, este problema é contornado por uma "muleta" de pré-aprendizagem camada por camada através de auto-encoders ou RBM, que essencialmente realizam a selecção de características hierárquicas não lineares (como PCA apenas não lineares e muitas vezes), que depois podem ser facilmente manuseadas por camadas de alto nível, depois por backprop habitual rapidamente afinar todo o sistema pelo conjunto de objectivos (com um professor).

Ver: https://www.youtube.com/watch?v=iowsPfk7uUY

Claro, há muitos "especialistas" com artigos e comeram os seus cães na ZZ, que sabem de cor que pacote na R deve ser usado em todos os casos, por isso vou dizer no ar, ninguém vai acreditar em mim de qualquer maneira, redes neurais profundas, como a CNN, quando você entende como elas funcionam, você não pode usá-las para previsões de mercado, porque uma hierarquia tão grande de recursos só é necessária para fotos, vídeos e PNL, porque há uma grande hierarquia, nosso mundo é construído dessa forma, os objetos são feitos de objetos, etc. o mesmo com a PNL porque a linguagem é hierárquica. Não há nada assim no mercado, você troca uma espécie de prazo, o que acontece com os menores é barulho para você. Os investidores tomam uma decisão sobre um período de tempo, eles não dependem do que os scalpers e HFTs, muito menos os hedgers, os arbitrageurs, etc. decidiram. E a hierarquia na rede profunda implica coerência, que o pequeno define o grande, os flocos de neve compõem a avalanche.

Obrigado, eu definitivamente vou ver o vídeo. Mas eu gostava mais da abordagem do Reshetov. Encontrei o artigo dele onde ele explica em detalhes como o seu preditor é construído, então. Estou ansioso por refazer o código para o artigo. Isso está a ser tratado por um moderador. E bem-vinda à discussão, porque tenho a minha opinião sobre a preparação de dados e formação em geral.....
 
O:

O aprendizado "profundo" faz sentido devido à atenuação (sigmóide)/crescimento explosivo (hipertangente) dos derivados durante a propagação para trás, quando as camadas se tornam significativamente mais do que 4-5, este problema foi contornado por uma "muleta" de pré-treinamento camada por camada por meio de autocodificadores ou RBM, que essencialmente realizam a selecção de características hierárquicas não lineares (como PCA apenas não lineares e muitas vezes), que depois podem ser facilmente manuseadas por camadas de alto nível, depois por backprop habitual rapidamente afinar todo o sistema pelo conjunto de objectivos (com um professor).

Ver: https://www.youtube.com/watch?v=iowsPfk7uUY

Claro, há muitos "especialistas" com artigos e comeram os seus cães na ZZ, que sabem de cor que pacote na R deve ser usado em todos os casos, por isso vou dizer no ar, ninguém vai acreditar em mim de qualquer maneira, redes neurais profundas, como a CNN, quando você entende como elas funcionam, você não pode usá-las para previsões de mercado, porque uma hierarquia tão grande de recursos só é necessária para fotos, vídeos e PNL, porque há uma grande hierarquia, nosso mundo é construído dessa forma, os objetos são feitos de objetos, etc. o mesmo com a PNL porque a linguagem é hierárquica. Não existe tal coisa no mercado, você troca uma espécie de cronograma, o que acontece com os menores é ruído para você. Os investidores tomam uma decisão sobre um período de tempo, eles não dependem do que os scalpers e HFTs, muito menos os hedgers, os arbitrageurs, etc. decidiram. E a hierarquia na rede profunda implica coerência, que o pequeno define o grande, os flocos de neve formam uma avalanche.

Por alguma razão, a conversa entra constantemente em uma discussão sobre os méritos e deméritos de um modelo ou outro.

Embora a minha experiência não seja tão extensa, a contribuição dos próprios modelos para o sucesso da negociação é muito pequena.

É a definição do alvo e dos seus preditores que o define.

No exemplo de ZZ, tentei muitas vezes mostrar que mesmo uma variável-alvo tão óbvia, ilustrativa e bonita como ZZ não é a mesma e tem obstáculos intransponíveis em um exame mais detalhado.

Se falamos de preditores, é bastante óbvio para mim, como pessoa que esteve envolvida em economia toda a sua vida, que:

  • um preditor deve ser relevante para a variável alvo - capacidade preditiva para a variável alvo
  • o preditor deve estar à frente da variável alvo

Se nos concentrarmos apenas em resolver estes dois fundamentos para a previsão econômica e forex, então o sucesso só virá destes dois parâmetros. E selecionar o modelo mais adequado ao alvo e seus preditores só pode melhorar marginalmente o desempenho, pode dar algumas considerações válidas sobre a vida útil do modelo, sem necessidade de treinamento adicional.


Mais uma vez, peço um foco na variável alvo e a justificação dos preditores para esta variável alvo em particular.

PS.

Entrando nas inter-relações dos pares de moedas. Tem resultados surpreendentes para mim. Em particular:

  • Os pares de moedas EURUSD e GBPUSD não estão relacionados um com o outro. E isto apesar da correlação amplamente publicada. Construir modelos VAR nestes pares é inútil.
  • O AUDUSD não tem nada a ver com os principais pares de moedas.

 
SanSanych Fomenko:

Entrando na inter-relação de pares de moedas. Tem resultados surpreendentes para mim. Em particular:

  • Os pares de moedas EURUSD e GBPUSD não estão relacionados um com o outro. E isto apesar da correlação amplamente publicada. Construir modelos VAR nestes pares é inútil.
  • O AUDUSD não tem nada a ver com os principais pares de moedas.

seria provavelmente correcto dizer a razão de tais inferências
 
SanSanych Fomenko:

Por alguma razão, a conversa se desvia constantemente para uma discussão sobre os méritos e deméritos de certos modelos.

Embora a minha experiência não me diga muito que a contribuição para o sucesso do comércio é muito pequena.

É a definição do alvo e dos seus preditores que o define.

No exemplo de ZZ, tentei muitas vezes mostrar que mesmo uma variável-alvo tão óbvia, ilustrativa e bonita como ZZ não é a mesma e tem obstáculos intransponíveis em um exame mais detalhado.

Se falamos de preditores, é bastante óbvio para mim, como pessoa que esteve envolvida em economia toda a sua vida, que:

  • o preditor deve ser relevante para a variável alvo - capacidade preditiva para a variável alvo
  • o preditor deve estar à frente da variável alvo

Se nos concentrarmos apenas em resolver estes dois fundamentos para a previsão econômica e forex, então o sucesso só virá destes dois parâmetros. E selecionar o modelo mais adequado ao alvo e seus preditores só pode melhorar marginalmente o desempenho, pode dar algumas considerações válidas sobre a vida útil do modelo, sem necessidade de treinamento adicional.


Mais uma vez, peço um foco na variável alvo e a justificação dos preditores para esta variável alvo em particular.

PS.

Entrando nas inter-relações dos pares de moedas. Tem resultados surpreendentes para mim. Em particular:

  • Os pares de moedas EURUSD e GBPUSD não estão relacionados um com o outro. E isto apesar da correlação amplamente publicada. Construir modelos VAR nestes pares é inútil.
  • O AUDUSD não tem nada a ver com os principais pares de moedas.

Concordo contigo aqui, mas gostaria de fazer uma correcção. Esclarecimento sobre o primeiro ponto acima de tudo. Não está relacionado com o alvo, mas a razão para isso. Ou seja, o preditor mudou, o alvo mudou, não o inverso. E então o segundo ponto simplesmente cai fora. Não é necessária nenhuma antecipação. É suficiente que a entrada seja a causa da saída. E mais uma vez, todos se esquecem onde trabalhas. O principal na troca é o preço. Encontre os inputs, que são a causa das mudanças de preço e qualquer TS, asseguro-lhe, absolutamente qualquer TS funcionará como deveria. Mas isto é um segredo!!!!! Não digas a ninguém.... Vocês deviam ler o meu artigo de qualquer maneira. Não penses que não estou a promover nem nada. Claro que estou preocupado por ser o único que o lê :-) só a brincar. Por isso, depois de ler muitas perguntas, vai cair fora. Aqui, além da própria IA (vamos assumir que você tem uma grade), você precisa organizar corretamente a coleta de dados, ter cuidado com os indicadores, para que não ocorra o espreitar, etc. Acho que este artigo mostra uma das abordagens do mercado. Eu costumava estar tão envolvido nas grelhas que o comércio acabaria por se tornar uma segunda natureza. Penso que agora existem tais especialistas, para quem a negociação é apenas uma questão de experimentar.....
 
Quanto à aplicação de Redes Neurais Profundas no comércio, há uma lógica, mas o número de manipulações a serem realizadas é bastante grande, assumindo que a rede funciona no relógio, mas analisa começando com minutos, minutos generalizados, depois cinco minutos generalizados, etc. IMHO
 

Mihail Marchukajtes:
Concordo contigo aqui, mas gostaria de fazer uma correcção. Antes de mais nada, gostaria de esclarecer o primeiro ponto. Não para se relacionar com o alvo, mas para ser a razão para isso. Ou seja, o preditor mudou, o alvo mudou, não o inverso. E então o segundo ponto simplesmente cai fora. Não é necessária nenhuma antecipação. É suficiente que a entrada seja a causa da saída. E mais uma vez, todos se esquecem onde trabalhas. O principal na troca é o preço. Encontre os inputs que são a causa das alterações de preços e qualquer TS, asseguro-lhe, absolutamente qualquer TS funcionará como deveria.

=================================================================================

Este é absolutamente o ponto certo. Somente eu reformularia: O alvo deve ser gerado pelo(s) preditor(es).

 
mytarmailS:
No entanto, você não tem uma resposta para a questão de como implementá-la usando R, se eu entendi corretamente.

A resposta não é assim tão simples. Aqui está uma maneira, por exemplo, com um neurônio, mas você precisa entender como um neurônio funciona, que fórmulas ele tem, etc.

Suponha que haja um neurônio simples, com quatro entradas, três perceptrons em uma camada oculta, e uma saída. Um neurónio assim em linguagem matemática funcionaria assim:

#include <math.h>
double sigmoid(double x)
{
     return 1.0 / (1.0 + exp(-x));
}

double NeuralNetwork(double* input, double* bias, double* weight){
    double perc_output[3]; //временный массив для хранения промежуточных результатов каждого перцептрона

    double perc_output[0] = sigmoid(bias[0] + input[0] * weight[0] + input[1] * weight[1] + input[2] * weight[2]  + input[3] * weight[3]);
    double perc_output[1] = sigmoid(bias[1] + input[0] * weight[4] + input[1] * weight[5] + input[2] * weight[6]  + input[3] * weight[7]);
    double perc_output[2] = sigmoid(bias[2] + input[0] * weight[8] + input[1] * weight[9] + input[2] * weight[10] + input[3] * weight[11]);
    double result         = sigmoid(bias[3] + perc_output[0] * weight[12] + perc_output[1] * weight[13] + perc_output[2] * weight[14]);
    return result;
}


Agora você pode pegar uma tabela com exemplos de treinamento, e encontrar o resultado para cada exemplo

double nn_input[4]; //массив со входными значениями

double nn_bias[4]; //массив сдвигов, на текущем этапе тут будут рандомные значения
double nn_weight[15]; //массив весов, на текущем этапе тут будут рандомные значения

//для всех обучающих примеров находим по очереди результат нейронки. При этом массивы nn_bias и nn_weight не должны меняться
double results[trainSampleCount];
// trainSampleCount = число обучающих примеров
for(int i=0; i<trainSampleCount; i++){
  nn_input = trainSamples[i]; //синтаксис реально не такой, нужно из обучающей таблицы взять i-тую строку и запихнуть в этот массив nn_input
  results[i] = NeuralNetwork(nn_input, nn_bias, nn_weight);
}

A seguir, por exemplo, trace o lucro das previsões na matriz de resultados e avalie-o.

O código acima pode ser empurrado para o otimizador. O optimizador deve encontrar valores adequados de pesos e turnos em nn_bias e nn_máximas de peso:
1) trocar os valores de nn_bias e nn_peso de acordo com os seus algoritmos
2) encontrar resultados para todos os exemplos de treinamento
3) traçar o gráfico de comércio
4) estimar o gráfico de comércio, usar esta estimativa como um valor de aptidão para os passos de optimização subsequentes
5) Repita os passos 1-4 do seu algoritmo de otimização até que o gráfico de lucro se torne aceitável.

Isso é tudo, mas há uma nuance - aqueles otimizadores que eu tentei não conseguem lidar com pesos, eles apenas encontram um mínimo local quando todos os resultados são iguais a 0,5 para minimizar o erro médio e ficar preso a ele. Tens de aplicar algum truque aqui, não tenho mais do que isso.
Quanto mais complexa for a estrutura da neurônica - mais pesos serão, e mais difícil será para o algoritmo de otimização selecioná-los, na neurônica de grande porte eles simplesmente empatam e quase não melhoram o resultado inicial.

 
Dr.Trader:

Você tem que aplicar algum tipo de truque aqui.

O truque é realmente conhecido, só que eu não vi nenhum software para implementá-lo. Derivados.

Neurônica, traçado de equilíbrio, avaliação gráfica são todas fórmulas. E assim você pode encontrar derivados de nn_bias e nn_peso em relação à estimativa final.
Em algum vídeo de treinamento sobre MO o palestrante falou sobre novas linguagens de programação do futuro, por exemplo, alguém em algum lugar está tentando fazer uma linguagem com cálculo automático de derivadas para qualquer variável dentro de qualquer fórmula complexa (não por recálculo com um pequeno deslocamento de valor, mas analiticamente). Este é o tipo de coisa que ajudaria.

Isto é, normalmente tomamos um exemplo de treino, e para cada peso determinar analiticamente quanto melhora o resultado, e o peso é ligeiramente aumentado ou diminuído em conformidade. Precisamos fazer o mesmo, mas não um exemplo de cada vez, mas para todos, e a derivada não é procurada para os resultados do treinamento um por um, mas imediatamente para a avaliação final do gráfico.


E uma pequena desvantagem - tudo isto sob esta forma não ajudará na negociação. Vamos apenas ajustar os pesos para o gráfico ideal, vamos ter 100% de sobretreinamento e cair sobre os novos dados. Para um lucro real será necessário mexer com a estrutura da neurônica, no final será provavelmente algo como uma rede convolucional.