NetworkXおよびPythonPlatoBlockchainデータインテリジェンスによる暗号アービトラージ。 垂直検索。 愛。

NetworkXとPythonを使用した暗号アービトラージ

Coingecko API からの暗号データ​​を分析して、Python で暗号アービトラージ スキャナーを構築する

マクレーン・マーシャル

との共著 アイザック・レア

による写真 アリナ・グルブニャック on Unsplash

世界中の通貨市場は、債券、株式、先物よりもはるかに高い取引量で 24 日 XNUMX 時間取引されています。 マーケットを選ぶ。外国為替市場の参加者はリスクをヘッジしたり、将来の通貨価値の変化を推測したりしています。

もう一つの利益源は、通貨評価の短期的な不均衡を利用することによってもたらされます。超高速アルゴリズムを使用して、高頻度トレーダーは裁定取引の機会を特定し、わずかな利益をもたらす一連の取引を迅速に実行します。これを参照してください 記事 より詳細な説明と例については、Corporate Finance Institute の資料を参照してください。

コーポレートファイナンス研究所

為替市場では競争が激しく、取引量も多いため、こうした機会は長くは続かず、利益はごくわずかです。通貨裁定取引による利益は、取引回数が多いと時間の経過とともに生じる可能性がありますが、仮想通貨市場にも同様の機会が存在し、より収益性が高まる可能性があります。

取引できる暗号通貨が多数あるため、裁定取引の機会をチェックするための可能な組み合わせが多数あります。グラフ (ネットワーク) データ構造は、コイン間のさまざまな為替レートを追跡し、利用できる不均衡のインスタンスを迅速に特定するのに最適です。グラフ/ネットワーク、およびそれらを操作するための Python パッケージの詳細については、これを確認してください。 セクションに 実用的なプログラマー シリーズ。

暗号通貨のグラフを構築するには、NetworkX パッケージを利用します。これは、興味のあるコインを簡単に分析し、取引の機会を見つけることができる強力なツールです。まず、CoinGecko API から暗号通貨の為替レートを取得します。次に、グラフを初期化し、関心のある各コイン間の関係 (為替レート) を定義します。最後に、あるコインから別のコインへ、そしてその逆に戻るすべてのパスをループして、アービトラージの機会を特定します。

JSON API の経験がある場合は、 CoinGecko API は比較的簡単に使用できます。このコードのスニペットを使用して、5 つの異なるコイン (ビットコイン、ビットコイン キャッシュ、イーサリアム、ライトコイン、および EOS) の現在の為替レートを取得しました。

データを取得したいコインに応じて、API 呼び出しの URL は次のようになります。

https://api.coingecko.com/api/v3/simple/price?ids=bitcoin-cash,ethereum,bitcoin,litecoin,eos&vs_currencies=bch,eth,btc,ltc,eos

Python の Request パッケージと JSON パッケージを使用すると、リストに含めた各暗号のキーを含む辞書としてこのデータをロードできます。これらの各キーに関連付けられた値は、その通貨ペアの為替レートのエントリを含む別の辞書です。たとえば、ビットコイン キャッシュの場合、次の結果が得られます。

これは、0.25 ビットコイン キャッシュで 0.16 イーサリアムまたは 1 ビットコインを購入できることを示しています。各暗号のこれらの結果により、グラフを定義する準備が整いました。

各コインはグラフの「頂点」を表し、2 つのコイン間の交換レートは「エッジ」です。空の Graph オブジェクトを初期化した後、コインの各ペアのタプルのリストと両方向の為替レートを定義します。

エッジのリストは次のようになります。

グラフにエッジが追加されたので、裁定取引の機会をスキャンする準備が整いました。 itertools パッケージの組み合わせ関数を使用して、考えられるコインのペアをすべて定義します。次に、NetworkX の all_simple_paths 関数を使用して、最初のコインから 2 番目のコインまでの可能なパスをすべて定義します。

たとえば、ライトコインとビットコイン キャッシュに注目している場合、検討しているコインを考慮すると、多くの可能なパスがあります。単にライトコインでビットコイン キャッシュを購入することも、ライトコインでビットコインを購入し、ビットコインを使用してビットコイン キャッシュを購入することもできます。

各パスをループし、各ステップで次の計算を実行します。まず、初期コインの 1 つから始めると仮定します。パスの終点に到達するまで、あるコインから別のコインへの交換レートをそれに掛けます。

たとえば、0.24 つのビットコイン キャッシュから開始すると、1 イーサリアムを購入できるため、0.24197529 x 0.24197529 = 0.06 を掛けます。イーサリアムからビットコインへの交換レートは 0.24197529 なので、0.06484324 x 0.0156904618035396 = XNUMX を掛けます。この値は、ビットコイン キャッシュとビットコインの為替レートに非常に近いですが、まったく同じではありません。

この時点で、1 x 15.414849 x 4.132739 = 63.705547641411 を乗算して、パスの逆、つまりビットコインからイーサリアム、ビットコイン キャッシュを確認します。これら 0.0156904618035396 つの結果を乗算して、パスの最終評価を行います (63.705547641411 x 0.9995694619411315 = XNUMX)。私の知る限り、この値を表す定義された用語はありません。それをアービトラージファクターと呼ぶことができます。

為替レートが同期していれば、アービトラージファクターはちょうど 1.005 になるでしょう。 0.005 未満の値は、一連の交換を経て、最初よりも少ない値で終了したことを示します。したがって、交換を行うと利益が得られるため、この値が 3 より大きいことを探します。前の例でアービトラージ係数が XNUMX であることがわかった場合、ある暗号通貨から別の暗号通貨への交換パスをたどることで、XNUMX ビットコイン キャッシュ (約 XNUMX ドル相当) を獲得できたことを示しています。

アービトラージの機会は 1.01 日を通じてさまざまな暗号通貨で行き来するため、1 を大幅に上回るアービトラージ ファクターを見つけなくても、いくつかのコインのすべての組み合わせをチェックすることが可能です。ただし、アービトラージファクターが XNUMX を超えているのを見たことがあります。これは、単純な暗号通貨交換を通じて XNUMX% のリターンがすぐに得られる可能性があることを示しています。

上記で説明した 3 つの機能を組み合わせることで、暗号化アービトラージ スキャナーを作成できます。

通貨裁定取引は確立された低リスクの取引方法ですが、従来の通貨の市場は非常に効率的で競争力があります。暗号通貨には大きなチャンスがあり、いくつかのシンプルな Python ツールが戦略を促進するのに役立ちます。 NetworkX を使用すると、グラフを構築し、アービトラージの機会をすばやく検索できます。

ただし、克服すべき課題はまだあります。まず、仮想通貨の取引手数料は非常に高額になる可能性があります。これは、利益を上げるためには、暗号通貨間の不均衡が大きくなければならないことを意味します。同時に、戦略は自動化され、定期的または 2 時間実行されるように設定されている場合に最も効果的です。 AWS ECXNUMX インスタンスまたは Lambda 関数を使用した暗号通貨取引戦略の実装に関する今後の記事に注目してください。

その他のコンテンツ プレーン英語.io

出典: https://python.plainenglish.io/crypto-arbitrage-with-networkx-and-python-638166e5a947?source=rss——-8——————–cryptocurrency

タイムスタンプ:

より多くの M

NFT —簡単な概要

ソースノード: 916712
タイムスタンプ: 2021 年 6 月 12 日