(楽天証券の口座で取引する前提で)自動売買を実現するためには、Windows / Excel 上で マーケットスピード II RSS(以下、単に RSS と呼びます)を利用することが近道であると結論づけ、今更ながら Windows / Excel / VBA を使って自動売買のためのマクロを作り始めました。
VBA にどっぷり浸かった年末年始
先月 12 月は、リアルタイム(実際には 1 秒間隔で現在株価を取得)で売買シミュレーションができる VBA マクロを、やっつけで作ってシミュレーションを繰り返していました。シミュレーションの前提(概略)は下記の通りです。
- OHLC(四本値)データは RSS が Excel シートに流し込む 1 分足データを使用
- 現在株価は 1 秒間隔で取得
- 売買判定は Parabolic SAR の売買トレンドによるドテン売買
- 売買(約定)は現在株価で成立すると仮定
- 取引時間は 9:00:00(あるいは寄付後)から 15:24:50 まで
- 検討事項
- Parabolic SAR のトレンド変換でドテン売買をするだけでは収益が上がらないので、含み損益を監視して、より早いタイミングで利確あるいは損切をするアルゴリズムを導入。[短期的課題]
- アルゴリズムがある程度固まった後、DLL に移行できる部分は C/C++ でコーディングし直して処理を高速化する。[中・長期的課題]
今回の年末年始は東京市場の大発会が 1 月 6 日(月)であることから、6 日間も休場です。この休みはやっつけで作った VBA のコードを見直す絶好の機会と捉え、大晦日から集中してアルゴリズムとコーディングの全面的な見直しに取り組んでいました。
メンテナンスの容易さを確保するため、当面はシンプルに一枚のワークシートで運用するようにしました。このシートに 1 分足データおよび 1 秒間隔で取得した株価を記録し、売買履歴も作成しています。
また、共通の処理アルゴリズムに対して、リアルタイム・シミュレーションと事後のシミュレーションを切り替えられるようにしました。リアルタイム・シミュレーションの部分には RSS の売買関数を適用して、実際の自動売買へ移行することを目指しています。
シミュレーションでは、売買の他に処理時間の計測もしています。VBA の処理が案外遅いことと、使用している Windows PC は古い安物で、処理速度が低いため、1 秒間隔の処理に見合う処理時間かどうかを継続的にモニターする必要があると考えたからです。
計測している時間のうち、もっとも重要な時間は Step Time(1 秒間隔で呼び出される処理に費やされた時間)です。総時間から算出できる 1 ステップ当たりの平均時間では安心できないので、最も長く掛かった Step Time を監視して残すようにしています。下記は典型的な時間です。
Maximum Step Time (sec) 0.05078125
約 0.05 秒という時間は、1 秒間隔で繰り返すステップ処理としては余裕がありますが、これから利確や損切処理を加えていくので、処理時間は増えていく一方です。今までの経験より、単純なしきい値を設定しただけでは、効果的な利確や損切にならないことが判っているので、ここが時度取引を実現する肝となりそうです。
来週からの運用に備えて、さらにコーディングの洗練に努めることにします。
参考サイト
- マーケットスピード II RSS | 楽天証券のトレーディングツール
- bitWalk's: 【備忘録】Excel VBA で Parabolic SAR を算出 [2024-12-31]
- 自動売買への道 (2024-12-16) | 私の株日記
- 自動売買への道 (2024-12-06) | 私の株日記


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