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

 
Maxim Dmitrievsky:

einfach hingesetzt und einen Parser geschrieben.

Hier ist das Modell, in das Sie 15 letzte Inkremente für jeden Balken eingeben müssen. Die Inkremente werden als Preis abzüglich des schrägen 5-Perioden-Durchschnitts gezählt. Die Funktion double catboost_model(const double &features[]) sollte in der

Wenn das Signal größer als 0,5 ist, wird gekauft, wenn es kleiner ist, wird verkauft. Der Zeitrahmen beträgt 15 Minuten.

Ich wurde vom 1. September bis jetzt ausgebildet.

ich kann es sowieso nicht tun... ich lasse es einfach hier ))

Ich bin gerade unterwegs, ich werde es in zwei Stunden versuchen)
 
Alexander Alekseyevich:
Ich bin gerade unterwegs, ich werde es in 2 Stunden versuchen)

Ich habe es bereits ausprobiert, es schüttet.

dann werde ich herausfinden, warum.

 
Maxim Dmitrievsky:

einfach hingesetzt und einen Parser geschrieben.

Hier ist das Modell, in das Sie 15 letzte Inkremente für jeden Balken eingeben müssen. Die Inkremente werden als Preis abzüglich des schrägen 5-Perioden-Durchschnitts gezählt. Die Funktion double catboost_model(const double &features[]) sollte in der

Wenn das Signal mehr als 0,5 beträgt, kaufen Sie, wenn es weniger ist, verkaufen Sie. Der Zeitrahmen beträgt 15 Minuten.

Ich wurde vom 1. September bis jetzt ausgebildet.

ich kann es sowieso nicht tun... ich lasse es einfach hier ))

Läuft dieses Modell über Pythorch? Ist sie selbst generiert? Oder wie? Ich habe einfach keine Anwendungen von Drittanbietern verwendet, ich habe alles in mt. Es funktioniert einfach nicht richtig)))) Vielleicht erhalten Sie deshalb unterschiedliche Ergebnisse.
 
Alexander Alekseevich:
Ist dieses Modell über Pythorch? Ist sie selbst generiert? Oder wie? Ich habe einfach keine Anwendungen von Drittanbietern verwendet, ich habe alles in mt. Es funktioniert einfach nicht richtig))) Vielleicht erhalten Sie deshalb unterschiedliche Ergebnisse

Parsen des Modellcodes (Übersetzung von Python nach mql) und Schreiben in .mqh

 

repariert... das eine repariert, das andere zerstört. Jetzt verdient es sich nicht mehr auf OOS :D

Außerdem wird die Rentabilität bei den Spreads unterschätzt. Aber das Modell lässt sich leicht portieren. Sie können Varianten abholen...


 
Maxim Dmitrievsky:

repariert... das eine repariert, das andere zerstört. Jetzt verdient es sich nicht mehr auf OOS :D

Außerdem wird die Rentabilität bei den Spreads unterschätzt. Aber das Modell lässt sich leicht portieren. Sie können Optionen auswählen...


Wenn Sie nicht wissen, was Sie damit machen sollen, keine Sorge, ich werde versuchen, es zu benutzen ...

 

Wenn Sie Tage, Stunden usw. zu den Fics hinzufügen, bewirkt das nichts:

def get_prices(look_back = 15):
    prices = pd.DataFrame(mt5.copy_rates_range(SYMBOL, TIMEFRAME, START, STOP), 
                            columns=['time', 'close']).set_index('time')
    # set df index as datetime
    prices.index = pd.to_datetime(prices.index, unit='s')
    prices = prices.dropna()
    ratesM = prices.rolling(MA_PERIOD).mean()
    ratesD = prices - ratesM
    for i in range(look_back):
        prices[str(i)] = ratesD.shift(i)
    prices['h'] = prices.index.hour
    prices['dw'] = prices.index.dayofweek
    prices['d'] = prices.index.day
    prices['m'] = prices.index.month
    return prices.dropna()

bestTest = 0,4918224299

Ich werfe es nur ein, damit niemand daran herumpfuschen kann.


 
Maxim Dmitrievsky:

Wenn Sie Tage, Stunden usw. zu den Fics hinzufügen, bewirkt das nichts:

bestTest = 0,4918224299

Nur um Ihnen die Mühe zu ersparen.


Maxim, können Sie das gleiche Modell mit dem gleichen Aufbau herstellen, aber mit zwei Ausgängen, einem für den Kauf und einem für den Verkauf?
 
Alexander Alekseevich:
Maxim, können Sie das gleiche Modell erstellen und es auf die gleiche Weise lehren, aber mit zwei Ausgängen? Einer für Kauf, der zweite für Verkauf, das Ergebnis sollte besser sein

Es werden keine Muster erkannt

entweder auf Zecken umsteigen oder etwas ganz anderes machen

Es gibt bereits 2 Klassen.

Übrigens, RNN scheint eine bessere Arbeit zu leisten... aber der Code ist roh dort

 
Maxim Dmitrievsky:

es werden keine Muster erkannt

entweder zu Zecken wechseln oder etwas darauf aufbauen

Klasse 2, wie sie ist

Übrigens, RNN scheint eine bessere Arbeit zu leisten... aber der Code ist grob

Ja, es gibt zwei Klassen, aber wenn Sie für jede Klasse einen eigenen Ausgang nehmen, funktioniert es besser).