IB証券のAPIで自動取引をしよう(4):ボットクラスでいろいろな手法に対応する。

今回はボットクラスを作ります。IBのいつものフォルダに、IB_bot.pyというファイルを作りましょう。今回は、ストラテジーとして、1.Butterfly (Call or Put)、2.Iron Condor、3.Vertical Credit Spread (Call or Put)、4.Equity(現物)を取引できるようにボットを組みます。

今回も特殊なライブラリーは特に必要ないはずです。いままでに作ったコードを使います。前回の記事の1-3も今回のボットに対応するために多少変えてあります。

まずは、フォルダ構造をみてみましょう。IB_Pullback.pyは、まだデザインの途中で、おそらく次回に公開できるかと思います。Technical.pyは、STOCHプルバックの記事に添付しました。IB_bot.pyが今回のトピックになります。これでいちおう主なオプション戦略のボットが走らせられるようになるはずです。


手法としては、ボットテンプレートクラスというのを最初に作り、それをもとにいろいろなボットを簡単に作るようなものを目指します。Templateクラスは長いですが、そのあとにある、それぞれの手法の例を見れば、簡単にボットが組める感じもわかるでしょう。しかも使い方は、Loginしたあとに、2行コマンドを書くだけです。

安全のためにself.real_tradeはFalseになっています。これをTrueにすると本当に注文してしまいます。

使い方は、例によって

if __name__ == "__main__":

の後の部分になっています。たった2行です。基本はボットの部分のパラメータを変更して、走らせる感じになります。パラメータも名前を見ればわかるように書いたと思います。

名前が付けられるようになっているのは、同じボットを複数違うインスタンスで動かすときに、名前を買えないとファイルにいれるときに困るからです。2個のボットを同時に動かすときは必ず名前を変えるようにしてください。名前にはスペースやアンダースコア以外の特殊記号は避けてください。

テクニカルも一応使えるようになってはいますが、今のところ空っぽになっています。将来のノートで使い方を説明します。とりあえず、オプションショートで利益を出すことはすぐにできるようになったと思います。

ストップロスとトレールストップロスは、実装していますが、完全にテストするのは難しいですね。おそらく動くと思いますが、ここは完全にテストする前にリリースしてしまいます。コードは日々アップデートしていきます。

それではコードです。

コード

ここから先は

39,820字

¥ 11,000

この記事が気に入ったらサポートをしてみませんか?