![見出し画像](https://assets.st-note.com/production/uploads/images/73015038/rectangle_large_type_2_69c545a7f38ab9e3f3892716bba8cb5a.png?width=800)
BYBIT Testnetでapiを使用して発注する
前回のnote記事で、BYBIT Testnet api から板情報が取得できました。
今回は、apiを使用して発注してみたいと思います。使用環境は、Google Colaboratoryです。ネットで情報取集してみたのですが、apiの仕様変更なのかなかなか動作しない(´;ω;`)
ようやく注文が通ったので、関数にしてみました。
##### USDTの注文はこちら
def bybit_order(symbol, side, qty, price):
##### BYBIT Testnet set 取得したkeyとsecretを入れてください
bybit = ccxt.bybit({"apiKey":"取得したkey", "secret":"取得したsecret"})
bybit.set_sandbox_mode(True)##### BYBIT Testnet使用の場合必要です。
bybit.private_linear_post_order_create(
{
"side": side,##### "Sell"or"Buy"
"symbol": symbol,##### Symbol "BTCUSDT"など
"order_type": 'Limit',##### "Market"で成り行き "Limit"で指値
"qty": qty,##### 最小単位0.001
"price": price,###### Limitの注文価格 Marketの場合は削除しないとエラー
"time_in_force": "GoodTillCancel",
"reduce_only": False,##### Trueで両建てにならない Falseで両建て
"close_on_trigger": False
}
)
特にTestnetの使用で躓いたのが、
bybit.set_sandbox_mode(True)
この部分です。Testnetを使用するという意味なのですが、ccxtにurlsを指定する方法では動作しませんでした。他にも発注するときの記述法が変わっていたりと、動作するまでかなり苦労しました。今動作しているのもいつまで使えるか分からないので、動作チェックと情報収集は今後も必要になりそうです。使用するときはこんな感じに。
##### 注文関数実行
buy_price = 38500.54321
qtys = 0.01##### 0.01BTC
symbols = 'BTCUSDT'
sides = 'Buy'##### 'Buy' or 'Sell'
print(bybit_order(symbols, sides, qtys, round(buy_price, 3)))
BTCUSDT市場で、BTCを0.01購入するという注文です。エラーがなければNoneが返ってきます。BYBIT Testnetで確認してみてください。
ついでにすべての注文をキャンセルする方法がこちら。
##### BYBIT Testnet Set
bybit = ccxt.bybit({"apiKey":"取得したkey", "secret":"取得したsecret"})
bybit.set_sandbox_mode(True)##### BYBIT Testnet使用の場合必要です。
##### 全注文キャンセル
print(bybit.private_linear_post_order_cancel_all({"symbol":"BTCUSDT"})['ret_msg'])
BTCUSDT市場での注文を全キャンセルします。動作するとOKが表示されます(されるはず(;'∀'))。
注文とキャンセルができたので、取引はできるようになりました。仕様変更があると動作しないので、その時は自力でガンバってください。
これでBotを動かすこともできますが、ポジションの確認は必須です。次回は、ポジション情報を取得してみようと思います。
この記事が気に入ったらサポートをしてみませんか?