Node.jsで暗号資産アービトラージ

ビットコイントレード中心にNode.jsで実際に作るためのレシピ

Liquid by Quoine APIでエラーが発生する(Python3)

※このページは2019/9/4に作成されました。

こんにちは、ケネです。

Liquid by Quoine APIのPython3でのつまづきそうなポイントを解説します。

基本的な使い方は前回記事で記載していますが、実装していて実際にハマったポイントを記載しています。

Liquid by Quoine APIの使い方(Python3) - Node.jsで暗号資産アービトラージ

意外にPythonの情報ってネット上に少なかったので参考にしてみてくださいね。

Node.jsでのLiquid APIの使い方はこちら

【Node.js】Liquid by quoine APIの使い方(APIで注文する方法) - Node.jsで暗号資産アービトラージ

Liquid by Quoine APIの使い方と注意したいポイント - Node.jsで暗号資産アービトラージ

Python3でのLiquid by Quoine APIでエラーが発生するポイント

レバレッジ取引の注文が通らない(product disabled)

Create an Order(POST /orders/)でレバレッジ取引で注文を出す際にproduct disabledとなってしまう場合の対処法です。

以下のエラーが返ってきます。

{'errors': {'order': ['product_disabled']}}

この場合はtrading_typeでmarginを設定していないか確認してみてください。

Liquid by Quoineのレバレッジ取引は現物とは市場が異なるインデックス取引(FX取引)となります。

そのため、trading_typeにはmarginではなく、cfd(またはtrading_typeを設定しない)が正しい設定値となります。

POSTで設定するパラメータのサンプルを以下に記載しておきます。

data = {
    "order":{
        "order_type":"limit",
        "trading_type":"cfd",
        "margin_type":"cross",
        "product_id":5,
        "side":"buy",
        "quantity":0.1,
        "price":1050000,
        "leverage_level":2,
        "funding_currency":'JPY',
        "order_direction":"one_direction"
    }
}

JWT(JSON Web Token)で接続できない

Liquid by Quoineの認証方式はJWT(JSON Web Token)が指定されているため、JWTを使ってHS256でエンコードする必要があります。

具体的なソースコードは以下を参照ください。

Liquid by Quoine APIの使い方(Python3) - Node.jsで暗号資産アービトラージ

ポイントはimportでjwtを指定していますが、ライブラリはPyJWTを使っているところです。

pipコマンドでPyJWTをインストールしておかないと認証することができません。

pip install PyJWT

requestsでエラーが発生する

環境によってはAPI接続でSSLエラーが出力されてしまう場合があります。

以下のようなエラーです。

SSLError("bad handshake: SysCallError(-1, 'Unexpected EOF')")

私の場合、「Unexpected EOF?括弧がないって?括弧はあるし、エラーが出てる箇所ってライブラリのコードじゃん!」ってなりました。

この場合、エラーメッセージには意味がなくセキュリティソフトが通信を切断してしまっている場合があります。

一度セキュリティソフトを停止してみると解決策が見えるかもしれません。

まとめ

接続ではまってしまった人は参考にしてみてくださいね。

www.kennejs.com

Node.jsでの実装は以下の記事を参照ください。

www.kennejs.com

www.kennejs.com