楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用して Python であれこれ取り組んでいます。この「自動売買への道」のトピックでは、プログラミングの話題にも踏み込んで、日々の活動をまとめていきます。
デイトレ用自作アプリ
以下は株価に関連する情報の流れを示しています。
楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード II RSS を介して取引をする構成を取っています。
マラソンテストのパフォーマンス
強化学習を利用した、ナンピン無しの制約付き取引モデルは発展途上ですが、不完全ながらパフォーマンスを残してレビューできるようにします。まだ過去データの数が少ないのですが、「マラソンテスト」と呼んでいます。
モデルの管理体制すら整っていないのですが、現在のモデルで特定銘柄 (7011) の過去のティックデータ全てを学習させた後、学習に使用したティックデータに対して順番に 1 日ずつ推論させたパフォーマンスを確認しました。
プロットでは、1 株あたりの損益と、取引回数をプロットしています。なお現在は取引回数に制約を設けていません。
まだモデルの仕様(報酬設計と観測値)が固まっておらず、頻繁に微調整を加えるので、毎晩、その時点での最新条件で、0 から過去のティックデータで学習させたものを翌日に推論して評価する、というスタイルにしています。
大規模言語モデルなどと違って、本件で扱うパラメータ数はとても少ないので、非力な PC でも数時間で全データの学習を終わらせられます。
本日 (11/10) のティックデータで推論
上記モデルを使って、今日取得したティックデータに対して推論しました。一応、GUI 上で動くようになったので、当日分は値動きのスクリーンショットを掲載しました。
取引詳細 (+2,900 円 / 100 株)
| 注文番号 | 注文日時 | 銘柄コード | 売買 | 約定単価 | 約定数量 | 損益 | 備考 |
|---|---|---|---|---|---|---|---|
| 1 | 2025-11-10 09:00:12 | 7011 | 買建 | 4463 | 100 | ||
| 2 | 2025-11-10 09:00:13 | 7011 | 売埋 | 4463 | 100 | 0.0 | |
| 3 | 2025-11-10 09:00:17 | 7011 | 売建 | 4465 | 100 | ||
| 4 | 2025-11-10 09:00:19 | 7011 | 買埋 | 4473 | 100 | -800.0 | |
| 5 | 2025-11-10 09:00:22 | 7011 | 売建 | 4476 | 100 | ||
| 6 | 2025-11-10 09:00:24 | 7011 | 買埋 | 4480 | 100 | -400.0 | |
| 7 | 2025-11-10 09:00:27 | 7011 | 売建 | 4480 | 100 | ||
| 8 | 2025-11-10 09:00:30 | 7011 | 買埋 | 4475 | 100 | 500.0 | |
| 9 | 2025-11-10 09:00:31 | 7011 | 売建 | 4475 | 100 | ||
| 10 | 2025-11-10 09:00:35 | 7011 | 買埋 | 4480 | 100 | -500.0 | |
| 11 | 2025-11-10 09:00:41 | 7011 | 売建 | 4467 | 100 | ||
| 12 | 2025-11-10 09:00:48 | 7011 | 買埋 | 4477 | 100 | -1000.0 | |
| 13 | 2025-11-10 09:00:49 | 7011 | 売建 | 4477 | 100 | ||
| 14 | 2025-11-10 09:00:51 | 7011 | 買埋 | 4470 | 100 | 700.0 | |
| 15 | 2025-11-10 09:00:55 | 7011 | 売建 | 4460 | 100 | ||
| 16 | 2025-11-10 09:00:58 | 7011 | 買埋 | 4455 | 100 | 500.0 | |
| 17 | 2025-11-10 09:00:59 | 7011 | 売建 | 4455 | 100 | ||
| 18 | 2025-11-10 09:01:06 | 7011 | 買埋 | 4450 | 100 | 500.0 | |
| 19 | 2025-11-10 09:01:08 | 7011 | 売建 | 4450 | 100 | ||
| 20 | 2025-11-10 09:01:19 | 7011 | 買埋 | 4432 | 100 | 1800.0 | |
| 21 | 2025-11-10 09:01:20 | 7011 | 売建 | 4434 | 100 | ||
| 22 | 2025-11-10 09:01:22 | 7011 | 買埋 | 4428 | 100 | 600.0 | |
| 23 | 2025-11-10 09:01:23 | 7011 | 売建 | 4428 | 100 | ||
| 24 | 2025-11-10 09:01:28 | 7011 | 買埋 | 4435 | 100 | -700.0 | |
| 25 | 2025-11-10 09:01:33 | 7011 | 買建 | 4435 | 100 | ||
| 26 | 2025-11-10 09:01:34 | 7011 | 売埋 | 4433 | 100 | -200.0 | |
| 27 | 2025-11-10 09:01:44 | 7011 | 買建 | 4420 | 100 | ||
| 28 | 2025-11-10 09:01:46 | 7011 | 売埋 | 4415 | 100 | -500.0 | |
| 29 | 2025-11-10 09:01:52 | 7011 | 買建 | 4425 | 100 | ||
| 30 | 2025-11-10 09:01:58 | 7011 | 売埋 | 4420 | 100 | -500.0 | |
| 31 | 2025-11-10 09:02:00 | 7011 | 買建 | 4416 | 100 | ||
| 32 | 2025-11-10 09:02:01 | 7011 | 売埋 | 4416 | 100 | 0.0 | |
| 33 | 2025-11-10 09:02:03 | 7011 | 買建 | 4415 | 100 | ||
| 34 | 2025-11-10 09:02:05 | 7011 | 売埋 | 4414 | 100 | -100.0 | |
| 35 | 2025-11-10 09:02:09 | 7011 | 買建 | 4421 | 100 | ||
| 36 | 2025-11-10 09:02:15 | 7011 | 売埋 | 4424 | 100 | 300.0 | |
| 37 | 2025-11-10 09:02:17 | 7011 | 買建 | 4419 | 100 | ||
| 38 | 2025-11-10 09:02:21 | 7011 | 売埋 | 4414 | 100 | -500.0 | |
| 39 | 2025-11-10 09:02:25 | 7011 | 買建 | 4413 | 100 | ||
| 40 | 2025-11-10 09:02:27 | 7011 | 売埋 | 4414 | 100 | 100.0 | |
| 41 | 2025-11-10 09:02:29 | 7011 | 買建 | 4413 | 100 | ||
| 42 | 2025-11-10 09:02:32 | 7011 | 売埋 | 4415 | 100 | 200.0 | |
| 43 | 2025-11-10 09:02:35 | 7011 | 買建 | 4413 | 100 | ||
| 44 | 2025-11-10 09:02:41 | 7011 | 売埋 | 4408 | 100 | -500.0 | |
| 45 | 2025-11-10 09:02:44 | 7011 | 買建 | 4409 | 100 | ||
| 46 | 2025-11-10 09:02:50 | 7011 | 売埋 | 4411 | 100 | 200.0 | |
| 47 | 2025-11-10 09:02:51 | 7011 | 買建 | 4410 | 100 | ||
| 48 | 2025-11-10 09:02:54 | 7011 | 売埋 | 4411 | 100 | 100.0 | |
| 49 | 2025-11-10 09:02:56 | 7011 | 買建 | 4413 | 100 | ||
| 50 | 2025-11-10 09:03:00 | 7011 | 売埋 | 4414 | 100 | 100.0 | |
| 51 | 2025-11-10 09:03:06 | 7011 | 買建 | 4410 | 100 | ||
| 52 | 2025-11-10 09:03:08 | 7011 | 売埋 | 4409 | 100 | -100.0 | |
| 53 | 2025-11-10 09:03:10 | 7011 | 買建 | 4411 | 100 | ||
| 54 | 2025-11-10 09:03:24 | 7011 | 売埋 | 4407 | 100 | -400.0 | |
| 55 | 2025-11-10 09:03:26 | 7011 | 買建 | 4403 | 100 | ||
| 56 | 2025-11-10 09:03:32 | 7011 | 売埋 | 4406 | 100 | 300.0 | |
| 57 | 2025-11-10 09:03:33 | 7011 | 買建 | 4405 | 100 | ||
| 58 | 2025-11-10 09:03:37 | 7011 | 売埋 | 4405 | 100 | 0.0 | |
| 59 | 2025-11-10 09:03:39 | 7011 | 買建 | 4405 | 100 | ||
| 60 | 2025-11-10 09:03:42 | 7011 | 売埋 | 4407 | 100 | 200.0 | |
| 61 | 2025-11-10 09:03:46 | 7011 | 買建 | 4411 | 100 | ||
| 62 | 2025-11-10 09:03:54 | 7011 | 売埋 | 4406 | 100 | -500.0 | |
| 63 | 2025-11-10 09:03:55 | 7011 | 買建 | 4406 | 100 | ||
| 64 | 2025-11-10 09:03:57 | 7011 | 売埋 | 4406 | 100 | 0.0 | |
| 65 | 2025-11-10 09:03:59 | 7011 | 買建 | 4407 | 100 | ||
| 66 | 2025-11-10 09:04:08 | 7011 | 売埋 | 4405 | 100 | -200.0 | |
| 67 | 2025-11-10 09:04:10 | 7011 | 買建 | 4407 | 100 | ||
| 68 | 2025-11-10 09:04:15 | 7011 | 売埋 | 4402 | 100 | -500.0 | |
| 69 | 2025-11-10 09:04:16 | 7011 | 買建 | 4402 | 100 | ||
| 70 | 2025-11-10 09:04:17 | 7011 | 売埋 | 4402 | 100 | 0.0 | |
| 71 | 2025-11-10 09:04:20 | 7011 | 買建 | 4401 | 100 | ||
| 72 | 2025-11-10 09:04:23 | 7011 | 売埋 | 4403 | 100 | 200.0 | |
| 73 | 2025-11-10 09:04:25 | 7011 | 買建 | 4403 | 100 | ||
| 74 | 2025-11-10 09:05:46 | 7011 | 売埋 | 4415 | 100 | 1200.0 | |
| 75 | 2025-11-10 09:05:51 | 7011 | 売建 | 4415 | 100 | ||
| 76 | 2025-11-10 09:05:52 | 7011 | 買建 | 4416 | 100 | ||
| 77 | 2025-11-10 09:06:09 | 7011 | 売埋 | 4417 | 100 | 100.0 | |
| 78 | 2025-11-10 09:06:10 | 7011 | 売建 | 4417 | 100 | ||
| 79 | 2025-11-10 09:06:19 | 7011 | 買埋 | 4412 | 100 | 500.0 | |
| 80 | 2025-11-10 09:06:20 | 7011 | 売建 | 4412 | 100 | ||
| 81 | 2025-11-10 09:06:21 | 7011 | 買建 | 4416 | 100 | ||
| 82 | 2025-11-10 09:07:20 | 7011 | 売埋 | 4414 | 100 | -200.0 | |
| 83 | 2025-11-10 09:07:57 | 7011 | 売建 | 4410 | 100 | ||
| 84 | 2025-11-10 09:08:01 | 7011 | 買埋 | 4411 | 100 | -100.0 | |
| 85 | 2025-11-10 09:08:04 | 7011 | 売建 | 4411 | 100 | ||
| 86 | 2025-11-10 09:21:51 | 7011 | 買埋 | 4413 | 100 | -200.0 | |
| 87 | 2025-11-10 09:21:52 | 7011 | 売建 | 4412 | 100 | ||
| 88 | 2025-11-10 15:24:51 | 7011 | 買埋 | 4385 | 100 | 2700.0 | |
| 89 | 2025-11-10 15:24:56 | 7011 | 売建 | 4383 | 100 | ||
| 合計損益 | 2900.0 | ||||||
見ての通り、勝つ日もあれば負ける日もあり、ちょっとだけ勝ちが多い程度のモデルです。ひとまず、このようなパフォーマンス確認を続けてみます。
参考サイト
- マーケットスピード II RSS | 楽天証券のトレーディングツール
- マーケットスピード II RSS 関数マニュアル
- 注文 | マーケットスピード II RSS オンラインヘルプ | 楽天証券のトレーディングツール
- Gymnasium Documentation
- Stable-Baselines3 Docs - Reliable Reinforcement Learning Implementations
- PyTorch documentation
- PythonでGUIを設計 | Qtの公式Pythonバインディング
- Python in Excel alternative: Open. Self-hosted. No limits.
- Book - xlwings Documentation




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