今日の日経平均株価
今日の日経平均株価は、前日比 277.84 円高の 42,098.32 円と 5 日続伸で寄った後、上げ幅を広げて 10:37 に 42,867.69 円と前場高値を付けました。
その後も高値圏で推移して、前場は 42,849.67 円で取引を終えました。
後場は 42,893.11 円で取引が始まり、じりじりと上げ幅を広げて 14:00 に 42,999.71 円の高値(史上最高値を更新)を付けました。
その後、押し戻されて、大引けは前日比 897.68 円高の 42,718.17 円と終値でも史上最高値を更新して取引を終えました。
デイトレ用自作アプリ
Python で作っている自作のデイトレアプリで、ゆくゆくは自動売買に挑戦するために取り組んでいます。しかし自動売買実現までの道のりは長いので、まずはセミオート操作でシミュレーション売買ができるようにしています。
以下は株価に関連する情報の流れを示しています。
楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード2 RSS を介して取引をする構成を取っています。
今日のデイトレは…
マーケットスピード2 RSS から読み込んだ株価で、フルオートのシミュレーションを実施しています。なお、15:24:50 の時点で建玉を持っていれば強制返済するようにしています。
本シミュレータは、主に下記の特徴(概略)があります。
- 1 秒間隔で取得した株価を使用
- データに対して(Bスプライン系の)スムージング処理を適用
- リアルタイム用 Parabolic SAR をスムージングしたデータに適用
- トレンド反転時に建玉を持っていれば返済
- 厳密なドテン売買ではなく、エントリ条件有り
- 大きな価格変動の対して追従する仕組みを追加
- 100 株を実価格で売買シミュレーション
リアルタイムデータ用 Parabolic SAR に使用した本日の AF パラメータは下記の通りです。
AF(init) = 0.000005 AF(step) = 0.000005 AF(max) = 0.005
日足などの Parabolic SAR に使用する値に比べるとかなり小さい値になっています。
今日のシミュレーションの収益は -11,900 円でした。今日の三菱重工業 (7011) の値動きは、あいにく Parabolic SAR の設定とは合いませんでした。
次に説明しているように、Parabolic SAR によるシミュレーションは今日でおしまいです。
強化学習モデルのパフォーマンスに驚く
三連休の間、ChatGPT5 の能力を試してみたくなり、ある制約条件下のデイトレのシミュレーションで、強化学習ができる売買モデルのサンプル (Python/PyTorch) を提案してもらいました。
学習曲線をプロットするだけでは面白くないので、提案してもらったサンプルを少し加工して、過去約2ヶ月分のティックデータでシミュレーション上の収益を評価してみたところ、そのパフォーマンスの高さにびっくりしてしまいました。😮
下記のチャートは、三菱重工業 (7011) を建玉 100 株だけで1日に何度も信用取引した日別の収益パフォーマンスです。その日のティックデータに最初に売買モデルを適用したときの収益をプロットし、翌日のために 10 回の再学習をさせています。
取引回数が多すぎるなど、このモデルをそのまま実践に適用するには課題がたくさんあるのですが、単純な売買判定モデルでも継続的に学習を重ねれば良い収益を上げられるというシミュレーション結果になりました。
ChatGPT5 の提案内容概略(コードを除く)
- PyTorch を使った軽量な Actor-Critic (PPO-lite) 実装
- 毎日与える CSV (--csv path/to/file.csv) を読み込み、モデルを --model で指定したファイルへ保存・読み込み。日々の学習を継続可能
- 学習中は各 epoch(同一日の複数パス)ごとの合計報酬を表示し、学習曲線をプロット。最終的に「評価(greedy 実行)」して当日の総P&Lと約定回数を出力
- 取引詳細はオプションで CSV に保存
GPU が無いことを理由にして、いままで PyTorch を利用しなかったことを後悔しました。GPU が無いので計算にちょっと時間がかかるけど、結果を待つだけの価値があります。
最初から機械学習的なアプローチを前提にしてしまうとコンピュータ・リソースを食いまくることが懸念されたので、アプローチを従来のテクニカル指標の延長上に求めていました。それが Parabolic SAR だったのですが、トレンドがあるかどうかの値動きによって勝敗が左右されてしまうので、スマートな動的パラメータのような仕組みを導入する必要がありました。
そんな状況だったので、勝つか負けるか判らないアルゴリズムで実際に売買してみる気にはなかなかなれませんでした。
今回、単純な売買判定モデルであっても、強化学習のような手法を取り入れることでパフォーマンスが格段に向上することが判ってしまいました。これはアプローチを変更する良い機会です。
アプリの GUI 部分はほとんどできているものの、まだシミュレーションを重ねている段階です。アプリにおける売買ロジックの置き換えは難しくはありません。Parabolic SAR の応用をここで止めて、少し時間がかかるかもしれませんが機械学習的なアプローチへ移行することにします。
課 題
現在、課題と考えていることを下記にまとめました[随時更新〗。
- マーケットスピード2 RSS による売買
- Excel VBA, Python 側で実際の売買を試す。
- 売買のためのサンプルワーク
- Parabolic SAR のアルゴリズム改良
- PyTorch を利用した強化学習モデルの実用化
参考サイト
- マーケットスピード II RSS | 楽天証券のトレーディングツール
- マーケットスピード II RSS 関数マニュアル
- PythonでGUIを設計 | Qtの公式Pythonバインディング
- PyQtGraph - Scientific Graphics and GUI Library for Python
- Python in Excel alternative: Open. Self-hosted. No limits.
- Book - xlwings Documentation


0 件のコメント:
コメントを投稿