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

 
Maxim Dmitrievsky:

Aqui está um destes. Há apenas 12 fichas, não 24.

Eu tenho erros

>>> print(train_score, " ", tst_score)

1.0 0.5454545454545454

Esta é uma alfabetização para o tema Maxim puramente a partir do ombro. O ficheiro que acabaste de me enviar é um total de 12 entradas. Para começar com o topo, preciso ter 20-24 movimentos, depois posso começar com 11 entradas (para as minhas capacidades isto é o máximo) e ir até elas, reduzindo o número de entradas e navegando por elas. Quando optimizo de cima para baixo, depois as dez primeiras corridas individuais, faço-o de forma a seleccionar a melhor corrida e iniciar o treino normal a partir dela. Se não tiver entradas suficientes, normalmente começo por baixo com 5 entradas e tento acumular o número de entradas e selecionar a pior versão das dez primeiras corridas, a fim de adiar o início na área de sobreposição máxima durante o treinamento. No primeiro caso, estou a poupar ferozmente os meus recursos. No segundo caso eu escolho a pior opção e tento passar por todas as variantes possíveis.

O que você tem esses dados é uma treta. Veja o que consegui e confio nestes resultados, só não confio nas suas sugestões, que espreitam o futuro. Maxim, porque não tens vergonha de fazer isso? As crianças estão a observar-nos e tu estás a tentar mostrar-lhes fotografias e a pensar porque é que não funciona com feedbacks?

Vamos apenas dar-lhe agora o modelo e arquivo de treinamento que você sabe que número de entrada corresponde às suas designações, mas se você não mostrar o trabalho do modelo em loops de feedback eu não vou fazer muito mais. Todos querem saber como funciona. Então, a máquina de barbear não funciona de graça.


Apenas um extrato de código básico.

vv0[q]=0;//12    вместо нулей подай значения своих входов
vv1[q]=0;//10
vv2[q]=0;//8
vv3[q]=0;//2
double Ress1=getBinaryClassificator1(vv0[q],vv1[q],vv2[q],vv3[q]);  //Вызов результатов полиномов 
double Ress11=getBinaryClassificator2(vv0[q],vv1[q],vv2[q],vv3[q]);

double getBinaryClassificator1(double v0, double v1, double v2, double v3) {
   double x0 = 2.0 * (v0 + 0.00352160000000379) / 0.0060209999999973896 - 1.0;
   double x1 = 2.0 * (v1 + 0.00321680000000524) / 0.006628599999996879 - 1.0;
   double x2 = 2.0 * (v2 + 0.00257640000000836) / 0.00577599999999978 - 1.0;
   double x3 = 2.0 * (v3 + 0.00197520000000417) / 0.00414859999999794 - 1.0;
   double decision = 0.6226912928759895 * x0
  -0.013192612137203167 * x0 * x1
  + 0.9920844327176781 * x2
  + 1.3060686015831136 * x0 * x2
  -3.5395778364116093 * x1 * x2
  -1.1394019349164468 * x3
  + 2.5659630606860158 * x0 * x3
  + 0.5395778364116095 * x1 * x3
  + 0.31090589270008795 * sigmoid(x0)
  + 0.009674582233948988 * sigmoid(x1)
  -0.0839929639401935 * sigmoid(x0 + x1)
  + 0.012313104661389622 * sigmoid(x2)
  + 0.30474934036939316 * sigmoid(x0 + x2)
  -0.5958663148636764 * sigmoid(x1 + x2)
  + 0.002638522427440633 * sigmoid(x0 + x1 + x2)
  -0.05013192612137203 * sigmoid(x3)
  + 0.014951627088830254 * sigmoid(x0 + x3)
  -0.13412489006156553 * sigmoid(x1 + x3)
  -0.006596306068601583 * sigmoid(x0 + x1 + x3)
  + 0.04397537379067722 * sigmoid(x2 + x3)
  + 0.1363236587510994 * sigmoid(x0 + x2 + x3)
  + 0.6952506596306068 * sigmoid(x1 + x2 + x3)
  -0.29331574318381703 * sigmoid(x0 + x1 + x2 + x3)
  + 1.0738786279683377 * sigmoid(1.0 + x0)
  -1.073438874230431 * sigmoid(1.0 + x1)
  -0.4256816182937555 * sigmoid(1.0 + x0 + x1)
  + 1.0708003518029903 * sigmoid(1.0 + x2)
  + 0.9656992084432717 * sigmoid(1.0 + x1 + x2)
  -3.1314863676341247 * sigmoid(1.0 + x3)
  -0.8500439753737907 * sigmoid(1.0 + x0 + x3)
  + 1.0281442392260334 * sigmoid(1.0 + x1 + x3)
  + 0.8544415127528584 * sigmoid(1.0 + x0 + x1 + x3)
  -0.21328056288478453 * sigmoid(1.0 + x0 + x1 + x2 + x3);
   return decision;
}
double sigmoid(double x) {
   if (MathAbs(x) < 1.0) {
      return 2.0 * signum(x) - x;
   }
   return signum(x);
}
double getBinaryClassificator2(double v0, double v1, double v2, double v3) {
   double x0 = 2.0 * (v0 + 0.00518320000001116) / 0.00871940000000327 - 1.0;
   double x1 = 2.0 * (v1 + 0.00542880000001134) / 0.01145720000000306 - 1.0;
   double x2 = 2.0 * (v2 + 0.00578500000001125) / 0.00872540000000166 - 1.0;
   double x3 = 2.0 * (v3 + 0.00496500000001143) / 0.00698900000000191 - 1.0;
   double decision = -0.17965023847376788 * x0
  + 1.7416534181240064 * x1
  + 0.5389507154213037 * x0 * x1
  + 0.5023847376788553 * x2
  -0.16653418124006358 * x1 * x2
  -0.06836248012718601 * x3
  -0.8191573926868044 * x1 * x3
  -0.029809220985691574 * sigmoid(x0)
  -0.009141494435612083 * sigmoid(x1)
  + 0.00794912559618442 * sigmoid(x0 + x1)
  + 1.7150238473767885 * sigmoid(x2)
  -1.2686804451510334 * sigmoid(x0 + x2)
  + 0.051271860095389504 * sigmoid(x1 + x2)
  + 0.05405405405405406 * sigmoid(x0 + x1 + x2)
  -1.095389507154213 * sigmoid(x3)
  -0.2444356120826709 * sigmoid(x0 + x3)
  + 0.34737678855325915 * sigmoid(x1 + x3)
  + 0.9264705882352942 * sigmoid(x0 + x1 + x3)
  + 0.16176470588235295 * sigmoid(x2 + x3)
  -0.7682829888712241 * sigmoid(x0 + x2 + x3)
  -0.16335453100158984 * sigmoid(x1 + x2 + x3)
  + 0.7551669316375199 * sigmoid(x0 + x1 + x2 + x3)
  -2.048489666136725 * sigmoid(1.0 + x0)
  -0.31756756756756754 * sigmoid(1.0 + x1)
  -0.08982511923688394 * sigmoid(1.0 + x0 + x1)
  + 1.4666136724960255 * sigmoid(1.0 + x1 + x2);
   return decision;
}
double signum(double x) {
  if (x == 0.0) {
    return 0.0;
  }
  if (x > 0.0) {
    return 1.0;
  }
  return -1.0;
}

A partir do arquivo anexo identifico o número de entradas de acordo com as minhas marcações. Estou à espera dos resultados do teste OMF.

Arquivos anexados:
Si_Splice_10.txt  102 kb
 

Bem e, além disso, as estimativas do modelo.

Os preditores indicam o número de colunas no arquivo

258 número total de vectores. Eu removi a classe 0 e deixei a classe 2 renomeada para zero, pois eles foram balanceados em número com a classe 1, 19,60 é erro quadrático, ou melhor, a diferença entre linear reto e quadrático deve tender para zero, 79,141 é generalização capacidade, quando você chega a 100 a diferença entre os erros diminui, 69,767 é espicificação. O gráfico de controle total é 75 com uma Generalizabilidade de 70. A resposta é NÃO SABER que temos 77 vetores do total da amostra onde o gráfico de controle tinha 17.

Na verdade, obtive piores resultados no treino, mas na secção de controlo são muito mais elevados. Além disso, não era uma secção de teste como a sua, mas uma secção de controlo, aquela que a rede não tinha visto de todo. O teste é quando ele treina no treinamento para que funcione bem no teste, ou seja, potencialmente a rede vê a seção de teste durante o treinamento. O teste um não. Perguntas????

 

Por favor, diga-me como encontrar uma encomenda com um lucro máximo (mql4).

Muito obrigado.

 
a5l3e5x:

Por favor, diga-me como encontrar uma encomenda com um lucro máximo (mql4).

Muito obrigado.

Meu amigo, ninguém usa MT4, uma ordem tem um parâmetro de lucro. Devemos tentar todas as ordens para ler este parâmetro e escolher o máximo. É isso mesmo... em poucas palavras...
 
Mihail Marchukajtes:

Interessado neste desafio?

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Aprendizagem da Máquina no Comércio: Teoria, Prática, Comércio e Além

Rorschach, 2020.07.14 19:21

Quem quer praticar? Entrada do gráfico superior, terceira saída. 2 e 4 são teste. Alguns esclarecimentos, 1 incremento de gráfico, 3 sinais de gráfico para comprar algum sistema "clássico". A propósito, pergunta popping, ns é capaz de emular ligic e com indicadores de memória, algo como um ziguezague e indicador máximo/mínimo?



 
Rorschach:

Essa tarefa é interessante?


Suponho que sim, mas estás a sugerir que eu entre dígitos de uma fotografia?
 
Mihail Marchukajtes:
Ok, mas você está me pedindo para entrar as figuras de uma foto?

Então eu vou preparar os dados, 350 exemplos, 100 entradas vão servir?

 
Rorschach:

Vou preparar os dados, então, 350 exemplos, 100 entradas servem?

Sim, é fixe em geral, mas eu mantenho a ideia de que os inputs devem ser três vezes mais exemplos para que o algoritmo tenha algo para escolher. Acho que vou fazer mais um vídeo, vai demorar muito tempo a escrever. Há uma teoria de matriz quadrada da qual cheguei a esta conclusão... Prepare uma amostra...
 

Vejam isto, pessoal, não por causa da publicidade. Fui a um dos dias abertos deles e pensei em parar de ser autodidata, para o caso de não estar a imaginá-lo bem. Eu queria obter uma confirmação oficial dos seus conhecimentos, por assim dizer. Ainda no outro dia li sobre Elon Musk e seu Neurolink, que será apresentado em agosto. E aqui como se a carta chegasse, então eu não entendia como baixar o conteúdo, então olhe para a foto.

Em geral o tema é interessante, então podemos nos reunir às escondidas e falar sobre o essencial? O que você diz?

 
Mihail Marchukajtes:
Sim, isso é muito legal, mas acho que deveria haver três vezes mais exemplos para que o algoritmo tenha muito por onde escolher. Sinto que devia gravar mais um vídeo, demoraria muito tempo a escrevê-lo. Há uma teoria de matriz quadrada da qual cheguei a esta conclusão... Prepare uma amostra...

Os meus resultados estão detalhados aqui. Para validação, multiplico a série original por -1

Arquivos anexados:
Files.zip  4 kb