すべての取引所には、トレーダーを引き付けるための特別な機能があります。 Coinbase Proには、取引の自動化と簡素化に役立つ特別なコードがあります。 このコードはCoinbase Pro APIです。
アカウントを作成したり、Coinbase Pro APIを有効にしたりすることは絶対に無料です。
この2つのプラットフォームには共通点があります。 少なくともCoinbase Global Incは両方を所有しており、Uiは互いに似ています。
しかし、CoinbaseとCoinbase Proがかなりの違いを共有していることは明らかです。 コインベース Coinbase Proは本格的な暗号交換ですが、むしろ暗号化市場です。 コインベース Coinbase Proは取引プラットフォームである可能性が高いのに対し、暗号通貨ウォレットに似ています。
革新的な属性とエンドポイントにより、Coinbase Pro APIでの取引はCoinbaseよりもはるかに高速で優れています。
現在、Coinbase Pro APIは以下のために利用可能です 100カ国.
ここでは、トレーダーが考慮すべき長所と短所の短いリストです。
長所:
●シンプル
●直感的
●米国では完全に規制されています
●流動性が高い
●フィアット(USD、EUR、GBP)をサポートしています。
●120以上の暗号通貨をサポート
短所:
●高額報酬
●遅い顧客サポート
●初心者には複雑すぎる
要約すると、Coinbase Pro APIには短所ではなく長所が2倍あります。
はい、それはあります。 Coinbase Proは、ユーザーから通常の取引手数料を受け取ります。 最終価格が計算される30日間の期間の後に発生します。 トレーダーの便宜のために、合計はUSDで取られます。
通常のように、手数料は"メーカー"と"テイカー"に分かれています:
1. 発注された成行注文がすぐに約定されると、ユーザーはテイカーになります。 料金:0.04%から0.50%まで。
2. Aserは、発注された注文が一度に満たされていないときにメーカーになり、注文帳に行きます。 だから、それが別のトレーダーによって一致するまで待つ必要があります。 料金:0.00%0.50%まで。
3. 注文が部分的にしか満たされない場合、両方の手数料が支払われます。 注文の残りの部分は、後でまで注文帳に移動しながら、最初は、満たされた部分に一致する受取人手数料が支払われます。 そして、それが一致すると、メーカー料金が支払われます。
次の表は、両方の手数料の現在の取引量を示しています:
他の多くの取引所にはAPIがあります。 そのため、Coinbase Pro APIはトレーダーにとって唯一の選択肢ではありません。 ここでは、APIとのいくつかの交換だけです:
● バイナンス
● ビットメックス
● HitBTC
● クラーケン
● ジェミニ
● クコイン
● Bittrex(ビットレックス)
● ビットフィネックス
適切な調査を完了した後、トレーダーは提供された取引所の中から選択するか、ニーズを満たす他のプラットフォームを見つけることができます。 ただし、Coinbase Proに戻りましょう。
トレーダーは、このプラットフォーム上でアカウントを作成する唯一の2つの方法を持っています:
1. トレーダーがすでにCoinbaseアカウントを持っている場合、残っているのはCoinbase Proと接続することだけです。 その後、口座間で資金移動が可能になります。
2. またはちょうど訪問して下さい Coinbase Proスタートページ そして、すぐそこにアカウントを起動します。
「Get started」ボタンをクリックすると、新規参入者は基本的なアカウントの詳細を記入し、メールアドレスを確認し、2要素認証を有効にする必要があります。 登録を完了するには、名前、生年月日、住所、意図、資金源、職業、身分証明書の写真、銀行口座へのリンクなどの個人情報を提供する必要があります。
Coinbase Pro APIに対処するには、トレーダーにはCoinbase APIキーが必要です。 まず、「API」をクリックし、次に「+新しいAPIキー」ボタンをクリックします。 次に、ユーザーはAPIキーの権限を選択し、ニックネームとパスフレーズ、追加レベルの認証、Coinbaseによって実現されるセキュリティ機能を設定する必要があります。
APIキーの動作を開始する前に、トレーダーはもう1つのステップを完了する必要があります:秘密鍵を取得するための確認コードを入力します。 さらに、ユーザーはその秘密鍵を紛失しないように安全な場所に保管する必要があります。
最後に、Coinbase Pro APIが作成されます。 のは、上に移動し、その能力について話をしてみましょう。
各トレーダーは、サポートされている五つのうち、自分の好きなクライ:
Pythonは、Coinbase Pro APIでコマンドを書くための最も人気のあるクライアントです。 そういうわけで、例はそれだけで構成されます。
始めましょう:
pipインストールcbpro
Coinbase Pro API pythonライブラリでは、次のものが使用されています get_products
取引ペアの情報を取得するためのエンドポイント。 次のステップは、ライブラリのインポート、クライアントの初期化、製品データの取得です:
インポートcbpro
pandasをpdとしてインポートする
c=cbpro.PublicClient()
データ=pd。データフレーム(c.get_products())
データ。テール()。
価格データに関する情報を取得するには、次を使用します get_product_ticker
エンドポイントとティッカーパラメータを指定します。 カルダノの場合、それは次のようになります:
ticker=c.get_product_ticker(product_id='ADA-USD')
ティッカー
日付を取得する2番目の方法は、次の助けを借りてです Coinbase Pro REST API エンドポイント:
インポート要求ticker=requests.get('https://api.pro.coinbase.com/products/ADA-USD/ticker').json()
ティッカー
履歴データに関する情報を取得するには、次を使用します get_product_historic_rates
エンドポイント。 粒度、開始日、終了日を指定することができます。
デフォルトのパラメータでETH-USD履歴データを取得し、それをすべて整然としたデータフレームに配置するのがいかに簡単かを見てくださ:
歴史=pd.データフレーム(c.get_product_historic_rates(product_id='ETH-USD'))履歴。columns=["Date","Open","High","Low","Close","Volume"]
historical['Date']=pd.to_datetime(historical['Date'],unit='s')
歴史的だset_index('Date',inplace=True)
歴史的だsort_values(by='Date',ascending=True,inplace=True)
歴史的な
必要に応じて、後でこのデータを使用して単純な指標を作成し、ローソク足チャートを作成することができます。
残念ながら、Coinbase Pro APIは事前設定された指標を提供していません。 ただし、組み込みのpandas機能を使用するか、btalibライブラリに頼るだけで作成することは可能です。
これは、pandasで簡単な20SMAインジケータを作成する方法です:
historical['20SMA']=historical.閉じてローリング(20)平均()
歴史的だテール()
これらのデータをすべて持っていると、対話型のグラフを作成することができます:
plotlyをインポートします。goとしてgraph_objects
イチジク=行く。Figure(data=[go.ローソク足(x=historical.インデックス,
open=履歴['Open'],
high=歴史的な['高'],
low=履歴['Low'],
close=履歴['閉じる'],),
行けScatter(x=historical.index,y=historical['20SMA'],line=dict(color='purple',width=1))])
図1.1.1.表示()()()()
注文書データに到達するには、次の手順を使用します。 get_product_order_book
Coinbase Pro APIエンドポイント。 ここでは、BTC-USDのデータを取得し、入札と要求を配置する例を示します。
order_book=c.get_product_order_book('BTC-USD')
order_book
次のステップは、2つのデータフレームを作成することです:
bids=pd.データフレーム(order_book['bids'])
asks=pd.データフレーム(order_book['asks'])
入札...頭()
今それらをマージし、より有益であるために列の名前を変更します:
df=pd。merge(bids,asks,left_index=True,right_index=True)
df=df。rename({"0_x":"入札価格","1_x":"入札サイズ","2_x":"入札金額",
"0_y":"価格を確認する","1_y":"サイズを確認する","2_y":"金額を確認する"},axis='columns')
df。頭()
取引データを取得するには、以下を使用します。 get_product_trads
エンドポイント。 この例では、データを取得する資産を入力することを忘れないでください。ETH-USD。
トレード=pd.DataFrame(requests.get('https://api.pro.coinbase.com/products/ETH-USD/trades').json())
取引だテール()
Pythonライブラリを動かせないようにするには、REST APIを使用します。
Coinbase Pro Websocketにアクセスするには、次のものを使用します WebscoketClient
エンドポイント。 それのおかげで、トレーダーは簡単に興味深いデータに更新滞在することができます。
インポートcbpro
wsc=cbpro.WebsocketClient(url="wss://ws-feed.pro.coinbase.com",products="ADA-USD",
チャンネル=["ティッカー"])
WebSocketを閉じるには、単純なコマンドを使用します:
wsc。閉じる()
次のコマンドは、特定の数のWebSocketメッセージまでのティッカー価格データを収集し、それらを印刷するのに役立ちます:
インポート時間、cbpro
クラスmyWebsocketClient(cbpro.WebsocketClient):
def on_open(self):
自己url="wss://ws-feed.pro.coinbase.com/"
自己製品=["ETH-USDT"]
自己チャンネル=["ティッカー"]
自己message_count=0
def on_message(self,msg):
自己message_count+=1
msgの'price'とmsgの'type'の場合:
print("メッセージタイプ:",msg["タイプ"],
"\t@{:.3f}"。フォーマット(float(msg["price"])))
def on_close(self):
印刷("閉じる")
wsClient=myWebsocketClient()
wsClient。スタート()
印刷(wsClient.url、wsClient。製品、wsClient。チャンネル)
しばらく(wsClient。メッセージ<50):
print("\nmessage_count=","{}\n".形式(message_count))
時間だ睡眠(1)
wsClient。閉じる()
Python Coinbase APIコマンドを使用すると、取引を実行するのは非常に簡単です。 2つの例を見てみましょう:BTCが特定の価格に当たったときにETHで取引を実行し、BTCが最後の5分で5%を移動したときにETH取引を実行します。
次に、指定された要件で注文を適切に開始する方法を見てみましょう:BTCが特定の価格(例えば$38500)に当たったときにETHで取引を開始します。
1. 注文の基礎を設定する;
2. 価格レベルがヒットしているかどうかをチェックするループを作成します;
3. 価格がヒットすると、成行注文が実行されます;
4. 数秒待って、注文が本当に満たされているかどうかを確認してください。
ロジックを設定した後、関連するライブラリをインポートし、Apiを設定します:
インポートcbpro
インポートbase64
時間からjsonをインポートする
インポート睡眠
キー="
シークレット="
パスフレーズ="
エンコードされた=json。ダンプ(秘密)。エンコード()
b64secret=base64.b64encode(エンコード)
auth_client=cbpro.AuthenticatedClient(key=key,b64secret=secret,passphrase=passphrase)
c=cbpro.PublicClient()
主な取引ロジックについては、注文をより安全にするための重要な通知があります。 これを行うには、現在のETH-USD価格を取得し、上に数ドルを追加して指値注文を行います。
真の間:
試してみてください:
ticker=c.get_product_ticker(product_id='BTC-USD')
eとして例外を除いて:
print(f'エラー取得ティッカーデータ:{e}')
if float(ticker['price'])>=38500.00:
試してみてください:
limit=c.get_product_ticker(product_id='ETH-USD')
eとして例外を除いて:
print(f'エラー取得ティッカーデータ:{e}')
試してみてください:
注文=auth_client.place_limit_order(product_id='ETH-USDT',
side='買う',
price=float(limit['price'])+2,
サイズ='0.007')
eとして例外を除いて:
print(f'Error plating order:{e}')
睡眠(2)
試してみてください:
チェック=注文['id']
check_order=auth_client.get_order(order_id=チェック)
eとして例外を除いて:
print(f'unable順序を点検するため。 それは拒否される可能性があります。 {e}')
if check_order['status']=='完了':
print('正常に注文されました')
印刷(チェック順)
休憩
その他:
print('注文が一致しませんでした')
休憩
その他:
print(f'要件に達していません。 ティッカー価格は{ticker["price"]}')にあります
睡眠(10)
タスクは少し複雑になります。 新しいループは、2つの暗号化通貨の価格を取得し、その間の変化率を計算する必要があります:
●変化率が5%未満の場合、プログラムは5分以上寝ています;
●変化率が5%以上の場合は、取引が実行されます。
達成後数秒待って、再び貿易を確認してください。
真の間:
試してみてください:
ticker_old=c.get_product_ticker(product_id='BTC-USD')
eとして例外を除いて:
print(f'エラー取得ティッカーデータ:{e}')
睡眠(300)
試してみてください:
ticker_new=c.get_product_ticker(product_id='BTC-USD')
eとして例外を除いて:
print(f'エラー取得ティッカーデータ:{e}')
%=((float(ticker_new['price'])-float(ticker_old['price']))*100)/float(ticker_old['price'])
パーセント>=5の場合:
試してみてください:
制限=c.get_product_ticker(product_id='ETH-USDT')
eとして例外を除いて:
print(f'エラー取得ティッカーデータ:{e}')
試してみてください:
注文=auth_client.place_limit_order(product_id='ETH-USDT',
side='買う',
price=float(limit['price'])+2,
サイズ='0.007')
eとして例外を除いて:
print(f'Error plating order:{e}')
睡眠(2)
試してみてください:
チェック=注文['id']
check_order=auth_client.get_order(order_id=チェック)
eとして例外を除いて:
print(f'unable順序を点検するため。 それは拒否される可能性があります。 {e}')
if check_order['status']=='完了':
print('正常に注文されました')
印刷(チェック順)
休憩
その他:
print('注文が一致しませんでした')
休憩
その他:
print(f'要件に達していません。 パーセントの変化は{パーセント}にあります')
注文をキャンセルするのは非常に簡単です。 に行く cancel_order
APIエンドポイントを入力し、パラメータとして注文idを入力します:
クライアント。cancel_order(order_id="ORDER-ID-HERE")
この記事では、Coinbase Pro APIを詳しく見て、いくつかのpythonコード例を示しました。 完全なコードは、プラットフォームの上にあります GitHub ページ。