2026-01-19

自動売買への道 (2026-01-19)

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

今日の日経平均株価

現在値 53,583.57 -352.60 -0.65% 15:30
前日終値 53,936.17 01/16 高値 53,583.57 15:30
始値 53,390.05 09:00 安値 53,091.45 10:37

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

【関連ニュース】

デイトレ用自作アプリ

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

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

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

リアルタイムの取引シミュレーション (7011)

本日の設定
  value
PERIOD_WARMUP 180.00
PERIOD_MA_1 60.00
PERIOD_MA_2 450.00
PERIOD_SLOPE 5.00
THRESHOLD_SLOPE 0.05
PERIOD_RR 30.00
TURBULENCE 35.00
LOSSCUT_1 -25.00
THRESHOLD_PM_MIN 20.00
THRESHOLD_DDR_MIN 0.10
N_MINUS_MAX 240.00

本日のパラメータを決めるために、実験計画 (DOE) にもとづいた取引シミュレーションを実施して、その結果を蓄積しています。毎回、詳細な解析・考察をしようとすると続かないので、興味がある情報だけをまとめています。

先週末にパラメータ N_MINUS_MAX を追加しました。これは、含み損益が連続でマイナスになる回数を保持するカウンタを追加し、このパラメータの値を超えたらロスカットするという機能です。

このパラメータについては暫定値を設定したのですが、パラメータの増加で DOE のやり直しが生じてバタバタしています。


以下は、本日のリアルタイム取引シミュレーション (Simulated Trade) による取引結果です。

本日のリアルタイムの取引シミュレーション (Simulated Trade)
本日のリアルタイムの取引シミュレーション (Simulated Trade) の取引明細(100 株単位)
注文番号 注文日時 銘柄コード 売買 約定単価 約定数量 損益 備考
1 2026-01-19 09:03:18.157272100 7011 買建 4646.0 100
2 2026-01-19 09:04:22.434683084 7011 売埋 4669.0 100 2300.0
3 2026-01-19 09:17:03.031918526 7011 売建 4722.0 100
4 2026-01-19 09:20:24.827427387 7011 買埋 4733.0 100 -1100.0
5 2026-01-19 09:20:25.829914808 7011 買建 4733.0 100
6 2026-01-19 09:20:50.927892685 7011 売埋 4730.0 100 -300.0
7 2026-01-19 09:20:56.957180262 7011 買建 4733.0 100
8 2026-01-19 09:27:09.437643290 7011 売埋 4727.0 100 -600.0
9 2026-01-19 09:27:10.453624249 7011 売建 4729.0 100
10 2026-01-19 09:34:51.333431959 7011 買埋 4730.0 100 -100.0
11 2026-01-19 09:34:52.339875698 7011 買建 4730.0 100
12 2026-01-19 09:37:52.522432327 7011 売埋 4723.0 100 -700.0
13 2026-01-19 09:37:53.538919926 7011 売建 4724.0 100
14 2026-01-19 09:39:04.958991051 7011 買埋 4738.0 100 -1400.0
15 2026-01-19 09:39:05.959220648 7011 買建 4738.0 100
16 2026-01-19 09:40:02.136487246 7011 売埋 4757.0 100 1900.0
17 2026-01-19 09:46:13.911532402 7011 売建 4750.0 100
18 2026-01-19 09:48:39.637725592 7011 買埋 4758.0 100 -800.0
19 2026-01-19 09:51:11.452517033 7011 売建 4753.0 100
20 2026-01-19 09:53:14.053920031 7011 買埋 4762.0 100 -900.0
21 2026-01-19 09:55:44.918386221 7011 売建 4754.0 100
22 2026-01-19 09:59:12.837409258 7011 買埋 4761.0 100 -700.0
23 2026-01-19 09:59:13.827526093 7011 買建 4761.0 100
24 2026-01-19 10:02:34.760155439 7011 売埋 4783.0 100 2200.0
25 2026-01-19 10:16:41.745836020 7011 買建 4786.0 100
26 2026-01-19 10:19:53.514409303 7011 売埋 4784.0 100 -200.0
27 2026-01-19 10:19:54.517772912 7011 売建 4784.0 100
28 2026-01-19 10:29:28.907285452 7011 買埋 4774.0 100 1000.0
29 2026-01-19 10:29:29.910410166 7011 買建 4774.0 100
30 2026-01-19 10:31:42.703819513 7011 売埋 4770.0 100 -400.0
31 2026-01-19 10:31:43.709114313 7011 売建 4770.0 100
32 2026-01-19 10:33:51.234358549 7011 買埋 4774.0 100 -400.0
33 2026-01-19 10:33:52.249752522 7011 買建 4774.0 100
34 2026-01-19 10:37:25.056361914 7011 売埋 4769.0 100 -500.0
35 2026-01-19 10:37:26.059480906 7011 売建 4769.0 100
36 2026-01-19 10:47:17.545570135 7011 買埋 4772.0 100 -300.0
37 2026-01-19 10:47:18.548232079 7011 買建 4772.0 100
38 2026-01-19 10:54:06.438935280 7011 売埋 4771.0 100 -100.0
39 2026-01-19 10:54:07.456300735 7011 売建 4772.0 100
40 2026-01-19 11:01:10.434369564 7011 買埋 4772.0 100 0.0
41 2026-01-19 11:01:11.437040806 7011 買建 4772.0 100
42 2026-01-19 11:17:51.804503202 7011 売埋 4786.0 100 1400.0
43 2026-01-19 11:18:07.896215916 7011 買建 4786.0 100
44 2026-01-19 11:29:50.087161779 7011 売埋 4793.0 100 700.0
45 2026-01-19 12:30:12.099140406 7011 買建 4809.0 100
46 2026-01-19 12:33:08.596887350 7011 売埋 4830.0 100 2100.0
47 2026-01-19 12:50:13.505411625 7011 売建 4836.0 100
48 2026-01-19 12:55:09.077579737 7011 買埋 4850.0 100 -1400.0
49 2026-01-19 12:55:10.077736616 7011 買建 4850.0 100
50 2026-01-19 12:57:44.828808546 7011 売埋 4846.0 100 -400.0
51 2026-01-19 13:05:57.962499857 7011 売建 4852.0 100
52 2026-01-19 13:11:52.605727911 7011 買埋 4848.0 100 400.0
53 2026-01-19 13:18:00.388759136 7011 売建 4843.0 100
54 2026-01-19 13:23:29.803816080 7011 買埋 4851.0 100 -800.0
55 2026-01-19 13:23:30.806491852 7011 買建 4851.0 100
56 2026-01-19 13:31:29.267422914 7011 売埋 4853.0 100 200.0
57 2026-01-19 13:44:17.683706045 7011 買建 4846.0 100
58 2026-01-19 13:53:59.061597109 7011 売埋 4850.0 100 400.0
59 2026-01-19 13:58:56.415534019 7011 売建 4847.0 100
60 2026-01-19 14:00:00.688704014 7011 買埋 4850.0 100 -300.0
61 2026-01-19 14:22:41.213833809 7011 売建 4864.0 100
62 2026-01-19 14:25:40.092090130 7011 買埋 4872.0 100 -800.0
63 2026-01-19 14:25:41.077488184 7011 買建 4872.0 100
64 2026-01-19 14:27:15.371663094 7011 売埋 4860.0 100 -1200.0
65 2026-01-19 14:27:16.387721062 7011 売建 4860.0 100
66 2026-01-19 14:28:56.974529266 7011 買埋 4869.0 100 -900.0
67 2026-01-19 14:28:57.993865252 7011 買建 4868.0 100
68 2026-01-19 14:30:07.172892094 7011 売埋 4866.0 100 -200.0
69 2026-01-19 14:32:42.765145540 7011 買建 4868.0 100
70 2026-01-19 14:35:45.686514854 7011 売埋 4865.0 100 -300.0
71 2026-01-19 14:37:36.126263618 7011 買建 4868.0 100
72 2026-01-19 14:49:32.547657728 7011 売埋 4881.0 100 1300.0
73 2026-01-19 15:01:44.128800154 7011 買建 4879.0 100
74 2026-01-19 15:03:39.718181849 7011 売埋 4875.0 100 -400.0
75 2026-01-19 15:03:40.719295740 7011 売建 4875.0 100
76 2026-01-19 15:04:23.926921844 7011 買埋 4880.0 100 -500.0
77 2026-01-19 15:04:24.929325819 7011 買建 4880.0 100
78 2026-01-19 15:06:29.388696909 7011 売埋 4876.0 100 -400.0
79 2026-01-19 15:06:30.374192715 7011 売建 4876.0 100
80 2026-01-19 15:08:28.807165384 7011 買埋 4879.0 100 -300.0
81 2026-01-19 15:10:47.343324184 7011 売建 4875.0 100
82 2026-01-19 15:21:12.332217693 7011 買埋 4877.0 100 -200.0
83 2026-01-19 15:21:13.333197832 7011 買建 4877.0 100
84 2026-01-19 15:24:50.690809965 7011 売埋 4876.0 100 -100.0
合計損益 -2800.0

累積損益の時系列トレンド

今日の累積損益の時系列トレンドです。

累積損益の時系列トレンド

テクニカル指標の時系列トレンド

環境内で管理している、売買シグナルのソースとなるテクニカル指標と含み損益のトレンドをプロットしました。

縦の赤線は、取引明細の時間から入れたもので、売買をしたタイミングになります。

移動平均系テクニカル指標の時系列トレンドと含み損益

 

売買ロジックへのインプット

売買ロジックは Maskable PPO 互換のインターフェイスを持った自作のアルゴリズムを備えた疑似モデルです。

なるべくシンプルなロジックで売買判断できることを目指しているため、現在のところ、[0, 1] あるいは [-1, 0, 1] といった離散的なシグナルをインプットするようにしています。

シグナル名を短縮してしまって意味が判りにくいので、それぞれの機能をまとめました。

  1. クロスS1
    • 移動平均 MA1, MA2 のクロスシグナル。デッドクロス、クロス無し、ゴールデンクロスを -1, 0, 1 とした売買用シグナル。
  2. クロスS2
    • クロスS1の 1 秒遅れの反対売買用シグナル。
  3. クロ強
    • MA1 の傾き(絶対値)が THRESHOLD_SLOPE より大きい場合に発生するクロス・シグナルの強さを示すシグナル。
  4. 乱高下
    • Rolling Range の値が TURBULENCE より大きい場合は、株価が乱高下しているとみなしてエントリを抑制するシグナル。
  5. ロス1
    • 含み損益が LOSSCUT_1 を下回った時にロスカットするシグナル。
  6. ロス2
    • 含み損益が N_MINUS_MAX 回より多く連続して負になったらロスカットするシグナル。
  7. 利確1
    • 含み益最大値 (Profit Min = PM) が、設定した最低値 THRESHOLD_PM_MIN より大きく、ドローダウン比率 (Draw Down Ratio = DDR) が設定したしきい値 THRESHOLD_DDR_MIN より大きくなったときに利確タイミングのシグナルを発生。
  8. 建玉
    • ポジション SHORT, NONE, LONG-1, 0, 1 としたシグナル。
売買ロジックにインプットしているシグナル

参考サイト

  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 件のコメント:

コメントを投稿