FIRE: 投資でセミリタイアする九条日記

九条です。資産からの不労所得で経済的独立を手に入れ、自由な生き方を実現するセミリタイア、FIREを実現しました。米国株、優待クロス、クリプト、太陽光、オプションなどなどを行うインデックス投資家で自由主義者、リバタリアン。ロジックとエビデンスを大事に、確率と不確実性を愛しています。

自動注文スクリプトをKatalonで作ってみる

Webアプリの開発には「テスト」という重要な作業があります。このテストを自動化するツールを使って、Webを自動操作して注文する方法を考えてみました。今回使ったのはChromeWebブラウザで動作するKatalon。ほかにもよりコンシューマユースのiMacrosなどもありますが、好みですね。

Web操作を記録するKatalon

KatalonはChromeの拡張機能です。インストールして実行すると、下記のような画面が出ます。ここで「Record」を押してWeb画面を操作すると、右カラムの部分に操作が記録されます。「Stop」を押して記録を完了したら、スクリプトのできあがりです。
f:id:kuzyo:20200630002428j:plain

Playを押すと自動実行

操作をスクリプト化したら、「Play」を押すと自動的にWebが操作されます。今回作ってみたのは、日興証券で決めた銘柄を検索して表示して注文まで行うものです。

 

次のように銘柄が自動表示され、

f:id:kuzyo:20200630002515p:plain

 自動的に「信用取引」ボタンが押されます。

f:id:kuzyo:20200630002604j:plain

 「信用新規売り」が押され、「3年(一般信用)」、注文数量「100」、単価は「指値」、金額は現在価格よりも8円ほど上にしました。期間を「今週中」、そして「注文」ボタンが自動で押されます。

f:id:kuzyo:20200630002621j:plain

 スクリプトの限界と注意点

今回はあまり高度なことをせず、ワンボタンで指値売り注文を実行できるところまでを行いました。全くプログラムを書かずにささっといけるのは、このくらいでしょうか。画面上の値幅上限値の取得にはスクリプトが必要なので、工夫したのは次の点です。

  • 本当は値幅制限上限を指値に入れたいが、いまのところ現在地+7円の指値

これによって、争奪戦の際にもいちいち手動操作せずに、一気に注文までいけますね。

 

ただし注意点もあります。+7円の指値なので、注文が通ったら、あとで指値の変更が必要です。+7円ではなくもっと高い価格にすることもできますが、値幅制限は銘柄によって違うので、汎用性のためにこうしてみました。

 

またテストでスクリプトを実行すると、当然注文が入ってしまうので、不要な注文はあとで取り消さないとたいへんなことになります。

今後の拡張

Katalonはかなり高度なテストツールなので、スクリプトを書けばもっともっと複雑なことが可能です。例えば、「While」文と変数を使うことで、注文操作をループさせることもできます。ちょっとUIに癖がありましたが、スクリプトの構文自体は一般的なので、それほど悩むところではありませんでした。

 

今回はスクリプト自体に「銘柄コード」や「株数」などを埋め込んでいますが、これらをCSVファイルにしておいてKatalonから動的に読み込み、処理させることもできます。さらに、処理結果をテキストファイルに書き出して、チェックすることもできます。

okometsubulog.hatenablog.com

Katalonはウインドウ1つに対して1つ動作するようなので、ウインドウを複数開いてあげれば、複数の自動操作を同時に行うことも可能です。

 

同一証券会社で複数アカウントに対して操作を行いたい場合は、同じくChrome拡張の「MultiLogin」を使えば、プロファイルを分けてログインと操作も可能ですね。

chrome.google.com

スクリプトによる発注自動化は、スマホアプリとAutoClickerなどの自動化ソフトを使っても簡単に行えます。ただし、一つの操作に対して一つのスマホが必要になってしまうのが問題です。PCのブラウザで動くスクリプトならば、同時に複数の実行が可能なところがいいところです。

注意書き

ちなみにスクリプトを作ってみたのは純粋な好奇心からで、実際にこれをガンガン稼働させる気はありません。プログラムによる自動売買を禁止している証券会社もありますし、そうでなくても高速高頻度な操作は証券会社からDoS攻撃とみなされるリスクもあるでしょう。

 

またスクリプトのミスや想定外の挙動により、思ってもみなかった損害が発生する可能性もあります。実際のお金が動くものだけに、注意しすぎてもしすぎることはありませんね。

 

でも、スクリプトを稼働させないともはやザラバで落ちてくる信用売在庫を取れないのも事実です。早押し競争も、手動ではもはや勝てません。証券会社は、そろそろこうした現実を見据えて、ユーザーの意図に沿った操作予約などができるUIを開発してほしいところでもあります。まぁニッチなニーズだとは思いますが。

 

www.kuzyofire.com