Diskussion zum Artikel "Schneller Handelsstrategie-Tester in Python mit Numba" - Seite 6

 
bestvishes #:
Hallo Maxime, ich glaube, du bist die klügste Person im Forum, ich hoffe, dass ich im zweiten Artikel eine detaillierte Beschreibung sehen werde. danke

Danke für das schmeichelhafte Feedback, ich werde versuchen, etwas Interessantes für Sie zu schreiben.

 
def get_prices() -> pd.DataFrame:
Try:
# Laden einer kommagetrennten CSV-Datei
p = pd.read_csv(f"files/{hyper_params['symbol']}.csv" )

# Auf erforderliche Spalten prüfen
required_columns = ['time', 'close' ]
for col in required_columns:
if col not in p.columns:
raise KeyError(f"Column'{col}' is missing from the file." )

# Konvertiere die Spalte 'time' in das Datetime-Format
p ['time'] = pd.to_datetime(p['time'], errors='coerce' )

# Setzen des Zeitindexes
p. set_index('time', inplace=True )

# Nur die Spalte 'close' belassen und Zeilen mit falschen Daten entfernen
pFixed = p[[['close']].dropna( )

return pFixed
except Exception as e:
print(f"Fehler bei der Verarbeitung der Daten: {e}" )
return pd.DataFrame() #Rückgabe eines leeren DataFrame im Falle eines Fehlers
Dateien:
export_mt5.py  2 kb
 

Ich habe etwas Zeit und bin fast fertig mit dem Modelltraining und der Optimierung der Hyperparameter in einer Flasche.

Es wird möglich sein, viele Modelle auf einmal zu trainieren, sie dann zu optimieren, dann das beste Modell mit den besten Optimierungsparametern auszuwählen, zum Beispiel:

models = []
for i in range(20):
    print(f'Iteration: {i}')
    models.append(learnANDoptimize())

models.sort(key=lambda x: x[0][0]['score'])


index = -1
test_model(models[index][0][0]['dataframe'],
            [models[index][-1]],
            hyper_params['stop_loss'],
            hyper_params['take_profit'],
            hyper_params['forward'],
            hyper_params['backward'],
            hyper_params['markup'],
            True)

Und das Ergebnis ausgeben.

Dann kann das Modell mit optimalen Hyperparametern in das Terminal exportiert werden. Oder man verwendet den Terminal-Optimierer selbst.

Ich werde den Artikel später beginnen, ich habe es nicht vergessen.