楽天証券の口座でデイトレの自動売買に挑戦しようと Windows / Excel 上で利用できる マーケットスピード II RSS を活用して Python であれこれ取り組んでいます。この「自動売買への道」のトピックでは、プログラミングの話題にも踏み込んで、日々の活動をまとめています。
デイトレ用自作アプリ
以下は株価・取引に関連する情報の流れを示しています。
楽天証券では、Python からネットワーク越しに直接取引できるような API が提供されていないので、マーケットスピード II RSS を介して取引をする構成を取っています。
一週間の試験運用を経て
セミオートの機能を備えた自作アプリの試験運用を今週から始めました。機能確認が目的だったので、前場で取引はお終いにしました。
当初、短周期の移動平均線 MA1 と長周期の移動平均線 MA2 のクロスシグナルで売買判断をしようと、おそるおそる取引を始めました。
しかし VWAP(売買高加重平均価格)をチャートに追加したことをきっかけに、ひょっとしたらと思ったことを試したい衝動を抑えきれず、水曜日から MA2 を VWAPに変更してしまいました。
短周期の移動平均線 MA1 と VWAP の組み合わせでは、寄り付き後に適切にエントリできれば、大引けまで含み益を増やしていけそうな感じでした。
これは、試した銘柄や時期でたまたまそうなったのだとは思いますが、それでも他の銘柄の過去のティックデータでも取引シミュレーションをして確認したところ、移動平均線 MA1 / MA2 の組み合わせに比べれば、 MA1 / VWAP でのクロス・シグナルの発生頻度ははるかに少ないように見えます。
どの銘柄でもそうなるとは限りませんが、「寄り付き後に適切なタイミング」でエントリできれば、あとは大引けまで眺めていられる、というのはちょっと魅力です。もしも、そんな銘柄ばかりだったら、アプリを動かす PC を強化して、同時に扱える銘柄数を増やせば良いのです。実際はそんな銘柄ばかりではありませんが…。😅
ただ、寄り付き後の適切なエントリに固執するあまり、無駄なエントリを重ねて取引開始直後から損失を増やすことが多かったことも事実です。
来週は、このエントリの改善に取り組みます。
デイトレ用取引アプリの構成概略
現在のアプリは、エントリ:手動、エグジット:自動(+手動)の構成になっています。
- マーケットスピードⅡ RSS / Excel とのやりとり
- 複数銘柄(20 銘柄程度)のティックデータを収集
- 4 本足データは使用していません。
- アプリが取得する情報は、時刻、株価と出来高のみ
- ティックデータの取得頻度は、マーケットスピードⅡ RSS のデフォルトの更新頻度の 2 秒
- 収集したティックデータは、銘柄コードをシート名にした新規 Excel ブック (.xlsx) に自動保存
- 信用建玉発注・返済(成行注文)
- 取引対象の銘柄は、ティックデータを収集する銘柄から選択
- 取引対象の銘柄数に上限なし。ただし、スクロールなしに一画面で値動きを見られるのは 3 銘柄まで。
- Excel 側に、RSS の VBA 関数で発注・約定確認をするユーザー VBA 関数を実装
- Python 側からVBA 関数を実行。
- 含み益の情報は Excel から取得せず、アプリ内部で見込み額を算出
- 株価チャート
- トレンド
- 株価トレンド線(灰色、ほとんど見えない)
- 最新株価の点
- 短周期移動平均線 MA1 と VWAP のトレンド線
- MA1 と VWAP がクロスしたタイミングの縦線
- 直近のゴールデン・クロスとデッド・クロスを色を変えて表示
- 一般の取引ツールと異なり、当日の取引時間幅に固定したチャート
- デイトレは取引時間内の値動きに集中したいので、どうしてもこのようなチャートにしたかった。
- 手動エントリ
- 買 建 と 売 建 ボタンをクリックして手動でエントリ
- クリック可能なボタンの制御は、ナンピンができないロジックになっている。
- 建玉があるときに 返 済 ボタンをクリックすれば手動で返済(エグジット)することも可能
- 自動エグジット
- 移動平均線がクロスしたタイミングで建玉があれば返済
- トレーリングストップによる利確
- ドローダウンとドローダウン比率を設定して運用
- トレーリングストップは、含み損益 \(profit\) が 最大含み益 \(profit_{max}\) からどれだけ落ちたら利確するかを決める仕組みです。
-
\[ \text{drawdown} = profit_{max} - profit \]
-
\[ \text{drawdown_ratio} = \frac{drawdown}{profit_{max}} \]
- 含み損がしきい値(マイナス側)を超えればロスカット
- 含み損が連続して設定回数を超えればロスカット
参考サイト
- マーケットスピード II RSS | 楽天証券のトレーディングツール
- マーケットスピード II RSS 関数マニュアル
- 注文 | マーケットスピード II RSS オンラインヘルプ | 楽天証券のトレーディングツール
- PythonでGUIを設計 | Qtの公式Pythonバインディング
- Python in Excel alternative: Open. Self-hosted. No limits.
- Book - xlwings Documentation



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