2025-12-01

自動売買への道 (2025-12-01)

楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用して Python であれこれ取り組んでいます。この「自動売買への道」のトピックでは、プログラミングの話題にも踏み込んで、日々の活動をまとめていきます。

今日の日経平均株価

現在値 49,303.28 -950.63 -1.89% 15:30
前日終値 50,253.91 11/28 高値 50,366.74 09:00
始値 50,318.59 09:00 安値 49,215.96 14:30

※ 右の 15 分足チャートは Yahoo! Finance のデータを yfinance で取得して作成しました。

【関連ニュース】

デイトレ用自作アプリ

以下は株価に関連する情報の流れを示しています。

株価データの流れ(Windows 11)

楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード II RSS を介して取引をする構成を取っています。

取引シミュレーション

強化学習モデルのチューニング作業の優先順位を下げ、しばらくはテクニカル指標のシグナルで取引するアプローチを前面に出します。

現在利用している指標は下記のとおりです。

  • 2つの移動平均 MA (n = 60 sec)MA (n = 600 sec)
    • クロスサインで売買(ナンピン売買禁止)
  • 移動範囲 Moving Range, MR (n = 60 sec)
    • ボラティリティを判定する指標、しきい値以下の時はフラグを立ててエントリしない。
  • ロスカット
    • しきい値以下になったらフラグを立てて建玉を返済、損切り。
  • 利確
    • 含み益と含み益最大値との比較で建玉を返済、利確する簡単なロジックを導入。

実験計画

仮決め(上記)で利用してきた指標(因子)について、水準を振って、より良さげな条件の組み合わせを探索することにしました。そこで、実験因子として水準を振れるような機能をアプリに追加しました。

目的

仮決めで利用してきた指標(因子)の水準を振った範囲内に最低条件が存在するかどうかを確認する。

実験範囲内に最適水準があれば、シミュレーションの使用するパラメータの水準を変更する。

実験範囲外に最適水準がありそうであれば、実験範囲をその方向に広げて最適な条件を探索する。

実験因子

上記のロスカットと利確条件も因子に加えたかったのですが、残念ながら納得できるやりかたに落ち着いていません。ひとまず、この 2 因子の機能はオフ(ロスカット、利確なし)にして実験評価をすることにしました。

  1. PERIOD_MA_1
    • 移動平均 1 の period
    • 水準 : 30, 60, 90 [sec]
  2. PERIOD_MA_2
    • 移動平均 2 の period
    • 水準 : 300, 600, 900 [sec]
  3. PERIOD_MR
    • 移動範囲 の period
    • 水準 : 15, 30, 45 [sec]
  4. THRESHOLD_MR
    • エントリを禁止する移動範囲のしきい値
    • 水準 : 1, 4, 7 [sec]

評価特性

  • 1 株当りの収益
  • [参考評価]100 回を上限としている取引回数

実験の組み合わせ

4 因子 3 水準の実験をする場合、直交表を使うとすれば L9 や L18 の直交表を利用することができます。

しかし、シミュレーションのパラメータを振るのであれば、時間や経費節約のために実験回数を減らしたい、という動機は低くなります。なぜなら、1 回のシミュレーションはそれほど長い計算時間ではないからです。ですので、可能であれば少々計算時間をかけても全ての組み合わせを試したいところです。

ということで 4 因子 3 水準の組み合わせ、34 = 81 通りの条件を、過去のティックデータ 69 日分全て (81 × 69 = 5589 run) に適用して収益のシミュレーション・データを取ることにしました。やや run 数が多いのですが、天文学的な数ではありません。辛抱して待つことにします。

実験表
# PERIOD_MA_1 PERIOD_MA_2 PERIOD_MR THRESHOLD_MR
1 30 300 15 1
2 60 300 15 1
3 90 300 15 1
4 30 600 15 1
5 60 600 15 1
6 90 600 15 1
7 30 900 15 1
8 60 900 15 1
9 90 900 15 1
10 30 300 30 1
11 60 300 30 1
12 90 300 30 1
13 30 600 30 1
14 60 600 30 1
15 90 600 30 1
16 30 900 30 1
17 60 900 30 1
18 90 900 30 1
19 30 300 45 1
20 60 300 45 1
21 90 300 45 1
22 30 600 45 1
23 60 600 45 1
24 90 600 45 1
25 30 900 45 1
26 60 900 45 1
27 90 900 45 1
28 30 300 15 4
29 60 300 15 4
30 90 300 15 4
31 30 600 15 4
32 60 600 15 4
33 90 600 15 4
34 30 900 15 4
35 60 900 15 4
36 90 900 15 4
37 30 300 30 4
38 60 300 30 4
39 90 300 30 4
40 30 600 30 4
41 60 600 30 4
42 90 600 30 4
43 30 900 30 4
44 60 900 30 4
45 90 900 30 4
46 30 300 45 4
47 60 300 45 4
48 90 300 45 4
49 30 600 45 4
50 60 600 45 4
51 90 600 45 4
52 30 900 45 4
53 60 900 45 4
54 90 900 45 4
55 30 300 15 7
56 60 300 15 7
57 90 300 15 7
58 30 600 15 7
59 60 600 15 7
60 90 600 15 7
61 30 900 15 7
62 60 900 15 7
63 90 900 15 7
64 30 300 30 7
65 60 300 30 7
66 90 300 30 7
67 30 600 30 7
68 60 600 30 7
69 90 600 30 7
70 30 900 30 7
71 60 900 30 7
72 90 900 30 7
73 30 300 45 7
74 60 300 45 7
75 90 300 45 7
76 30 600 45 7
77 60 600 45 7
78 90 600 45 7
79 30 900 45 7
80 60 900 45 7
81 90 900 45 7

一部の解析結果

過去 69 日分の過去のティックデータによる DOE の実施についてですが、昨日の日曜日夜からファイルサーバー上で計算させていたのですが、意外と計算に時間がかかる上に、全体の半分ぐらいを過ぎたところで、なんと不備を見つけてしまいました。

不備があることが判っている結果を解析することは無駄なので、仕方なく途中で止めました。本日取得したティックデータを追加して、過去 70 日分のデータで 81 × 70 = 5670 run を実施することにしました。

明日の夕方までに全ての run は終わらないと思うので、これとは別にメインの PC で過去 3 日分 (11/27, 28, 12/1) のデータだけで実験条件を処理しました。詳細な分析はさておき、各因子の効果(要因効果図)は下記のようになりました。

因子の効果(過去 3 日分)

これらのプロットを見る限り、収益を最大化する最適な因子水準は実験水準の外側にある可能性があります。あとは、データ全体でのシミュレーション実験の結果を確認してから今後の進め方を決めます。

参考サイト

  1. マーケットスピード II RSS | 楽天証券のトレーディングツール
  2. マーケットスピード II RSS 関数マニュアル
  3. 注文 | マーケットスピード II RSS オンラインヘルプ | 楽天証券のトレーディングツール
  4. Gymnasium Documentation
  5. Stable-Baselines3 Docs - Reliable Reinforcement Learning Implementations
  6. Maskable PPO — Stable Baselines3 - documentation
  7. PyTorch documentation
  8. PythonでGUIを設計 | Qtの公式Pythonバインディング
  9. Python in Excel alternative: Open. Self-hosted. No limits.
  10. Book - xlwings Documentation
にほんブログ村 株ブログ 株日記へ
PVアクセスランキング にほんブログ村

0 件のコメント:

コメントを投稿