暗号取引ボットのAPI

>

暗号取引ボットは、トレーダーが使用する最も一般的に使用されるツールの1つです。これらのアプリケーションは、トレーダーが実装するのが面倒な戦略を実行するための便利な方法を提供できます.

残念ながら、開発者はトレーディングアプリケーションの構築に苦労しています。各取引所に接続するインフラストラクチャを開発するには、かなりの時間と忍耐が必要です。多くのチームは、取引インフラストラクチャを拡張する簡単な方法があると誤って信じていますが、最初に表示されるよりもはるかに複雑であることがすぐにわかります.

多くの取引サービスは、単一の取引所統合を超えて拡張するのに苦労しています。最大の取引所を過ぎた新しい取引所の統合はそれぞれ、より低いリターンを生み出し、上位のいくつかの取引所よりも多くのサービスを構築することは非現実的です。.

次のセクションでは、開発者が、取引所に必要な複雑なインフラストラクチャの維持と拡張について心配することなく、すべての主要な取引所を統合する方法について説明します。.

暗号取引ボット-完全ガイド

Exchangeの統合に関する問題

開発者は、暗号通貨取引所に接続する取引アプリケーションを構築するのに苦労しています.

ボットなどの暗号通貨取引ツールを構築するための旅に出るときは、最初に交換インフラストラクチャを最初から構築することのリスクを理解することが重要です.

注:これらは いくつか あなたに関係するはずの問題の。議論しないことは他にもたくさんあります.

矛盾

すべての交換は異なります。 2つの取引所が同じAPI、取引機能、データ形式、または動作をサポートすることはありません。暗号交換を構築する方法についての基準はありません.

その結果、すべての取引所の統合は新しい冒険です。あなたが中に生きていると感じさせるそれらの楽しい冒険の1つではありません。砂漠で2か月間迷子になり、幻覚と蜃気楼の違いがわからなくなった冒険の1つです。文字通りすべてがオアシスのように見えますが、最終的にはもっと砂漠になります.

各取引所のさまざまな落とし穴を理解するには、数か月かかる場合があります。すべての取引所で一貫した取引方法を開発することはほとんど不可能に思えるかもしれません。交換によって以前の設計が台無しになる新しい方法を発見すると、開発するインフラストラクチャを何度も変更する必要があります。.

不整合は、APIエンドポイントだけに限定されません。取引所全体の資産には、異なるティッカーシンボル、名前、およびその他の識別情報があります。取引所のすべての資産をサポートするために、開発者は、取引所がリストした資産を調査することにより、取引所全体で資産を手動でマッピングする必要があります.

何千ものアセットがあるため、プロセスには数週間かかる場合があります。言うまでもなく、取引所が新しい資産をリストするたびに、開発者は新しい資産を検証する必要があります.

アセットを自動的にマッピングすることはほぼ不可能です。正確さを確保するには、手動プロセスである必要があります.

Shrimpy Developer APIは、取引所全体でアセットを自動的に識別してタグ付けすることにより、この問題を解決します。取引の振る舞いとデータに使用するフォーマットは、すべての取引所で一貫しています。手動プロセスはすべてShrimpyチームによって処理されるため、機能開発に集中できます。.

メンテナンス

前に述べたように、いくつかの取引所は頻繁に資産をリストします。上場プロセスの管理、資産のタグ付け、および取引所間での資産のマッピングのプロセスは、主に手動です。.

取引インフラストラクチャの構築に必要なメンテナンスはこれだけではありません。 Exchangeは、メンテナンスのために頻繁にダウンしたり、APIを更新したり、リクエストの動作を予期せず変更したりします.

エクスチェンジによって行われる各変更では、開発者が更新をリリースし、サーバーを再デプロイし、これらの変更が行われたことを自動的に検出する必要があります。状況によっては、変更が発生したときにエクスチェンジが開発者に通知することすらありません。ある朝目を覚ますと、APIが異なります.

交換によってサポートされる新しい機能を統合し、古い機能またはエンドポイントを廃止し、交換の条件の変更に応じてコードを更新するための継続的な取り組みは言うまでもありません。.

Shrimpy Developer APIは、APIインターフェースを変更することなく、更新を管理し、インフラストラクチャを再デプロイし、新しい機能を統合することで、この問題を解決します。開発者は、ハミングしている製品に目覚めることを知っているので、夜は安心できます。.

レート制限

すべての取引所には、APIとの対話方法に関する異なるレート制限とルールがあります。これらのルールを順守するために、開発者は、アプリケーションが実行する取引の量を処理するために必要なサーバーのファームを維持することを余儀なくされることがよくあります.

このサーバーファームでは、サービスがAPI制限に準拠していることを確認しながら、各ユーザーの取引をタイムリーに実行するための調整とインテリジェントルーティングが必要です。.

ユーザー数が増えるにつれて、この問題は複雑さを増すだけです。それぞれが独立して取引所とインターフェースをとる何百ものサーバーを管理することは悪夢になります.

Shrimpy Developer APIは、サーバーファームを管理することで、この問題を解決します。当社のインフラストラクチャはお客様に合わせて拡張できるため、ユーザーが1人でも1,000人でも、インフラストラクチャの拡張方法に必要な変更はありません。.

費用

数万または数十万のユーザーを管理するために必要なサーバーのコストは高額です。実際、堅牢なインフラストラクチャを構築すると、ほとんどのチームのコストは1ユーザーあたり月額3ドルから6ドルになります。これは高額に聞こえますが、取引所に接続するサーバーのこのような大規模なファームを維持するにはコストがかかります.

残念ながら、これには開発費すら含まれていません。必要なインフラストラクチャを構築するのに十分な経験を持つ世界クラスの開発者を雇うのは費用がかかる場合があります。追加の統合が必要な場合にのみ、コストが上昇します.

取引所のインフラストラクチャの構築には費用がかかります.

Shrimpy DeveloperAPIは安価です。コストは$ 1.40 /ユーザー/月から始まり、より多くのユーザーに参加するにつれて減少します.

ユーザーアカウント管理

Exchangeインフラストラクチャの管理の難しさを理解したので、Shrimpy DeveloperAPIを活用して開発プロセスを簡素化する方法の例を見ていきます。.

まず、ユーザーの管理方法、ユーザー交換アカウントへの接続方法、およびユーザーのアカウント情報へのアクセス方法を知る必要があります。.

Shrimpy APIを使用すると、各ユーザーが個別に管理されるため、アプリケーションの開発方法にマッピングされます。アプリケーションに1,000人のユーザーがいる場合、ShrimpyAPIを使用して1,000人のユーザーが作成されます.

Python環境のセットアップ

始める前に、ShrimpyPythonライブラリをインストールしてPython環境をセットアップしましょう.

pip install shrimpy-python

注:Shrimpy Python Libraryは、Python3で動作するように設計されています。 Python2を使用している場合は、Pythonのバージョンを更新してください.

エビ & ExchangeAPIキー

スクリプトの例に次の行が表示されている場合は常に、Shrimpyの公開APIキーと秘密APIキーを入力する必要があります。これらは、Shrimpyにサインアップし、新しいAPIキーの作成を選択することで生成されます.

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

Shrimpy APIキーに加えて、公開APIキーと秘密APIキーを交換するための場所がコード内に表示されます。これらのキーは、Exchangeアカウントに接続するために必要です.

exchange_public_key = ‘…’

exchange_secret_key = ‘…’

ユーザーを作成

ユーザーがサービスにサインアップするたびに、Shrimpyを使用して新しいユーザーを作成するだけです。このプロセスは次のようになります.

#必要なライブラリをインポートする

エビを輸入

#後で使用するためにShrimpy MasterAPIキーを割り当てます

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

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

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

#取引所にリンクされるユーザーを作成します

create_user_response = client.create_user( ‘エビマスター’)

user_id = create_user_response [‘id’]

後のスクリプトで使用できるように、「user_id」を保存します。これは、ユーザーをShrimpyで作成されたユーザーにマップするために使用するIDです。このマッピングはデータベースのような場所に保存できます.

Exchangeを接続する

ユーザーを作成すると、そのユーザーはさまざまな取引所に接続したいと思うでしょう。 Shrimpyでは、デフォルトでユーザーごとに最大20のエクスチェンジアカウントに接続できます(この制限はリクエストに応じて増やすことができます)。新しいExchangeアカウントをユーザーにリンクするプロセスは簡単です.

#必要なライブラリをインポートする

エビを輸入

#後で使用するためにShrimpy MasterAPIキーを割り当てます

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

#残高データにアクセスする交換キーを割り当てます

exchange_name = "bittrex"exchange_public_key = ‘…’

exchange_secret_key = ‘…’

#最後のスクリプト例で生成されたuser_idを割り当てます

user_id = ‘…’

#「user_id」を思い出せない場合は、Shrimpyから取得してください

#1つだけ作成した場合は、最初のユーザーにする必要があります

users = client.list_users()

user_id = users [0] [‘id’]

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

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

#最初の取引所をリンクして、残高データにアクセスできるようにします

link_account_response = client.link_account(

ユーザーID,

exchange_name,

exchange_public_key,

exchange_secret_key

account_id = link_account_response [‘id’]

後のスクリプトで使用できるように、「account_id」を保存します。ユーザーの各交換アカウントには一意のIDがあります.

アカウントの残高を取得する

交換アカウントがユーザーにリンクされると、次のスクリプトを実行して、この交換アカウントの残高にアクセスできます。.

エビを輸入

#ShrimpyAPIの公開鍵と秘密鍵を使用してクライアントを作成します

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

#注:前のサンプルスクリプトでユーザーを作成したため,

#ユーザーのリストを取得するだけです.

users = client.list_users()

user_id = users [0] [‘id’]

#このユーザーに関連付けられているアカウントを取得します

アカウント= client.list_accounts(

ユーザーID

account_id = account [0] [‘id’]

#以前に作成したユーザーアカウントのアクセスバランスデータ

バランス= client.get_balance(

user_id、#user_id

account_id#account_id

このスクリプトの結果は、ユーザーが所有する各アセットのリストと各アセットの正確な数量です。.

取引 & 注文管理

取引がなければ、取引ボットを構築することは不可能です。 Shrimpy Developer APIは、取引のための最も堅牢なオプションを提供します。これらのオプションは、開発プロセスを合理化し、戦略を簡素化し、取引の実行方法を最適化します.

Shrimpy開発者APIでサポートされている注文タイプはいくつかあります。最も重要な注文タイプは、ここでの議論に含まれます.

指値注文

Shrimpyは、2種類の指値注文をサポートしています。これらはIOCとGTCの注文です。どちらも同じ前提を持っていますが、動作がわずかに異なるため、さまざまな状況に最適です。.

即時またはキャンセル(IOC)注文

IOC注文は、すぐに実行されるように設計されています。注文は、指定された価格以上ですぐに実行されるように、現在未決済の注文が占めている価格で行う必要があります。市場が移動し、指定された価格が利用できなくなった場合、注文は即座にキャンセルされ、注文でロックされた資金はユーザーに返金されます.

ShrimpyでIOC注文を実行すると、次のようになります。.

エビを輸入

#ShrimpyAPIの公開鍵と秘密鍵を使用してクライアントを作成します

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

#注:前のサンプルスクリプトでユーザーを作成したため,

#ユーザーのリストを取得するだけです.

users = client.list_users()

first_user_id = users [0] [‘id’]

#このユーザーに関連付けられているアカウントを取得します

アカウント= client.list_accounts(

first_user_id

first_account_id =アカウント[0] [‘id’]

#以前に作成したユーザーアカウントのアクセスバランスデータ

バランス= client.get_balance(

first_user_id、#user_id

first_account_id#account_id

#IOC指値注文を実行する

place_limit_order_response = client.place_limit_order(

first_user_id、#user_id

first_account_id、#account_id

‘ETH’、#base_symbol

‘BTC’、#quote_symbol

‘0.01’、#base_symbolの数量

‘0.026’、#価格

「売り」、#側

‘IOC’、#time_in_force

limit_order_id = place_limit_order_response [‘id’]

この正確なスクリプトをすべての交換で実行できることに注目してください。別の取引所で取引を実行するために参照している取引所アカウント以外のものを変更する必要はありません.

この動作はShrimpyに固有のものです。インフラストラクチャを自分で実装するには、交換ごとにカスタムコードを作成する必要があります.

注:ここに含まれる取引の価格は、単なる一例の価格です。価格は、市場の現在の状態に基づいて取得する必要があります。このスクリプトを「そのまま」実行しないでください.

グッドティルキャンセル(GTC)

GTCの注文は、特定の価格と数量で行われます。別のトレーダーが注文を購入するまで、またはあなたが注文をキャンセルするまで、注文は取引所で開いたままになります。別のトレーダーが行う未処理の注文には、メーカーの取引手数料が発生します.

取引所に未決済の注文を残すことは市場に流動性を追加するため、メーカー手数料は通常、多くの取引所のテイカー手数料よりも低くなります。このため、多くの取引所は追加の流動性に報いることを望んでいます.

エビを輸入

#ShrimpyAPIの公開鍵と秘密鍵を使用してクライアントを作成します

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

#注:前のサンプルスクリプトでユーザーを作成したため,

#ユーザーのリストを取得するだけです.

users = client.list_users()

first_user_id = users [0] [‘id’]

#このユーザーに関連付けられているアカウントを取得します

アカウント= client.list_accounts(

first_user_id

first_account_id =アカウント[0] [‘id’]

#以前に作成したユーザーアカウントのアクセスバランスデータ

バランス= client.get_balance(

first_user_id、#user_id

first_account_id#account_id

#GTC指値注文を実行する

place_limit_order_response = client.place_limit_order(

first_user_id、#user_id

first_account_id、#account_id

‘ETH’、#base_symbol

‘BTC’、#quote_symbol

‘0.01’、#base_symbolの数量

‘0.026’、#価格

「売り」、#側

‘GTC’、#time_in_force

limit_order_id = place_limit_order_response [‘id’]

注:ここに含まれる取引の価格は、単なる一例の価格です。価格は、市場の現在の状態に基づいて取得する必要があります。このスクリプトを「そのまま」実行しないでください.

指値注文についてもっと読む

スマートオーダールーティング

何百もの取引ペアにわたってデータを収集し、最適化された取引ルーティングのためにデータを分析することは複雑です。このため、Shrimpyは箱から出してすぐにSmart Order Routing(SOR)を提供します.

SORは注文の実行を自動化するため、資金の行き方ではなく、資金の行き先の管理により多くの時間を費やすことができます。 Shrimpyは、取引ペア間で注文をインテリジェントにルーティングし、最良の注文実行を保証します.

例:ETHをLTCと交換したいとします.

どの取引所でも、ETHを販売してLTCを購入するために取ることができる10の異なるパスが存在する可能性があります。あなたはETHに行くことができます->BTC->LTC、ETH->LTC、ETH->USDT->LTC、ETH->USDC->LTCなど。これらのそれぞれは、絶えず変化している異なるレートを持っています.

SORはこれらすべてのオプションを自動的に評価し、注文を分割し、最適な取引を実行します.

エビを輸入

#ShrimpyAPIの公開鍵と秘密鍵を使用してクライアントを作成します

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

#注:前のサンプルスクリプトでユーザーを作成したため,

#ユーザーのリストを取得するだけです.

users = client.list_users()

first_user_id = users [0] [‘id’]

#このユーザーに関連付けられているアカウントを取得します

アカウント= client.list_accounts(

first_user_id

first_account_id =アカウント[0] [‘id’]

#以前に作成したユーザーアカウントのアクセスバランスデータ

バランス= client.get_balance(

first_user_id、#user_id

first_account_id#account_id

#成行注文を実行する

smart_order_response = client.create_trade(

first_user_id、#user_id

first_account_id、#account_id

‘BTC’、#from_symbol

‘ETH’、#to_symbol

‘0.01’#from_symbolの量

True#smart_routingを有効にする

スマートオーダールーティングのAPI

ライブ市場データ

取引を実行するには、注文を実行する方法とタイミングを迅速に決定するためのライブ市場データが必要です。.

Shrimpyは、RESTAPIとWebsocketAPIの両方を提供して、自分に最適なライブデータを使用してアプリケーションを構築できるようにします。.

RESTAPIエンドポイント

これらのRESTAPIエンドポイントは、開発者がWebSocketに接続せずにオンデマンドで市場データにアクセスするための最も簡単な方法を提供します.

注文書

次のエンドポイントを使用して、最新のオーダーブックスナップショットにアクセスできます。これにより、取引の実行方法を決定するために使用できるライブブックのスナップショットが即座に返されます。.

エビを輸入

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

orderbooks = client.get_orderbooks(

‘binance’、#交換

‘XLM’、#base_symbol

‘BTC’、#quote_symbol

10#制限

ローソク足

市場のライブアップデートを追跡するチャートが必要な場合は、最新のろうそく足をリクエストして、市場のあらゆる動きに対応することができます。.

このエンドポイントは、最後の1,000本のろうそく足を返します。より多くのローソク足が必要な場合は、「履歴ローソク足」エンドポイントを使用する必要があります.

エビを輸入

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

キャンドル= client.get_candles(

‘binance’、#交換

‘XLM’、#base_trading_symbol

‘BTC’、#quote_trading_symbol

’15m’#間隔

Websocketエンドポイント

リアルタイムの取引アプリケーションには、継続的にリアルタイムの市場データが必要です。これらの戦略を実装する最も簡単な方法は、オーダーブックと取引データのWebSocketを活用することです。これらのWebSocketは、実行されるすべての取引と取引所で行われるすべての注文について、サブスクライバーを最新の状態に保ちます。.

Order Book Websocket

オーダーブックのWebSocketは、オーダーブックに最新の変更を継続的に送信します。 Shrimpyは、更新が利用可能になると、常にすぐに更新を送信します.

エビを輸入

public_key = ‘…’

private_key = ‘…’

#これはサンプルハンドラーであり、受信エラーメッセージをコンソールに出力するだけです。

def error_handler(err):

print(err)

#これはサンプルハンドラーであり、受信メッセージをコンソールに出力するだけです。

def handler(msg):

print(msg)

api_client = shrimpy.ShrimpyApiClient(public_key、private_key)

raw_token = api_client.get_token()

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

subscribe_data = {

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

"両替": "バイナンス",

"ペア": "ltc-btc",

"チャネル": "オーダーブック"}

#ShrimpyWebSocketストリームの処理を開始します!

client.connect()

client.subscribe(subscribe_data、handler)

#完了したら、クライアントを停止します

client.disconnect()

Websocketの取引

トレードWebSocketは、取引所で実行される各トレードを送信します。このティックごとの取引データは、市場のすべての参加者によって行われた各取引を表示するための最速の方法を提供します.

エビを輸入

public_key = ‘…’

private_key = ‘…’

#これはサンプルハンドラーであり、受信エラーメッセージをコンソールに出力するだけです。

def error_handler(err):

print(err)

#これはサンプルハンドラーであり、受信メッセージをコンソールに出力するだけです。

def handler(msg):

print(msg)

api_client = shrimpy.ShrimpyApiClient(public_key、private_key)

raw_token = api_client.get_token()

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

subscribe_data = {

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

"両替": "バイナンス",

"ペア": "ltc-btc",

"チャネル": "トレード"}

#ShrimpyWebSocketストリームの処理を開始します!

client.connect()

client.subscribe(subscribe_data、handler)

#完了したら、クライアントを停止します

client.disconnect()

過去の市場データ

これらの履歴データエンドポイントはそれぞれ、さまざまな時点での市場の評価、バックテスト戦略、およびパフォーマンスの分析に使用できるさまざまなデータを提供します。.

歴史的なローソク足(OHLCV)

歴史的なろうそく足は、チャート作成、分析、および新しい取引戦略の開発に使用できます。 Shrimpyでは、歴史的なローソク足が 1メートル, 5メートル, 15メートル, 1時間, 6時間, または 1d 間隔。これらの間隔は、不整合を防ぐために取引所全体で標準化されています.

エビを輸入

#ShrimpyAPIの公開鍵と秘密鍵を使用してクライアントを作成します

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

キャンドル= client.get_historical_candles(

「Binance」,

「LTC」,

「BTC」,

‘2019-05-19T00:00:00.000Z’,

‘2019-05-20T00:00:00.000Z’,

100,

「15m」

歴史的注文書

過去のオーダーブックのスナップショットは、すべての為替市場で利用できます。これらのスナップショットは1分間隔で取得され、市場で入手可能な最高解像度のオーダーブックスナップショット期間の1つを提供します。オーダーブックの深さは、オーダーブックの両側のトップ20に制限されています.

オーダーブックのスナップショットは、バックテストソリューションの開発、長期にわたる市場の分析、または実際の取引パターンの調査に使用できます。.

エビを輸入

#ShrimpyAPIの公開鍵と秘密鍵を使用してクライアントを作成します

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

history_orderbooks = client.get_historical_orderbooks(

「Binance」,

「LTC」,

「BTC」,

‘2019-05-19T00:00:00.000Z’,

‘2019-05-20T00:00:00.000Z’,

100

歴史的なティックバイティックトレード

過去のティックごとの取引データは、新しい取引戦略を構築する際の要因としてトレーダーによってよく使用されます。この履歴データは、取引所の取引ペアで実行されたすべての取引の完全な履歴です。.

エビを輸入

#ShrimpyAPIの公開鍵と秘密鍵を使用してクライアントを作成します

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

取引= client.get_historical_trades(

「Binance」,

「LTC」,

「BTC」,

‘2019-05-19T00:00:00.000Z’,

‘2019-05-20T00:00:00.000Z’,

100

エビについて

エビ は、カスタム暗号通貨インデックスファンドを構築し、リバランスを行い、デジタル資産の多様なポートフォリオを管理するためのアプリケーションです。私たちがサポートする1​​7の暗号交換のいずれかにリンクすることでポートフォリオを自動化します.

Shrimpyのユニバーサル暗号交換API 開発者向けに設計されています。統合されたAPIと統合することで、すべての主要な暗号通貨交換で、取引、データ収集、ユーザー管理などの統一されたエンドポイントに即座にアクセスできます.

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

ノード

Python

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