L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 1147

 
Maxim Dmitrievsky:

il compito è quello di rendere i due pezzi indistinguibili (gli stessi errori, ecc.), in questo contesto, la definizione di ciò che si agita perde ogni significato

(In realtà, forse hai ragione, l'esperienza reale può solo fornire una risposta oggettiva nel nostro mestiere)

 
FxTrader562:

Mostra un errore: " Funzione di gestione degli eventi non trovata".

nessun errore

 
FxTrader562:

 
FxTrader562:

In realtà, sarebbe davvero fantastico se si potessero fare dei cambiamenti qui...

che cambia

 
FxTrader562:

In realtà, sarebbe fantastico se poteste cambiare qui:

Ho provato questo ... ma non sapevo se avevo fatto qualcosa di sbagliato:

Si prega di vedere il codice e suggerire se possiamo fare qualcosa di simile per migliorare l'aspettativa di pip per scambio

Meglio se si cambia qui

//+------------------------------------------------------------------+
//|Get trade signal                                                  |
//+------------------------------------------------------------------+
double CRLAgent::getTradeSignal(double &featuresValues[])
  {
   if(!random_policy) {
      double kerfeatures[];
      ArrayResize(kerfeatures,ArrayRange(bestFeatures,0));
      ArrayInitialize(kerfeatures,0);
      
      for(int i=0;i<ArraySize(kerfeatures);i++) {
         kerfeatures[i] = featuresValues[0]/featuresValues[(int)bestFeatures[i][1]];
        }
            
      CLogit::MNLProcess(Lmodel,kerfeatures,Lout);
      return Lout[1];
     }
   else if(rand()/32767.0<0.5) return 0; else return 1;
  }

if(fast MA> slow MA)if(rand()/32767.0<0.8) return 0; else return 1;

if(fast MA< slow MA)if(rand()/32767.0<0.8) ritorna 1; altrimenti ritorna 0;

o qualcosa del genere, qualsiasi indicatore come filtro

 
Maxim Dmitrievsky:

Meglio se si cambia qui

if (fast MA > slow MA) if ( rand () / 32767.0 < 0.8 ) return 0 ; else return 1 ;

se (MA veloce < MA lento) se ( rand () / 32767.0 < 0.8 ) ritorna 1 ;altrimenti ritorna 0 ;

o qualcosa del genere, qualsiasi indicatore come filtro

Beh, ho provato a cambiare qui... ma incasinare qualsiasi cosa con "Signals" incasina tutti i risultati...

 
FxTrader562:

Indicatore che non ho ancora provato ...

ma ho provato " if ( rand () / 32767.0 < 0.8 )"..t poi, ha mostrato un comportamento casuale, perché dobbiamo cambiare anche qui:

se si filtra questo con MA, significa che campionerà i segnali di acquisto o di vendita con 0,8 di probabilità quando la tendenza è verso l'alto o verso il basso, quindi gli scambi saranno molto più lunghi, non c'è bisogno di cambiare il filtro dei segnali

Penserò a come migliorare la funzione di ricompensa. Domani )
 
Maxim Dmitrievsky:

Meglio se si cambia qui

if(fast MA> slow MA)if(rand()/32767.0<0.8) return 0; else return 1;

if(fast MA< slow MA)if(rand()/32767.0<0.8) ritorna 1; altrimenti ritorna 0;

o qualcosa del genere, qualsiasi indicatore come filtro

sembra fare cose simili (o arrivare a conclusioni simili)

Approssimativamente "se gli algoritmi deterministici perdono quando c'è una mancanza di informazioni (in un mercato in miglioramento), allora possiamo lasciare che le probabilità facciano il lavoro" :-)

 
Maxim Kuznetsov:

sembrano fare cose simili (o giungere a conclusioni simili)

Stiamo parlando di "se gli algoritmi deterministici perdono in condizioni di mancanza di informazioni (in un mercato in miglioramento), allora possiamo lasciare che le probabilità facciano il lavoro" :-)

un po' diverso qui (preparazione dei dati marcati per l'addestramento NS), ma sembra così

la questione è come marcare al meglio i dati in modo pseudo-casuale

 
FxTrader562:

Ok, vediamo...))

In realtà, sto ottenendo risultati piuttosto impressionanti nel back-testing finora:))

Ma il problema principale dei test in avanti:((((

forse non funzionerà mai bene :)