見出し画像

BitMEXでギリギリに指値を入れるツール。Python使用。シンプル版。

2019年11月8日より有料とさせていただきました。

これまで無料で公開させていただいていましたが
他の方がBitMEXでのAPIでの価格取得などの情報を販売されているということをご指摘いただきました。
こちらのツールのコード内ではWebsocketによる高速なLast,Ask,Bidの取得の情報がありますので、価格取得方法だけの方よりも1円高い価格で有料とさせていただくことにしました。

このコードでできること

レバレッジとロットを入れておいて、
ロングかショートボタンをクリックするだけで、一番約定に近い位置で指値を入れることができます。
こんな見た目です。

リアルトレード使用時とテストネット使用時で色を変えています。

画像1

画像2


価格を入力する必要がないので高速にトレードできます。

注文した瞬間に価格が動いて、
成り行きの価格になってしまうことがままあります。
その場合は注文すると即座にキャンセルされます。
もう一度ボタンをクリックして
注文し直す必要があります。

つまりこのツールの注文では絶対に成り行き注文にはなりません。
ただ、注文が通らないこともあるということです。

BitMEXのXBTとUSDのペアのトレードのみ検証済みです。
一応簡単に変えられます。

最前面に常に表示する。選択可。

テストネットとリアルトレードの選択。
必ずテストネットで試してください。

仕様

Python3.7で作成しました。

価格の取得はwebsocketを使用しています。
GUIと別のスレッドで価格の取得をしています。

取得頻度は、デフォルトでは0.1秒おきに設定してあります。
もっと速くすることも可能です。

GUIはtkinterで作りました。
GUI上での設定はレバレッジとロットの入力のみ。

1USDとか、少額のロットで高頻度で連打すると、BitMEXからスパムの疑いをかけられます。
最悪アカウントをBANされるかもしれません。
気をつけてください。

使用する際の準備

python3が使用できる環境。

いくつかのモジュールのインストール。

import threading 
import time
import datetime
#高速版モジュール、下記を参照。from   tuned_bitmex_websocket import BitMEXWebsocket
from bitmex_websocket import BitMEXWebsocket #こちら公式版
import ccxt
import json,sys,requests,subprocess,re,os

threading,time,datetime,
from bitmex_websocket import BitMEXWebsocket
ccxt,
import tkinter as tk
この辺は必須です。
残りは、自分がいつも書いておくものなので必要ないかもです。。。適当ですみません。

BitMEXのアカウントとBitMEXテストネットのアカウント。
それぞれのAPIの取得。
テストネットと、リアル口座の両方のAPIを自分で書き込む。

テストかリアルトレードかの選択。

コードのこの行に色々設定があります。
True,Falseや自分のAPIを書きます。

################################################################################
TEST        = False    # test売買にするかどうか。Trueならテストネット、Falseでリアルトレード口座を使用します。

sleep_time  = 0.1      # 価格取得する頻度。デフォルト0.1秒毎です。

front       = True     # 最前面表示するならTrue,しないならFalse
################################################################################
TEST_API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxx'#ここにテストネットのAPIを入れる
TEST_API_SEC = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'#ここにテストネットのシークレットキーを入れる

REAL_API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxx'#こにリアル口座のAPIを入れる
REAL_API_SEC = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'#ここにリアル口座のシークレットキーを入れる
################################################################################

pythonからファイルを起動。

コードを全部コピペして、zawagiri.pyなどの名前で保存してMacならターミナルなどで起動。

できないこと

あくまで成り行きではなく、指値なので
価格の動きによっては刺さらないこともある。

その場合の手動でキャンセルするまで注文が残ります。

キャンセルはブラウザなど他の手段で行う必要があります。

ボタンの色がウィンドウを移動したりすると変わることがあります。
使用には問題ありませんが、原因がわからない。。。
どなたか教えてください。

そして、価格の取得頻度はあくまでAPIの速度に依存します。
本ツールでは、公式のAPIを使用していますが。
私が使用する際は
モッチオさんの改良版のモジュールを使わせていただいています。


最後に

使用の前には必ずテストネットで十分に動作の確認をしてください。
本ツールを使用して、いかなる損害が発生したとしても責任は負いかねます。

2019年10月9日時点のBitMEXのAPIの仕様で動作を確認したものです。
今後APIの仕様変更によって動作しなくなる可能性もあります。

今回勉強できたこと。

pythonのtkinterの使い方。グリッド配置、ラベル、ボタン。

websocketの接続。

スレッド処理。

class も初めて使った。多分全然使いこなせてない。

こんなのも開発中です。

画像3

価格が動いても自動的に追いかけます。
追いかけすぎないように幅も設定可。
一定時間後まで注文が残っていたらキャンセルするように設定できます。
ドテン注文できます。
価格やポジションなどを表示します。

また別口で、自分の引いたラインにかかったら注文などができるbotを作りました。斜めのラインが引けるのでトライアングルになったときなど張り付いていなくても良くなります。

あとkivyを勉強して使ってスマホアプリ化しようと思います。

以下にコードがあります。有料とさせていただいています。
使用にはpythonを使用できる環境、技術が必要になります。

公開しているコードは開発中のものではなく、一番上の画像のシンプルなものです。

ギリギリに指値を入れるツール(シンプル版)のコードです。

続きをみるには

残り 8,193字

¥ 1,001

期間限定 PayPay支払いすると抽選でお得に!

コーヒー飲みます。ありがとうございます。