Pythonを使用して暗号取引ボットを作成する方法-開発者ガイド

>

暗号通貨の取引は、最初は圧倒されるかもしれません。考えるべきコンポーネント、収集するデータ、統合する交換、複雑な注文管理がたくさんあります.

このガイドでは、完全な暗号取引ボットを構築するために必要なさまざまなコンポーネントの詳細なステップバイステップの内訳を提供します。これらをトレーディングボットの構成要素と考えてください.

注意:これは教育的な経験です。コード例は、本番環境に対応するようには設計されていません。これらは、トレーディングボットの構築方法の基本的な理解を提供するのに役立つように設計されています。それらを生産準備することはあなたの責任です.

ボットを取引する理由?

体系的で感情がなく、24時間年中無休で機能するシステムが必要です.

人間とは異なり、トレーディングボットは一貫して正確な戦略を実行できます。人間が実行するのが難しい正確な戦略の例は裁定取引です。アービトラージ取引は、今日、世界中の取引ボットによってほぼ独占的に実行されている戦略です。トレーディングボットは、イベントが発生してから数ミリ秒以内に注文を実行できます。人間には、ある種の取引ボットなしでそのような戦略を効果的に実装するための反射神経や能力がありません.

より一般的には、トレーダーは単に可能なことよりも、信頼性が高く決定論的なものを求めています。そうすれば、エラーが発生する可能性はありません。ストラテジーが設定されると、アルゴリズムのパラメーターに基づいてストラテジーが実行されます。本当にこれですべてです.

セットアップ

始める前に、環境を設定する必要があります。これには、取引APIと取引所アカウントにアクセスするためのいくつかの手順が含まれますが、一度設定すると、開発環境に変更を加える必要はありません。.

Shrimpyにサインアップ

Shrimpy DeveloperAPIのWebサイトにアクセスします ここに. アカウントにサインアップする.

生む & APIキーを保存する

Shrimpy APIの使用を開始する前に、APIキーを生成する必要があります。これは、Shrimpy Developerアカウントにログインし、[APIキー]タブに移動することで実行できます。. 「APIマスターキーの作成」ボタンを選択します.

「APIマスターキーの作成」を選択します.

「CreateApiMaster Key」ボタンを選択すると、パスワードと6桁の2FAを入力してアカウントを確認するように求められます。アカウントで2FAをまだ有効にしていない場合は、最初に2FAを設定するプロセスを実行する必要があります.

6桁の確認コードとアカウントパスワードを入力してください.

アカウントを確認すると、Shrimpyからメールが送信され、APIキーの作成を確認する必要があります。.

確認メールのリンクをクリックしてメールを確認します.

メールでAPIキーの作成を確認すると、開発者のAPIキーを表すカードが表示されます。公開鍵はデフォルトで表示されます.

秘密APIキーを「表示」することを選択します。これは1回しか実行できないため、秘密鍵が表示されたら安全に保管してください.

秘密鍵を「表示」する場合に選択します. 秘密鍵はデフォルトでは表示されず、1回しか表示できません. つまり、秘密鍵を表示した後、Shrimpyは二度と鍵を表示しません。秘密鍵を安全に保管しない場合は、新しい鍵を作成するプロセスを実行する必要があります。プライベートAPIキーを「表示」することを選択すると、2FAコードとパスワードを入力してアカウントを確認するように再度求められます.

公開鍵と秘密(秘密)鍵の両方を安全な場所にコピーします.

秘密APIキーが表示されたら、公開APIキーと秘密APIキーの両方を安全な場所にコピーします. このAPIキーを誰とも共有しないでください.

APIキーの設定を完了する前に、APIキーのすべての権限を有効にすることを選択します。このチュートリアルガイドのすべての設定を使用しますが、トレーディングボットの本番バージョンをデプロイする準備ができたら、セットアップを再構成できます。テスト中、複雑なセットアップは必要ありません.

注:複数のAPIキーを作成できます。 「データ」権限のみを持つAPIキー、「アカウント」権限のみを持つ1セット、および「ユーザー」権限のみを持つAPIキーのセットが必要な場合は、任意の方法でキーを設定できます。.

APIキーのすべての権限を有効にして、[更新]を選択します.

Shrimpyをテストするためにクレジットを購入する必要はありませんが、クレジットはいつでも購入できます。 "支払い" タブ。これは、以下のスクリーンショットのようになります.

準備ができたらクレジットを購入します。 Shrimpyは500の無料クレジットで開始するため、このチュートリアルでは支払いは必要ありません。.

クレジットを購入する前に、まず支払い方法をリンクする必要があります。お支払い方法をリンクした後、購入したいクレジットの価値を入力することができます.

これらの手順をすべて完了したら、Shrimpy DeveloperAPIアカウントからログアウトできます。現時点では、アカウントから他に何も必要ありません.

Python環境のセットアップ

コーディングを開始する前に、Python環境用にセットアップする必要があることがいくつかあります。まず、ShrimpyPythonライブラリをインストールすることから始めます.

pip install shrimpy-python

Shrimpy Libraryのインストールに加えて、チュートリアルの後半でデータのプロットに使用される他のいくつかのライブラリもインストールします。これらのライブラリはPandasとPlotlyです.

pip install pandas

pip install plotly == 4.1.0

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

ExchangeAPIキー

コーディングを開始する前に、もう1つ必要な情報があります。それが交換APIキーです。これらのAPIキーは、取引に使用する取引所から取得されます.

Shrimpyパーソナルプランでは、一度に20の異なる交換アカウントに接続できますが、これらの例では、1つだけに接続します。 Exchangeアカウントにログインし、Exchange固有の記事のリストにある適切なチュートリアルに従ってください。.

これらの記事は、APIキーにアクセスし、安全な場所にコピーするのに役立ちます。 APIキーがコピーされたら、記事を閉じることができます。これらのサンプルチュートリアル全体でスクリプトにのみ使用するため、Shrimpyポートフォリオ管理アプリケーションに貼り付ける必要はありません。.

コード

これで、コーディングを開始する準備が整いました。次の例には、ShrimpyとExchangeの両方の公開APIキーと秘密APIキーを入力する必要がある空白が含まれます.

あなたが見るとき:

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

前の手順で生成したShrimpyAPIマスターキーを入力します.

あなたが見るとき:

exchange_public_key = ‘…’

exchange_secret_key = ‘…’

前の手順で生成したExchange固有のAPIキーを入力します.

価格データの収集

ボットがいつ取引を実行するかを決定するための最も重要な情報の1つは、価格データです。取引所固有の価格データを使用して、最適な取引時間と注文の正確な発注を計算する必要があります.

一般に、注文帳データは注文を行う場所に関する特定の決定を行うために使用され、取引データは注文をいつ実行する必要があるかを決定するために使用できます。.

シンプルな価格ティッカー

シンプルな価格ティッカーは、取引所の各資産の最新の価格にアクセスする方法です。この値は1分間隔で更新されます。このエンドポイントの目的は、表示のみを目的としています。このエンドポイントは、注文の実行または裁定取引用には設計されていません。これらの目的のために他のエンドポイントを提供します.

エビを輸入

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

ティッカー= client.get_ticker( ‘binance’)

Websocketの価格ティッカー

最新の取引が実行されているリアルタイムの価格ティッカーが必要な場合は、このWebSocket価格ティッカーが最適です。 「SimplePriceTicker」とは異なり、WebSocketの価格ティッカーはリアルタイムです。つまり、取引所で取引が実行されてからこの価格ティッカーが更新されるまでに遅延はありません。.

ただし、このエンドポイントはWebSocket接続が必要になるため、より複雑になります.

エビを輸入

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

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

def error_handler(err):

print(err)

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

def handler(msg):

print(msg [‘content’] [0] [‘price’])

api_client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_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()

シンプルなライブオーダーブックスナップショット

このRESTAPIエンドポイントは、ライブオーダーブックの最新のスナップショットを提供します。オーダーブックがライブで更新されると、このライブデータのスナップショットにアクセスして、取引を実行したり、意思決定のための情報を提供したり、市場を分析したりすることができます。.

エビを輸入

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

orderbooks = client.get_orderbooks(

‘bittrex’、#交換

‘XLM’、#base_symbol

‘BTC’、#quote_symbol

10#制限

Websocket Live Order Book

最新のオーダーブックデータを取得するために更新をポーリングしたくない場合は、取引用のライブWebSocketと同様に、いつでもライブオーダーブックWebSocketを使用できます。.

Order Book WebSocketは、取引所の注文書に変更が加えられるとすぐに、最新の注文書の更新を送信します。そうすれば、注文書のローカルコピーが古くなることはありません.

エビを輸入

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

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

def error_handler(err):

print(err)

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

def handler(msg):

print(msg)

api_client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

raw_token = api_client.get_token()

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

subscribe_data = {

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

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

"ペア": "eth-btc",

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

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

ws_client.connect()

ws_client.subscribe(subscribe_data、handler)

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

ws_client.disconnect()

Exchangeアカウントのリンク

Exchangeからアカウント情報にアクセスしたり、取引を実行したりする前に、Exchangeアカウントをリンクする必要があります。 Exchangeアカウントを接続する必要があるのは1回だけです。アカウントがリンクされた後、Shrimpyは接続を維持するため、キーを再度リンクする必要はありません。.

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

エビを輸入

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

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

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

exchange_name = "bittrex"exchange_public_key = ‘…’

exchange_secret_key = ‘…’

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

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

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

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

user_id = create_user_response [‘id’]

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

link_account_response = client.link_account(

ユーザーID,

exchange_name,

exchange_public_key,

exchange_secret_key

account_id = link_account_response [‘id’]

Exchangeアカウントの残高の取得

取引するには、アカウントで取引できる各資産の量を知りたいと思うでしょう。この情報がなければ、各資産に利用できる資金の量を推測することになります。.

このスクリプトを使用して、Shrimpy DeveloperAPIにリンクされているすべてのExchangeアカウントの残高にアクセスします.

エビを輸入

#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

取引の実行

必要な価格データ、注文書データ、アカウント情報が揃ったので、取引を開始します。!

取引は複雑であることを覚えておくことが重要です。ここで提供される例は素晴らしい出発点になりますが、それらは最終段階ではありません。完全な取引配置および実行アルゴリズムの開発には時間がかかります.

単純な取引

Shrimpyに接続した取引所で利用可能な残高に最初にアクセスして取引を作成します。この例では、すべての資金をBTCに統合するために取引を実行します.

このスクリプトを実行すると、実際の取引所アカウントでライブ取引が実行されます。つまり、すべての資産をBTCに移動する場合にのみ、このスクリプトを実行する必要があります。.

エビを輸入

#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

保持=バランス[‘バランス’]

#統合する資産を選択します

統合シンボル= ‘BTC’

#統合資産以外のすべての資産を売却する

保有資産の場合:

Asset_symbol = Asset [‘symbol’]

Asset_amount = Asset [‘nativeValue’]

場合asset_symbol!= Consolidated_symbol:

print( ‘Selling’ + str(asset_amount)+ ‘of’ + Asset_symbol)

create_trade_response = client.create_trade(

first_user_id,

first_account_id,

Asset_symbol,

統合シンボル,

Asset_amount

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

スマート注文ルーティングは、最良の価格を受け取るために、利用可能な取引ペアを介して取引をインテリジェントにルーティングします。スマートオーダールーティング戦略を実行する場合、見積もり通貨を指定することはできず、「開始」通貨と「終了」通貨のみを指定できます。相場通貨は、最良の注文執行をもたらすパスに基づいて決定されます.

エビを輸入

#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を有効にする

ローソク足のチャート

取引している場合は、資産の現在の価格を視覚的に確認する方法が必要になります。これは通常、ろうそく足を介して行われます。この例では、表示または戦略統合のためのローソク足を生成する方法を示します.

エビを輸入

plotly.graph_objectsをそのままインポートします

#無料のAPIキー用のShrimpy DeveloperAPIにサインアップします

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

#過去のローソク足データを収集する

client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

キャンドル= client.get_candles(

‘bittrex’、#交換

‘XRP’、#base_trading_symbol

‘BTC’、#quote_trading_symbol

‘1d’#間隔

日付= []

open_data = []

high_data = []

low_data = []

close_data = []

#プロットライブラリに一致するようにデータをフォーマットします

キャンドルのキャンドルの場合:

days.append(candle [‘time’])

open_data.append(candle [‘open’])

high_data.append(candle [‘high’])

low_data.append(candle [‘low’])

close_data.append(candle [‘close’])

#ローソク足をプロット

fig = go.Figure(data = [go.Candlestick(x = dates,

open = open_data、high = high_data,

low = low_data、close = close_data)])

fig.show()

すべてを一緒に入れて

これで、トレーディングボットを構築するための各コンポーネントができました。これらの各コンポーネントを組み合わせて、トレーディングボット戦略を実行するときが来ました。.

たとえば、BTC / USDTペアを調べ、BTCが10000 USDTに達するとすぐに、すべてのBTCをUSDTにトレードする単純なスクリプトを作成する場合は、次のようにすることができます。.

エビを輸入

インポート時間

shrimpy_public_key = ‘…’

shrimpy_secret_key = ‘…’

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

exchange_name = "bittrex"exchange_public_key = ‘…’

exchange_secret_key = ‘…’

api_client = shrimpy.ShrimpyApiClient(shrimpy_public_key、shrimpy_secret_key)

raw_token = api_client.get_token()

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

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

#すでにユーザーを作成している場合は、この手順をスキップしてください

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

user_id = create_user_response [‘id’]

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

#すでにアカウントをリンクしている場合は、この手順をスキップしてください

link_account_response = api_client.link_account(

ユーザーID,

exchange_name,

exchange_public_key,

exchange_secret_key

account_id = link_account_response [‘id’]

#Shrimpyが交換アカウントのデータを収集するまで待つ

#初めてのリンクのみが必要

time.sleep(5)

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

バランス= api_client.get_balance(

user_id、#user_id

account_id#account_id

btcAmount = 0

バランスの取れた資産の場合[‘バランス’]:

if Asset [‘symbol’] == ‘BTC’:

btcAmount = Asset [‘nativeValue’]

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

def error_handler(err):

print(err)

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

def handler(msg):

価格= msg [‘content’] [0] [‘price’]

int(価格)の場合 > 10000:

smart_order_response = api_client.create_trade(

user_id、#user_id

account_id、#account_id

‘BTC’、#from_symbol

‘USDT’、#to_symbol

btcAmount、#from_symbolの量

True#smart_routingを有効にする

subscribe_data = {

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

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

"ペア": "btc-usdt",

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

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

ws_client.connect()

ws_client.subscribe(subscribe_data、handler)

このスクリプトは、ビットコインが10000USDTに達するまで市場を監視します。その時点で、それはあなたのすべてのBTCをUSDTに交換します.

この例では、エッジケース、障害モード、および発生するその他の多くの状況をチェックしていません。提供されている例はいずれも、本番環境には適していません。これらは、トレーディングボットを構築するための概念に精通する方法を提供するための教育目的のみです。.

トレーディングボットサービス

カスタムトレーディングボットを最初から構築することがあなたのスピードではない場合、それは問題ではありません!現在市場に出回っている、使用できるトレーディングボットがいくつかあります。彼らは新しいユーザーをオンボーディングし、開発なしでポートフォリオの自動化を開始する準備ができています.

エビ

暗号通貨取引ボットは複雑である必要はありません。で エビ, 私たちはこの考えを心に留めました。その結果、私たちは非常に使いやすい最も洗練された取引サービスを作成しました.

Shrimpyは暗号信者のために暗号信者によって設計されました。今後10年または20年の間市場にとどまることを計画している人々。 Shrimpyは、市場の2番目から2番目の目盛りに関心を持つのではなく、10年の展望に焦点を合わせています。これは、ポートフォリオを長期的に自動化する方法を提供することを目的としています.

Shrimpyのような他のサービスはありません。現在所有しているすべての取引所アカウントを接続し、ポートフォリオまたはインデックス戦略を選択するだけで、Shrimpyがポートフォリオを長期にわたって自動的に維持するのを見ることができます。 HODLing2.0のように感じます.

Shrimpyは、ポートフォリオにハードウェアウォレット内のほこりを収集させるのではなく、ポートフォリオを体系的に再調整します。交換口座に新しい資金を入金すると、高度なドルコスト平均法機能を使用して、これらの資金をポートフォリオに自動的に注入できます。.

ポートフォリオを管理するために必要なすべてが1つのアプリケーションで提供されます。時間の経過とともにパフォーマンスを追跡したり、新しい調査や市場の動きに基づいてポートフォリオをすばやく調整したり、Shrimpyにワールドクラスの動的インデックス戦略を使用してすべてを自動化させたりできます。これは、暗号通貨の所有者のための究極の個人資産管理ソリューションです.

Shrimpyは上位17の暗号通貨取引所への接続をサポートしているため、自分にぴったりの取引所をいつでも見つけることができます。単一の交換を決定できない場合、それは問題ではありません。複数の取引所をShrimpyにリンクして、取引所全体のポートフォリオを表示し、単一の統合ダッシュボードを介してすべての取引所アカウントを管理します.

今すぐShrimpyにサインアップしてください!

結論

市場を探索するのに少し時間を費やしてください。独自の取引ボットを構築する自由を楽しんだり、既存の取引サービスを試してみてください。何を決めるにしても、新しいグローバル金融システムに参加する体験をお楽しみください.

暗号通貨は複雑な市場です。近い将来に拡大するにつれ、ポートフォリオと取引戦略をより適切に自動化するのに役立つ取引リソースを開発し続ける必要があります。.

トレーディングボットの構築方法について質問がある場合、新しいトレーディング戦略の構築についてサポートが必要な場合、または新しい機能を当社に統合することを希望する場合は、遠慮なく当社のチームにご連絡ください。 ユニバーサル暗号取引API.

エビについて

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

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

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

ノード

Python

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