記事「価格変動の角度分析:金融市場予測のためのハイブリッドモデル」についてのディスカッション - ページ 2

またしてもネズミは泣き、刺し、ウンチをしたが、しつこくサボテンを食べ続けた!;)

MT4 用のギャン・テンプレートが完成しました。

https://disk.yandex.ru/d/7YhmKzcqttnQnQ

TSに記述されていることをすべて正しく設定すれば、トレンドか調整のどちらかが終わりに近づいていることを数時間前に知ることができます。さらに、トレンドの終了時刻も事前に計算することができます。

正しくセットアップする方法は、誰もが自分で知っている。

P.S.- ガンは彼の作品(モデルの数学)の中ですべてを持っている。より深く原典を研究する方が良い。

Gann_Box_144_test_FULL_NULL_NEN_SQH4-----.mq4
Gann_Box_144_test_FULL_NULL_NEN_SQH4-----.mq4
  • disk.yandex.ru
Посмотреть и скачать с Яндекс Диска

ゴールド

トレンドが弱まりつつあり、その反応を待つ価値があったということが、このパターンでまた確認できた。

copy_rates_range が None を返すことに対する対策が講じられていない。シンボル/時間枠/履歴が利用できない場合、mt5.copy_rates_range は None を返し、pd.DataFrame(None) は役に立たないエラーを発生させてしまう。
train_test_split での shuffle=True はデータリークを引き起こします。各特徴量の行は、15個ある angle_j 値のうち14個を隣接する行と共有しており(ローリングウィンドウが大幅に重複している)、データは時間順に並んでいます。 シャッフル処理を行うと、ほぼ重複するウィンドウがトレーニングセットとテストセットに分散されるため、報告される精度やRMSEは、モデルが実際にアウトオブサンプルで示す性能よりもはるかに良く見えることになります。
`prepare_features` および `backtest_signals` 内の(重複している)ロジック `window = filtered_df.iloc[i-lookback:i]` において、特徴量ウィンドウとそのラベルの間に「1つずれた」不一致が生じています。このロジックはバー `i-lookback` … i-1)のバーをカバーしていますが、ターゲットは filtered_df.iloc[i]['future_direction_24'] / future_change_pct_24 から読み込まれます。これはバー i(i-1 ではありません)から i+24 への変動を表しています。 したがって、トレーニングおよびバックテスト全体を通じて、current_price およびウィンドウから導出されたすべての特徴量は、実際に予測対象となっている値より1バー遅れてアンカーされています。
一方、predict_future_movement は同じようにアンカーを設定しません。これは angular_df.tail(lookback) を使用し、そのウィンドウの最後のバーをライブシグナルの「現在価格」として扱いますが、#3 に記載されている通り、モデルは真のラベルのアンカーよりも 1 バー前の「現在価格」を用いて学習されています。 ライブ予測とトレーニングラベルは、同じ規則に基づいて計算されていません。
`create_angular_features` でのゼロ除算の可能性:`time_range`(最大時間 − 最小時間)が 0 の場合(例:重複または不正なタイムスタンプ)、`scale_factor` が inf/nan となり、すべての角度に伝播します。
CatBoostClassifier.predict() の返り値の形状 — インストールされている CatBoost のバージョンによっては、(n,) ではなく (n, 1) として返される場合があります。これは、再成形のチェックなしにそのまま accuracy_score/classification_report に渡されるため、最終的にインストールされたバージョンに合わせて確認する価値があります。
軽微な問題:figsize=(750/100, 750/200) 形式の呼び出しでは、インチ単位で整数ではない寸法(7.5×3.75、7.5×6.0、7.5×5.0)が生成されます。これは不具合ではなく、単に図のサイズを表す方法が少し独特なだけです。

ファイル: