(楽天証券の口座で取引する前提で)デイトレ自動売買を実現するには、Windows / Excel 上で マーケットスピード II RSS(以下、単に RSS と呼びます)を利用することがまずは確実な方法だと考え、Windows / Excel / VBA を使って自動売買のためのマクロを作ってリアルタイムの取引シミュレーションを始めています。
自動売買システムの開発状況は、参考サイト [2] にまとめてあります。
今日の Dry Run (2025-02-26)
評価用の銘柄は、「三菱UFJフィナンシャルG (8306)」に固定しています。この銘柄を評価用に選んだ理由は、出来高が多く(= 板が厚く)、試験運用を始めるときに使えそうな価格帯の株価と判断しているからです。
ティックデータと Parabolic SAR
RSS から取得したティックデータと1分足の OHLC データから Excel VBA のマクロが算出した Parabolic SAR(以降 PSAR と呼びます)を、事後に Python の自作シミュレータ・アプリで読み込んでプロットしたものです。
下のプロット(縦軸ラベルが Profit/Loss)は、PSAR のシグナルに従ってトレンド変換したところから、ドテン売買した場合の含み損益のトレンドを示しています。
売買履歴(シミュレーション)
売買単位は 100 株で、ナンピンなど一切無しに、この 100 株だけで建玉を売買するという想定です。
VBA マクロが書き込んだ Excel 上の売買履歴のシートを Python で読み込んで HTML のテーブルに変換しました。
| 注文番号 | 時刻 | 売買 | 金額 | 損益 | 最大益 | 最大損 | 備考 | 
|---|---|---|---|---|---|---|---|
| 1 | 09:08:02 | 売建 | 194,700 | 建玉, period = 1 | |||
| 1 | 09:08:08 | 買埋 | 194,700 | -250 | 50 | -250 | 損切1, period = 1 | 
| 2 | 09:36:01 | 売建 | 193,000 | 建玉, period = 5 | |||
| 2 | 09:37:01 | 買埋 | 193,000 | -100 | 0 | -200 | 損切2, period = 6 | 
| 3 | 09:51:01 | 売建 | 192,050 | 建玉, period = 1 | |||
| 3 | 09:53:52 | 買埋 | 192,050 | -250 | 50 | -250 | 損切1, period = 3 | 
| 4 | 10:01:01 | 買建 | 192,500 | 建玉, period = 3 | |||
| 4 | 10:04:16 | 売埋 | 192,500 | -250 | 350 | -250 | 損切1, period = 6 | 
| 5 | 10:07:01 | 売建 | 191,850 | 建玉, period = 1 | |||
| 5 | 10:19:35 | 買埋 | 191,850 | 150 | 600 | 0 | 利確1, period = 13 | 
| 6 | 10:21:01 | 買建 | 191,800 | 建玉, period = 1 | |||
| 6 | 10:28:47 | 売埋 | 191,800 | -250 | 200 | -250 | 損切1, period = 8 | 
| 7 | 10:32:01 | 売建 | 191,400 | 建玉, period = 3 | |||
| 7 | 10:33:12 | 買埋 | 191,400 | -250 | 0 | -250 | 損切1, period = 4 | 
| 8 | 10:56:01 | 売建 | 190,950 | 建玉, period = 5 | |||
| 8 | 11:11:01 | 買埋 | 190,950 | -50 | 150 | -100 | 返済, period = 19 | 
| 9 | 11:12:01 | 買建 | 191,150 | 建玉, period = 1 | |||
| 9 | 11:24:01 | 売埋 | 191,150 | 0 | 250 | -100 | 返済, period = 12 | 
| 10 | 11:26:01 | 売建 | 191,000 | 建玉, period = 2 | |||
| 10 | 11:29:26 | 買埋 | 191,000 | -300 | 100 | -300 | 損切1, period = 5 | 
| 11 | 12:32:01 | 買建 | 191,950 | 建玉, period = 1 | |||
| 11 | 12:35:07 | 売埋 | 191,950 | -250 | 150 | -250 | 損切1, period = 4 | 
| 12 | 13:03:01 | 買建 | 191,500 | 建玉, period = 1 | |||
| 12 | 13:07:29 | 売埋 | 191,500 | -250 | 0 | -250 | 損切1, period = 5 | 
| 13 | 13:40:00 | 買建 | 191,200 | 建玉, period = 1 | |||
| 13 | 13:53:00 | 売埋 | 191,200 | -50 | 300 | -50 | 返済, period = 13 | 
| 14 | 13:56:00 | 売建 | 191,100 | 建玉, period = 3 | |||
| 14 | 14:01:05 | 買埋 | 191,100 | -250 | 50 | -250 | 損切1, period = 8 | 
| 15 | 14:24:00 | 買建 | 191,650 | 建玉, period = 1 | |||
| 15 | 14:24:50 | 売埋 | 191,650 | -250 | 0 | -250 | 損切1, period = 1 | 
| 16 | 14:37:00 | 買建 | 191,700 | 建玉, period = 2 | |||
| 16 | 14:46:00 | 売埋 | 191,700 | -100 | 250 | -100 | 返済, period = 10 | 
| 17 | 14:54:00 | 買建 | 191,850 | 建玉, period = 1 | |||
| 17 | 14:59:00 | 売埋 | 191,850 | -150 | 0 | -200 | 損切2, period = 6 | 
| --- | --- | --- | 実現損益 | -2,850 | --- | --- | --- | 
今日も全然ダメでした。損益は -2,850 円のマイナスになってしまいました。
今日の 8306 の株価は、高値 1,955.0 円、安値 1,908.0 円で 47.0 円差でした。暫定で決めた良し悪しの尺度を算出しました。
本日の Dry Run の成績
実現損益 -2,850 円 ÷ (47.0 円 × 100 株) × 100 = -60.6 %
今回は、「損切1」のしきい値が小さすぎて、前場で含み益が出る前に損切りしていましたので損切りレベルを大きくし、あと、今日の後場のように無駄にエントリーしてしまわないように更にエントリー条件を厳しくします。これを明日試します。
- 損切ファクタ(損切1)
 - 含み益が出る前に損切りしているのでしきい値を拡大。
 - 5 → 7
 - 呼び値(この銘柄は 0.5 円)の 7 倍分の含み損(= -350 円)になったら、1 秒間隔の精度で即損切り。
 - 平常時のエントリ条件のうち、IQR の呼び値ファクタ
 - エントリ条件を更に厳しくした。
 - 2 → 4
 - 過去 2 分間の ティックデータの IQR が、呼び値の 4 倍以上(かつ、トレンド方向に変化)であればエントリする。
 
今日のログに対して、VBA アプリのシミュレーションで上記条件を試したところ、全注文セット数が 17 → 5 に激減、実現損益もプラス(+450 円)になりました。シミュレーションではタイミングが微妙に異なるためリアルタイムの Dry Run とけっして同一の実現損益にはならないのですが、効果を検証できます。
現時点では利益を最大化するよりも、無駄なエントリで損失を重ねないようにすることを優先します。
参考サイト

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