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

 

Versão final das funções do Expert Advisor mql5 com programa python.

Há 2 funções no conselheiro, uma atualiza o tempo em arquivo e a segunda lê o sinal de negociação real em arquivo, que é formado no programa python.

void OnTick()
  {
   if(!isNewBar())
      return;
   file_refresh_time();
   sig =StringToDouble(file_read_signal());
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string  file_refresh_time()
  {
   string time  = TimeToString(TimeCurrent());
   bool read =false;
   string file_buff[];
   ArrayResize(file_buff,1);
   file_buff[0] = time;
   ArrayResize(file_buff,2);
   file_buff[1] = "not_actual";
   ArrayResize(file_buff,3);
   file_buff[2] = DoubleToString(sig);

   while(1)
     {
      int h=FileOpen("test.txt",FILE_WRITE|FILE_ANSI|FILE_TXT|FILE_COMMON);
      if(h==INVALID_HANDLE)
        {
         continue;
        }
      if(h!=INVALID_HANDLE)
        {
         for(int i=0; i<ArraySize(file_buff); i++)
            FileWrite(h,file_buff[i]);

         FileClose(h);

         break;
        }

     }
   return("0");
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string  file_read_signal()
  {
   string sg="0.5";
   bool read =false;
   while(1)
     {
      if(read==false)
        {
         string time  = TimeToString(TimeCurrent());
         int h=FileOpen("test.txt",FILE_READ|FILE_ANSI|FILE_TXT|FILE_COMMON);
         if(h==INVALID_HANDLE)
           {
            continue;
           }
         if(h!=INVALID_HANDLE)
           {
            int cnt=0;
            while(!FileIsEnding(h))
              {
               string str=FileReadString(h);
               StringTrimLeft(str);
               StringTrimRight(str);
               if(cnt == 1 && str == "actual")
                 {
                  read =true;
                 }

               if(read ==true && cnt == 2)
                 {
                  sg =str;
                 }
               cnt++;
              }
            FileClose(h);
            if(read ==true)
              {
               FileClose(h);
               break;
              }
           }

        }

     }
   return(sg);
  }

No programa python no estado "not_actual" é efectuada a leitura da hora actual, cálculo do sinal real e a sua gravação no ficheiro.

terminal_dir = "C:/Users/AdmNB0225/AppData/Roaming/MetaQuotes/Terminal/Common/Files/"
a=0
old_rez = 0
rez = []
while True:

    try:
        with open(terminal_dir+'test.txt', 'r') as file:
            rez = [row.strip() for row in file]
    except IOError:
        pass

    if rez != old_rez and len(rez)!=0:
        print(rez)
        if rez[1] == "not_actual":
            rez[1] = "actual"
            date = rez[0]
            date = datetime.strptime(date, '%Y.%m.%d %H:%M')
            rez[2] = get_signal(date)


            try:
                with open(terminal_dir + 'test.txt', 'w') as file:
                    file.writelines(str(i)+'\n' for i in rez)
            except IOError:
                pass

    old_rez = rez
    # time.sleep(2)

Esta cola não é muito rápida, mas funciona de forma independente. Funciona no Testador de Estratégia, em modo de demonstração, não o experimentei em modo real. Se houver alguma pergunta ou ideia de como pode ser melhorado, escreva, senão o tema fica parado...

 
welimorn:

Versão final das funções do Expert Advisor mql5 com programa python.

Há 2 funções no conselheiro, uma atualiza o tempo em arquivo e a segunda lê o sinal de negociação real em arquivo, que é formado no programa python.

No programa python no estado "not_actual" é efectuada a leitura da hora actual, cálculo do sinal real e a sua gravação no ficheiro.

Esta cola não é muito rápida, mas funciona de forma independente. Funciona no Testador de Estratégia, em modo de demonstração, não o experimentei em modo real. Se há, perguntas ou idéias como é possível melhorar, escreva, e esse tema como parado ...

Eu fiquei atolado pela velocidade do laptop quando mudei para modelos mais complicados do tipo recorrência. Não parece poder pesquisar mais nada sensato.

tem um novo com um bom videoadaptador ) precisa de o ter para o Ano Novo

 
Maxim Dmitrievsky:

Fiquei preso na velocidade do meu laptop quando mudei para modelos mais complexos do tipo recorrência. Não parece poder pesquisar mais nada sensato.

tenho um novo com um bom videoadaptador ) preciso de comprar um presente para o novo ano

Porquê o portátil? As tarefas são pesadas.

 
Valeriy Yastremskiy:

Porquê o portátil? As tarefas são pesadas.

Porque não se pode pôr uma mesa no estômago à noite, no sofá.

não é assim tão pesado, mas um ultrabook com 2 núcleos móveis não é óptimo.

Eles nem sequer precisam de uma placa gráfica, apenas de uma boa CPU.

 
Maxim Dmitrievsky:

porque não se pode pôr uma mesa no estômago à noite, no sofá.

não é assim tão pesado, mas um ultrabook com 2 núcleos móveis não é óptimo.

na verdade, você nem precisa de uma placa de vídeo, apenas de um bom CPU

no tablet, traduzir a imagem de um computador normal, o rádio do rato de um computador + teclado

 
Maxim Dmitrievsky:

porque não se pode pôr uma mesa no estômago à noite, no sofá.

não é assim tão pesado, mas um ultrabook com 2 núcleos móveis não é óptimo.

na verdade, você nem precisa de uma placa de vídeo, apenas de um bom CPU

Poço barriga e tarefa pesada)))) Uma fazenda também não faria mal para essas tarefas)))) Um cinco i9 com 32gb de RAM e um ssdc))))) leve

 

De que servem estas capacidades se treinas o inferno com o inferno com o inferno com o inferno com o inferno com o inferno com o alvo...

o resultado é óbvio, mesmo que sejam 100 i9s.

Aleksey Vyazmikin:

O mesmo gradiente é usado nos reforços. É apenas informação para expandir conhecimentos e métodos adequados ao MO.

Você pode ter esquecido, mas eu não consegui ver de todo.

 
mytarmailS:

Ok, e depois? Fizeste alguma coisa? Ou apenas atiraste o vídeo e esqueceste-te?

Não, não consegui, não consigo resolver tal problema - é um algoritmo complicado e tenho de escrever o meu próprio impulso.

 
Aleksey Vyazmikin:

Não, não tenho, não consigo resolver tal problema - é um algoritmo complicado, e preciso de escrever o meu próprio impulso.

está escrito há muito tempo, você pode fazê-lo em 5 linhas....

Livre-se dele sem mql, tudo o que ele pode fazer é abrir/fechar negócios

 
Maxim Dmitrievsky:

Fiquei preso na velocidade do meu laptop quando mudei para modelos mais complexos do tipo recorrência. Não parece poder pesquisar mais nada sensato.

Escolhi um novo com um bom videojogo ) tenho de arranjar um para a véspera de Ano Novo.

Eu tenho o mesmo problema. Tenho que armazenar todas as interpretações gráficas do quociente em 50x50 pixels)) fazer uma imagem menor não faz sentido, a precisão diminui drasticamente. Uma imagem maior aumentaria a largura da camada convolucional, e a profundidade da rede em geral, o que aumentaria consideravelmente o tempo de treinamento. Estou a poupar para uma máquina nova, também... Ao mesmo tempo, estou a tentar travar a aprendizagem na GPU.