![見出し画像](https://assets.st-note.com/production/uploads/images/6041648/rectangle_large_94dddd3907a88263c5a76c60244829ae.jpg?width=1200)
【自動売買】bitFlyerスキャルピングテクニック【プログラム】
今回はご要望が多かったスキャルピングの自動売買用のコードについて記載していきます。
5/29 本文の最後に注文処理のサンプルを追記いたしました。
【4/26Websocket所感】
体感的にPubnubのリアルタイムデータより、2倍程度早くTickerの情報が受信できていました。
本プログラムは今まで紹介してきた通常のREST APIではなく、bitFlyerが提供しているPubnubのリアルタイムーデータに接続します。
また売買判断のロジックはリアルタイムTickerを蓄積させ、直近の蓄積データからレンジを形成し、現在価格によって形成したレンジに対して売買ポイントを設定します。
※チャネルブレイクが有効なトレンド相場ではなく、レンジ相場で短期的に取引を行います。
動作させると以下のとおりポジションオープン時とクローズ時でログを出します。
先ほどの図の抵抗線を超えた設定値に注文を入れ、同じ方向に進んだ場合はさらにナンピンしていきます。
(設定可能数量値を超えてのナンピンはしないように設定もできます。)
逆の抵抗線に来た際に全てのポジションをクローズします。
同じ方向に進むとドテンします。
動作させた例(2018/03/30)では1注文0.1BTCの最大ポジション数量2.0BTCで設定して動作させていますが安定して利益を取れます。
実行すると以下の項目がオーダー発生時に出力されます。
timestamp: ログの出力日時
ltp: ログ出力時の最終価格
side: オーダーの売買方向
order: オーダーの種類(ポジションのオープン or クローズ)
sum_price: ポジションの評価価格
val: ポジションの数量
pnl: 利益(損失がある場合はマイナス)
今回は上記の図にあるログ出力までの処理実装について記載しますが、実際に注文を行う処理については各自で実装をお願い致します。
(注文を実装すべき箇所にコメントを入れています。)
また、今回はコードの個々の説明は省き、売買判定の仕組みのみ記載します。
1 . 開発前に必要な設定
今回はpythonでコードを書いていきますが、python用のPubnubを使用するため、ライブラリのインストールが必要となります。
https://www.pubnub.com/docs/python/pubnub-python-sdk
にてライブラリのインストール方法が記載していますので、インストールをお願いします。
2 . コード説明
【概要】
コードの全体の流れとしては以下のとおりとなります。
①Tickerデータの蓄積
②レンジの形成
③現在の最終価格とレンジとの距離の計算
④処理③の結果売買判定
⑤注文処理
これら全体の処理をTickerが配信されるたびに実行しており、蓄積が必要な処理はglobalに設定し、リセットされないようにしています。
処理の個別の説明の前にプログラムのコード全体を記載します。
ここから先は
¥ 3,500
プログラムのことに関しては言語問わず対応できます。主にこれからプログラムを覚えていきたい+仮想通貨で自動売買をしたい人向けに記事を書いていきます。