暗号取引ボットのアービトラージスクリプト

>

暗号通貨市場のボラティリティは、裁定取引の魅力的な場所になっています。ただし、裁定取引インフラストラクチャの構築が難しいため、面倒なプロセスになります.

複数の取引所へのリンク、リアルタイムWebSocketへのアクセス、アービトラージ戦略の実行にはすべて、複数の取引所への接続が必要です。各取引所は、APIを提供する方法が異なるため、単純な統合ができません。.

この記事では、暗号市場で最も人気のある取引所のいずれかに自動的に接続するためのスクリプトが提供されます。これらの接続により、裁定取引戦略の始まりを構築できるライブ価格設定ストリームにアクセスできるようになります.

この記事では注文の実行については説明しませんが、機会が特定されれば、取引の実行は簡単です。.

取引の実行方法、ポートフォリオ残高情報の収集方法などに関するチュートリアルは、最近のブログ投稿にあります。

  • 暗号取引ボット用のPythonスクリプト[API取引チュートリアル]

  • あなたの暗号ポートフォリオの価値をチェックする

  • 暗号通貨価格チャート用のPythonスクリプト

  • トレーディングスクリプトによる暗号ポートフォリオの自動化

もう待たないでください-裁定取引の時間です!

アービトラージとは?

この記事では、裁定取引の詳細については説明しません。アービトラージとは何かについて詳しくは、前回の記事をご覧ください。 ここに.

セットアップ

スクリプトに飛び込んで、環境をセットアップすることから始めましょう.

ライブラリをインストールする

私たちが必要とするすべてはによって提供されます Shrimpy開発者APIライブラリ. Pythonライブラリをインストールするには、次のコマンドを実行します。

pip install shrimpy-python

APIキーを取得する

ライブラリがインストールされたら、サインアップする必要があります Shrimpy DeveloperAPIアカウント APIキーを取得するには.

サインアップした後、 マスターAPIキー ボタンを選択して新しいAPIキーを生成します。これらのキーを作成したら、必ず「データ」キーの許可がない場合、後の手順でWebSocketにアクセスできなくなります。これらのキーと取引したい場合は、有効にする必要があります すべて キーの権限.

後の手順のためにキーを保存します.

コーディングを取得する

これでセットアップが完了したので、コーディングを始めましょう!

輸入

Shrimpyライブラリをインポートすることから始めます。これは、このスクリプトチュートリアルのためにインポートする必要がある唯一のライブラリになります.

エビを輸入

メッセージハンドラーを定義する

WebSocketを介してメッセージを受信する場合、データの処理方法を決定するハンドラーが必要になります.

楽しいWebSocketメッセージ処理に取り掛かる前に、WebSocketを介して返されるエラーを管理するハンドラーを作成しましょう。これにより、エラーの管理方法が簡素化されます.

def error_handler(err):

print(err)

次に、コアメッセージハンドラーを作成します。このハンドラーは、WebSocketの更新を受信し、それらを処理します。スクリプト全体をまだ説明していないため、これらの各値は意味をなさない可能性がありますが、ハンドラーの例を次に示します。.

exchanges_bbo = {}

def handler(msg):

bid_price = msg [‘content’] [‘bids’] [0] [‘price’]

ask_price = msg [‘content’] [‘asks’] [0] [‘price’]

exchanges_bbo [msg [‘exchange’]] = {‘bid’:float(bid_price)、 ‘ask’:float(ask_price)}

best_bid = 0.0

best_ask = 10000000.0

best_bid_exchange = ”

best_ask_exchange = ”

キーの場合、exchanges_bbo.items()の値:

if value [‘bid’] > best_bid:

best_bid = value [‘bid’]

best_bid_exchange =キー

if value [‘ask’] < best_ask:

best_ask = value [‘ask’]

best_ask_exchange =キー

best_bidの場合 > best_ask:

print("売る " + best_bid_exchange + " ために " + str(best_bid))

print("で買う " + best_ask_exchange + " ために " + str(best_ask))

そうしないと:

print("裁定取引はありません")

たくさんのように感じますが、このハンドラーが行っているのは、WebSocketから更新を収集し、各取引所の最良の買値と売値を保存し、取引所間で価格を比較して、その取引ペアに裁定取引の機会があるかどうかを確認することです。.

「exchanges_bbo」は、各取引所の最良買値と売値を保存する場所です。 WebSocketから各ティックメッセージを受け取ると、そのディクショナリの値が更新され、各取引所の最新の価格が含まれます。.

ベストビッドがベストアスクよりも大きい場合、それは裁定取引の機会があることを意味します。これが発生すると、スクリプトは、どの取引所で販売し、どの取引所を購入するかを出力します。.

注:ハンドラーでは何でもできます。これはほんの一例です。最も簡単なハンドラーは、エラーハンドラーと同様に、受信した各メッセージを単純に出力することです。より複雑なハンドラーはさらに一歩進んで、裁定取引の機会に基づいて取引を実行します.

クライアントの作成

前の手順で、ShrimpyAPIの開発者APIキーを作成しました。これらのキーを公開キーと秘密キーの変数に割り当てることができるようになりました.

public_key = ‘6d73c2464a71b94a81aa7b13d …’

private_key = ‘e6238b0de3cdf19c7861f8e8f5d137ce7113ac1e884b191a14bbb2 …’

api_client = shrimpy.ShrimpyApiClient(public_key、private_key)

raw_token = api_client.get_token()

client = shrimpy.ShrimpyWsClient(error_handler、raw_token [‘token’])

残りのクライアントを作成するには、公開鍵と秘密鍵を渡す必要があります。このクライアントは、WebSocketクライアントのトークンを要求するために使用されます.

トークンを受け取ったら、それをWebSocketクライアントのコンストラクターに渡して、WebSocketクライアントを作成します。.

接続する

各トレーディングペアの特定のWebSocketチャネルにサブスクライブする前に、先に進んでWebSocketストリームに接続してください。これには、前の手順で取得したワンタイムトークンを使用する必要があります。何らかの理由で別のクライアントを作成する必要がある場合は、もう一度トークンを取得してクライアントコンストラクターに渡す必要があります.

client.connect()

注:トークンは使用のみ可能です 一度. トークンを使用してクライアントを作成したら、新しいクライアントを作成するたびに新しいトークンを要求する必要があります。君は しない WebSocketチャネルにサブスクライブするには、トークンを要求する必要があります. のみ クライアント接続用.

申し込む

WebSocketに接続したので、アービトラージスクリプトに使用する各エクスチェンジペアをサブスクライブできます。これは次の方法で簡単に行うことができます.

交換= ["bittrex", "バイナンス", "クコイン"]

ペア= "btc-usdt"

交換の交換のために:

subscribe_data = {

"タイプ": "申し込む",

"両替": 両替,

"ペア":ペア,

"チャネル": "bbo" }

client.subscribe(subscribe_data、handler)

これにより、Bittrex、Binance、およびKuCoinのBTC-USDTペアがサブスクライブされます。ティックごとに、この資産ペアのこれらの取引所全体に裁定取引の機会があるかどうかを知ることができます.

注:Shrimpy APIでは、クライアントごとに100のWebSocketサブスクリプション、IPごとに最大10のクライアントが許可されます。つまり、私たちがサポートする1​​7以上の異なる取引所で最大1,000の取引ペアをサブスクライブできます.

切断する

データの収集が完了したら、次の簡単なコマンドを使用して切断できます.

client.disconnect()

それでおしまい! アービトラージデータストリームの構築を開始するために知っておく必要のあるすべて.

1つのスクリプトですべて

スクリプトを段階的に分解したので、傑作全体を見てみましょう。実行できる単一のスクリプトとしてどのように見えるか.

#暗号交換WebSocket用のShrimpyライブラリをインポートします

エビを輸入

#サンプルエラーハンドラー、それは単に入ってくるエラーを出力します

def error_handler(err):

print(err)

exchanges_bbo = {}

#出力ストリームを管理するハンドラーを定義する

def handler(msg):

bid_price = msg [‘content’] [‘bids’] [0] [‘price’]

ask_price = msg [‘content’] [‘asks’] [0] [‘price’]

exchanges_bbo [msg [‘exchange’]] = {‘bid’:float(bid_price)、 ‘ask’:float(ask_price)}

best_bid = 0.0

best_ask = 100000.0

best_bid_exchange = ”

best_ask_exchange = ”

キーの場合、exchanges_bbo.items()の値:

if value [‘bid’] > best_bid:

best_bid = value [‘bid’]

best_bid_exchange =キー

if value [‘ask’] < best_ask:

best_ask = value [‘ask’]

best_ask_exchange =キー

best_bidの場合 > best_ask:

print("売る " + best_bid_exchange + " ために " + str(best_bid))

print("で買う " + best_ask_exchange + " ために " + str(best_ask))

そうしないと:

print("裁定取引はありません")

#Shrimpyの公開鍵と秘密鍵を入力します

public_key = ‘6d73c2464a71b94a81aa7b13d …’

private_key = ‘e6238b0de3cdf19c7861f8e8f5d137ce7113ac1e884b191a14bbb2 …’

#ShrimpyWebSocketクライアントを作成する

api_client = shrimpy.ShrimpyApiClient(public_key、private_key)

raw_token = api_client.get_token()

client = shrimpy.ShrimpyWsClient(error_handler、raw_token [‘token’])

#ShrimpyWebSocketに接続してサブスクライブする

client.connect()

#裁定取引を選択する

交換= ["bittrex", "バイナンス", "クコイン"]

ペア= "btc-usdt"

#各取引所で特定のペアのWebSocketをサブスクライブする

交換の交換のために:

subscribe_data = {

"タイプ": "申し込む",

"両替": 両替,

"ペア":ペア,

"チャネル": "bbo" }

client.subscribe(subscribe_data、handler)

このスクリプトを実行すると、指定された取引所でこの資産ペアの裁定取引の機会の印刷がすぐに開始されます.

このスクリプトの機能を拡張するために、次のステップのいくつかのオプションは、取引によってこれらの機会を利用して、取引所で注文する方法を評価することです。.

目的

この記事の目的は、堅牢な裁定取引アルゴリズム全体を構築することではありません。それはあなたが拡大し成長することができる何かの始まりをあなたに示すことです。改善の余地はたくさんあります.

数分で、Shrimpy開発者APIを使用してすばらしい機能を作成することができます。 Exchange APIをいじるのに何時間も費やす代わりに、で開発することにより、すべての主要な取引所で一貫した動作を得ることができます。 ユニバーサル暗号取引API.

暗号通貨のボットの取引

開発者は、これらの単純なスクリプトを暗号通貨裁定取引ボットの基盤として使用できます。裁定取引する資産を選択することにより、市場機会を即座に明らかにします.

簡単にはなりません.

Shrimpyは、17以上の異なる取引所を統合しているため、すべての取引所で開発プロセスがシームレスになります。固有の動作や奇妙なエラーはありません。一貫性はプラットフォームに組み込まれています.

Shrimpyが提供するすべての詳細については 私たちの電報に参加する.

完全なPythonおよびNodeライブラリにアクセスするには、次のリンクをたどってください。

ノード

Python

暗号取引ボットを構築する方法に関する最新のビデオチュートリアルのいくつかをチェックしてください!

あなたが構築しているものを私たちのチームと共有したい場合は、遠慮なく連絡してください!

エビについて

エビ 最高のポートフォリオ管理アプリケーションとして市場をリードしています。ユーザーはカスタム暗号ポートフォリオを構成し、パッシブリバランス戦略を実装できるため、暗号を積極的に取引する必要がなくなります。.

Shrimpy Webアプリケーション: Shrimpy-暗号通貨ポートフォリオ管理

ShrimpyのDeveloperTrading API は、すべての主要取引所で取引機能を統合するための統一された方法です。過去の市場データを収集し、リアルタイムのWebSocketにアクセスし、高度な取引戦略を実行し、無制限の数のユーザーを管理します.

Shrimpy Crypto Trading API: エビ|開発者向けの暗号取引API

フォローすることを忘れないでください ツイッター そして フェイスブック 更新のために、そして私たちの驚くべき、活発なコミュニティに質問をしてください 電報.

シュリンピーチーム

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me