PythonでシストレBotを作る①~シストレを作る流れを把握する

スポンサーリンク

システムトレードとは何か?

シストレというのはFXや仮想通貨取引などで「自分で決めたルールをPCにインプットして、そのルールに則ってPCにトレードをさせる」ものです。このルールには基本的に移動平均線・MACD・RSIなどのテクニカル指標が採用されることが一般的です。

例えばRSIを使うとするならば、テクニカル指標のひとつであるRSI が30以下になったときに買い、RSIが80以上になったら売るといったなどのルールを設定して、トレードをおこないます。

こんな感じでシステムトレードというのは、分足などをから算出したテクニカル指標を使うことが一般的です。その発展系としては機械学習による分類やニューラルネットワーク・ディープラーニングによる深層学習、強化学習があります

シストレに使うプログラミング言語

システムトレードを行うBotを作るには丁寧に設計を行う必要があります。まあプログラミングは全部そうなのですが、一か所でもエラーがあるとプログラムは動きません。

Botを作るために使用するプログラミング言語は何でも基本的にできますが、PythonやRubyなどがノウハウを書いたブログが一般あるので、pythonかRubyのどちらかを使うのがオススメです。まあ個人的にはPythonの方がGoogleなどでも採用されており、今後のIT業界で潰しがきくプログラミング言語だと思うのでPythonの方がオススメです。

Botの仕組み

まずはBotが売買判断を下すためのデータ集めが必要で、そのために仮想通貨取引所から、ticker(価格データ)を一定時間ごとに取得してそのデータをデータベースに蓄積します。

なのでシストレBotを作るためには、まずデータベースを作る必要があります。Pythonの場合ならば、データベースの作成するにはSQLと連結させたりpandasをインポートしてDataframe(データフレーム)として保管するのがオススメです。

個人的にはPythonが好きなのはこういうウェブマシーンとして、インターネットに接続して情報を送ったり収集したりする環境が整っているという点にあります。ですが、SQLとかよくわからんという人は単純にプログラム内のリストに数値を格納しておくだけでもBot自体は成立します。

そしてその集めたデータから移動平均線やボリンジャーバンドを計算し、トレード判断の材料とします。移動平均線ならば短期移動平均線(5分足)が長期移動平均線(20分足)を抜ければゴールデンクロスということで買い、逆に長期を短期が突き抜ければデッドクロスということで売りということになります。

スポンサーリンク

自動取引Botがしていること

自動取引というと漠然としたイメージでいきなり自動取引Botを作ろうと思っても、まず何から手を付けたらいいのか分からなくなりがちですが、自動取引Botも中身を細かく分けると単純なプログラム指示を積み重ねてループさせているだけです。

なので、自動取引Botは大まかな流れを理解し、一つ一つの命令を組み合わせれば簡単に作ることができます。シストレBotの大まかな流れは以下のようになります。

開始

ルールを決める

データベースにアクセスし、指標の計算

取り引き所にアクセスし板情報と現在価格(ticker)を取得

設定条件を満たした場合買い注文を作成

注文できる残高があるか確認 →なかったら終了

買い注文を送信する

注文が取引所に送金できているか確認→送金できてなかったらキャンセル 

残高の確認

売却価格の決定

売り注文の作成

売り注文の送信

送信できたか取引所に確認→

最初に戻る

まあここまで細かくせずとも海外の仮想通貨取引所の場合は手数料が超少ないので、指値で注文せずとも成行注文でも利益が出ると思います。

この辺の詳しい説明は個人投資家のためのFinTechプログラミングという参考書に書いてあります。この本の惜しいところはデータベースの作り方と連携させる方法が紹介されていないため簡易的なBotのコードしか載せられていない点ですが、それでもBotの大まかな骨子があるので、始めてPythonで自動取引Botを作るという人にはとても参考になると思いますし、実際にビットフライヤーやZaifへの自動取引のコードが用意されていたり、数あるシステムトレードの参考書の中でも実践的なのでとてもオススメです。

次は実際に仮想通貨取引所のAPIを使って価格データ(ticker)や板情報を取得していきます。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする