見出し画像

高頻度取引Bot専用フレームワーク(SFDロジック&MMロジック付)

お知らせ

2020/3/1
Linux環境でデータ収集モードが機能しない不具合を修正しました。(v1.0.3)

2020/2/23
LiquidのリアルタイムAPIから受信したデータの処理が正常に動かない不具合を修正しました。(v1.0.2)

2020/2/22
Liquidを使用した際にポジション補正が正常に動かない不具合を修正しました。(v1.0.1)

2020/2/16 
■ 約定ベースモードについて 17:12
linux環境で約定ベースモードに設定したとき、ロジック処理が実行されない不具合を修正しました。

■ 付属ロジックについて
SFDロジックの発注部分がコメントアウトされていたのダウンロードファイルを修正しました。

■ 10. 設定ファイルについて
設定ファイルの場所、APIキー、ログレベルについての説明を追加しました。

1. フレームワークの概要

このフレームワークは昨年10月まで僕が実際に運用していた高頻度取引を行うことを専門としたフレームワークになります。しばらくBot開発から離れることを機に、実際に使用していたコードをほぼそのままの形で販売することを決断しました。

以下のnoteで無料公開したロジックを動かすために必要なフレームワークになります。また、このロジックを動かすためだけに開発したものになります。高頻度取引を行う上での基本的な機能はそろっていますが、サポートが充実で豊富な機能を持ったフレームワークを求めている方等には向いておりません。その場合は、BFS-XNeoDuelBot等の優秀なフレームワークがございますのでそちらをご検討ください。それを踏まえた上で、競争が激化している高頻度取引Botを高速に処理させることに興味がある方はご自分のロジックのベースにしたり、高頻度取引Bot開発時の参考にしていただければ幸いです。

また、同時に高頻度取引専用の約定履歴を用いた高解像度C++バックテスターも公開しましたのでご検討いただければ幸いです。

2. おまけロジックについて

実際に使用したSFDロジックと、無料公開したロジックファイルがおまけとして同封されております。
損益グラフの画像があまり残っていないので日付がバラバラになりますが、画像フォルダを漁って見つけたものになります。

■ 無料公開したロジック
こちらのロジックは2アカウントで日次10万円ほどでした。今年の約定履歴履歴で検証した結果、まだ指標自体は生きているみたいです。

画像2

■ SFDロジック
この2日間は取引量ランキング1〜2位を推移していました。

画像3

3. フレームワークの特徴

■ 複数取引所対応
現状は以下の取引所に対応しており、ご自身で取引所を追加していただくことで共通のロジックファイルを複数の取引所でお使いいただけます。

bitFlyer
Liquid

■ C++を併用して高速化
基本な部分はpythonで作られておりますが、約定履歴やポジション情報等の大量のデータ処理やロジック独自の指標計算等をC++モジュールとして切り出すことで高速化を図っています。シンプルなロジックで生き残ることができたのはこの影響が大きいかと思っております。

■ 注文専用スレッドプール
高頻度取引Botでは注文を送信してからAPIとの通信が完了するのを待っていては出遅れてしまいます。注文専用のスレッドプールを使うことで、注文後に即座に次の処理に進むことが可能になります。

■ 2つ動作モード
以下2つのモードに対応しております。
また、高頻度取引専用のため、ロウソク足を扱うようなロジックは想定しておりません。基本的にどちらのモードも約定や板などを指標化したものをもとに売買判断を行い、リアルタイムに取引を行います。

時間ベースモード
設定したインターバルでロジックが動作します。

約定ベースモード
新しい約定を受信するたびにロジックが動作します。

■ ポジション自炊
約定履歴をつかったポジションの自炊に対応しており、設定した周期でサーバーの実ポジションと照らし合わせて補正を行います。

■ 取引所サーバーの遅延状況数値化
約定履歴から数値化した遅延状況を簡単に取得できるため、売買判断に活用できます。

■ リアルタイムAPIでの約定履歴や板情報の取得
Websocketを活用して約定履歴や板更新情報を管理しており、APIリミットの節約につながります。
また、約定履歴履歴を使って板情報を補正することで情報遅延の低下を図っています。

■ 約定履歴収集機能
高頻度取引Botでは指標の検証やバックテスト を行う上で約定履歴が欠かせません。起動コマンドでデータ収集モードに切り替えることで、遅延情報等の各種データと共に全約定履歴を保存することが可能です。(別途MySQLサーバー等が必要になります)

■ ログ情報のファイル出力と通知
ログ情報はすべて日ごとのファイルに出力され、想定外のエラーやAPIエラーが発生した場合、指定したDiscordのチャンネルにログを送信します。

■ ロジックパラメーターのリアルタイム更新
ロジックに使用するパラメータを外部ファイルから読み込むことで、リアルタイムにパラメータを更新することができます。

■ メンテナンス期間の自動停止&復旧
リアルタイムAPI及びロジックを取引所のメンテナンス中に停止することができます。メンテナンスのタイミングで発火されるイベントで、ロジック ごとの処理を記述できます。

■ リアルタイムAPIの自動再接続
WebSocketの接続を常に監視し、接続が切れてしまった場合は自動的に再接続します。

■ 低いCPU使用率
GCP(vCPU1 メモリ3.8GB)でのCPU使用率が約1%(冒頭のMMロジックを使用したとき)

■ アーキテクチャ
フレームワークのアーキテクチャを簡単な図で表したものになります。

画像1

4. 動作環境について

基本的にAWS等のVPS上のlinux環境(CentOS7)で使用することを想定しておりますが、python3.6.5以上が動作する環境があればローカルPCでも稼働することができます。C++モジュールに関しては、linuxとmac用にビルド済みのものを提供します。ご自身のロジックの指標計算を高速化させるためのモジュールを追加したり、既存モジュールのカスタマイズを行いたい方はC++のビルド環境を構築する必要がございます。(環境構築に関して基本的に説明は致しますが、サポートは行いません)
また、windowsに関しては動作確認を行っておりません。

pythonの環境構築に関してはこちらが参考になります。

5. サポートについて

サポートを一切行わない販売形態となりますのでご注意ください。

6. 注意事項

・このフレームワークは今後継続的な開発が行われるなど、新たなアップデートが提供されるものではありません。
・環境構築や起動方法、ビルド方法等、サポートは一切致しません。
・環境によってはビルドスクリプトを書き換えないといけない可能性があるかもしれません。
・付属ロジックを使ったからと言って必ず儲かるものではありません。フレームワークをベースに、ロジックを開発する必要があります。
・本ソフトウェアに関して発生するいかなる問題又は損失に対し、⼀切の責任を負わないものとします。
・本noteに記載された内容の転売及び転載等は禁止とさせて頂きます。

ここから先は

6,566字 / 2ファイル

¥ 35,000

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