Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 1147

 
Maxim Dmitrievsky:

die Aufgabe besteht darin, die beiden Teile ununterscheidbar zu machen (dieselben Fehler usw.); in diesem Zusammenhang verliert die Definition dessen, was überhaupt wackelt, jede Bedeutung

Vielleicht haben Sie ja Recht, denn nur die reale Erfahrung kann in unserem Beruf eine objektive Antwort geben.)

 
FxTrader562:

Es wird eine Fehlermeldung angezeigt: "Event handing function not found".

keine Fehler

 
FxTrader562:

ja

 
FxTrader562:

Es wäre wirklich toll, wenn Sie hier einige Änderungen vornehmen könnten...

die Änderungen

 
FxTrader562:

Eigentlich wäre es toll, wenn Sie hier etwas ändern könnten:

Ich habe es versucht ... aber ich wusste nicht, ob ich etwas falsch gemacht hatte:

Bitte sehen Sie sich den Code an und schlagen Sie vor, ob wir etwas Ähnliches tun können, um die Pip-Erwartung pro Handel zu verbessern

Besser, Sie wechseln hier

//+------------------------------------------------------------------+
//|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) return 1; else return 0;

oder so ähnlich, beliebiger Indikator als Filter

 
Maxim Dmitrievsky:

Besser, Sie wechseln hier

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 ) return 1 ;else return 0 ;

oder so ähnlich, beliebiger Indikator als Filter

Nun, ich habe versucht, hier etwas zu ändern... aber wenn man irgendetwas mit "Signals" verwechselt, werden die gesamten Ergebnisse durcheinander gebracht...

 
FxTrader562:

Ein Indikator, den ich noch nicht ausprobiert habe ...

aber ich habe versucht " if ( rand () / 32767.0 < 0.8 )"...t hen, es zeigte zufälliges Verhalten, weil wir hier auch ändern müssen:

Wenn Sie dies mit MA filtern, bedeutet dies, dass er Kauf- oder Verkaufssignale mit einer Wahrscheinlichkeit von 0,8 bei einem Auf- oder Abwärtstrend abgreift, so dass der Handel viel länger dauert und der Signalfilter nicht geändert werden muss.

Ich werde darüber nachdenken, wie die Belohnungsfunktion verbessert werden kann. Morgen )
 
Maxim Dmitrievsky:

Besser, Sie wechseln hier

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) return 1; else return 0;

oder so ähnlich, beliebiger Indikator als Filter

scheint ähnliche Dinge zu tun (oder zu ähnlichen Schlussfolgerungen zu kommen)

Ungefähr so: "Wenn deterministische Algorithmen bei einem Mangel an Informationen (in einem sich verbessernden Markt) verlieren, dann können wir Wahrscheinlichkeiten die Arbeit machen lassen" :-)

 
Maxim Kuznetsov:

scheinen ähnliche Dinge zu tun (oder zu ähnlichen Schlussfolgerungen zu kommen)

Wenn deterministische Algorithmen bei fehlenden Informationen (auf einem sich verbessernden Markt) verlieren, dann können wir die Wahrscheinlichkeiten die Arbeit machen lassen" :-)

ein wenig anders (Vorbereitung von markierten Daten für das NS-Training), aber es scheint so

die Frage ist, wie man Daten am besten pseudo-zufällig auszeichnet

 
FxTrader562:

Ok, mal sehen...))

Tatsächlich erhalte ich bisher ziemlich beeindruckende Ergebnisse beim Backtesting:))

Das Hauptproblem bei Vorwärtstests ist jedoch: ((((

vielleicht wird es nie gut funktionieren :)