下記をダウンロード、解凍してください。
中身は下記の通りです。
- liquid_self_match.exe(実行ファイル)
- lsm_conf.ini(設定ファイル)
- liquid_self_match.py(ソースコード)
仕様
liquid_self_match.exeの処理は下記のとおりです。
保有しているBTC現物とレバレッジショートポジション、どちらか小さい方の量のBTC現物をスプレッド内価格で売り指値を出します。
それとほぼ同時にレバレッジショートポジションを全量、決済します。
つまり下記の通りです。
- BTC現物とショートポジションが同量の場合、全て決済されます。
- ショートポジションの方が多い場合も、全て決済されます。
- BTC現物の方が多い場合はショートポジションの分だけ決済するのでBTC現物が一部残ります。
BTC現物が残っても困りませんがレバレッジポジションが残るとスワップが取られてしまうのでこのような仕様にしています。
pythonいじれる方へ
コードは好きにいじって利用してください。(売り買いを逆にするなど)
ミソはスレッド処理で0.3秒ずらせば高確率で自己売買できますよ。というところだけです。
実行準備
ご自身のliquidアカウントで注文を出せるように設定を行う必要があります。
この作業は初回だけです。
APIキーの取得
liquidのページで「右上の三→APIトークン」
「APIトークンを新規作成する」で下記の通りチェックをつけて2FA入力→確認。
(チェックは絞ってもいいのですが多分liquid側の問題でちゃんと機能していないようなので全部チェックすることをおすすめします。)
これでAPIキーが表示されます。
記載の通り1度しか表示されないので画面を消さないでください。
lsm_conf.iniをメモ帳で開いてIDをapiidに、秘密鍵をapisecretにコピペします。
右の「コピー」を使うと確実です。
lsm_conf.iniは上書き保存してください。
これで準備は完了です。
実行方法
liquid_self_match.exeをダブルクリックします。
以上です。
取引が完了すると「レバレッジポジションを全て解消しました。~」というメッセージが出ます。
問題があった場合は別のエラーメッセージが出て終了します。
練習
いきなり本番で使うのは怖いと思うので下記の通り試行してみることをおすすめします。
- liquidで現物0.001BTCを購入する
- liquidのレバレッジ取引で0.001BTCをショートする
- 現物0.001BTC、ショート0.001BTCを持った状態でliquid_self_match.exeを実行する
- 数秒後、「レバレッジポジションを全て解消しました。~」のメッセージが表示される
- 実際にポジションが解消されていることを確認する(一番わかりやすいのはliquidの取引レポート)
自己売買が成立していると取引レポートでは下表の通り「Self-Match」という表記になります。(100%成立するとは限りません。)
その他
Zaif版は未作成です。
それは下記のような理由があります。
- Zaifは板が薄いので自己売買も手動で容易。(一番の理由)
- liquidは最近まで最大レバレッジ25倍だったので使用するのはほぼliquid一択だった。
板が厚くなってきたら必要に応じて作成しようと思っています。