記事「Numbaを使用したPythonの高速取引ストラテジーテスター」についてのディスカッション - ページ 6

 
bestvishes #:
こんにちは、maximさん、あなたはこのフォーラムで一番賢い人だと思います。

お褒めの言葉、ありがとうございます!面白いものを書けるように頑張ります。

 
def get_prices() -> pd.DataFrame
Try
# カンマ区切りのCSVファイルを読み込む
p = pd.read_csv(f"files/{hyper_params['symbol']}.csv")

# 必須カラムのチェック
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.") # 'time'カラムを変換する。

# time' カラムを datetime フォーマットに変換する。
p ['time'] = pd.to_datetime(p['time'], errors='coerce') # 時刻 インデックスを設定する。

# 時刻インデックスを設定する
p. set_index('time', inplace=True)

# クローズ」列のみを残し、不正なデータを含む行を削除する
pFixed = p[['close']].dropna()

return pFixed
except 例外 as e
print(f"データ処理中のエラー :{e}")
return pd.DataFrame() # エラーの場合は空のDataFrameを返す
ファイル:
export_mt5.py  2 kb
 

時間ができたので、モデルのトレーニング+ハイパーパラメータの最適化を1つのボトルでほぼ完了した。

一度に多くのモデルをトレーニングし、それらを最適化し、最適化されたパラメーターで最良のモデルを選択する、といったことが可能になるだろう:

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)

そして結果を出力する。

そして、最適なハイパーパラメータを持つモデルをターミナルにエクスポートすることができる。あるいは、ターミナル・オプティマイザそのものを使うこともできる。

後で記事を書き始めます。