デジタル通貨市場を量的に分析する

作者: リン・ハーン優しさ, 作成日: 2019-08-16 10:37:23, 更新日: 2023-10-19 21:04:20

img

デジタル通貨のデータ駆動型分析方法

ビットコインの価格はどのように動いているのか? デジタル通貨の価格の上昇と減少の原因は何なのか? 異なるコインの市場価格は,不可分に結びついているのか,それともほとんど独立したのか? 次に何が起こるかを予測するにはどうすればよいのか?

ビットコインやイーサリアムなどのデジタル通貨に関する記事は,現在,何百人もの自称の専門家が,彼らが期待する傾向を主張しているような推測に満ちています.これらの分析の多くは,基本的なデータや統計モデルに固い基盤がないのです.

この記事の目的は,Pythonを使ってデジタル通貨分析を簡潔に説明することです. 私たちは簡単なPythonスクリプトを使用して,さまざまなデジタル通貨のデータを検索,分析,視覚化します. その過程で,これらの変動する市場行動と,それらの進化の興味深い傾向を明らかにします.

img

これはデジタル通貨の解説や,どの特定の通貨が上昇し,どの通貨が落ちるかについての見解ではありません.むしろ,このチュートリアルでは,原始データを入手し,数字の中に隠された物語を発見することに焦点を当てています.

"つ目のステップは データワーク環境を構築することです

このチュートリアルは,あらゆるレベルのスキルを持つアマチュア,エンジニア,データサイエンティストのために設計されています.業界大手でも,プログラマでも,必要なのはPythonプログラミング言語の基本的な知識とコマンドライン操作の十分な知識 (データサイエンスのプロジェクトを設定するのに十分な知識) です.

1.1 発明者定量化ホストをインストールし,Anacondaを設定する

  • 発明者による量化托管システム

发明者量化平台FMZ.COM除了提供优质的各大主流交易所的数据源,还提供一套丰富的API接口以帮助我们在完成数据的分析后进行自动化交易。这套接口包括查询账户信息,查询各个主流交易所的高,开,低,收价格,成交量,各种常用技术分析指标等实用工具,特别是对于实际交易过程中连接各大主流交易所的公共API接口,提供了强大的技术支持。

これらの機能はすべてDockerのようなシステムに組み込まれています. クラウドコンピューティングサービスを購入したり,レンタルしたりして,Dockerを導入するだけです.

発明者による量化プラットフォームの公式名称では,このDockerシステムはホストシステムと呼ばれています.

管理者やロボットの配備については,私の前の記事を参照してください.https://www.fmz.com/bbs-topic/4140

クラウドサーバーの展開管理者を購入したい人は,この記事を参照してください:https://www.fmz.com/bbs-topic/2848

Pythonの最大級の神社である Anaconda をインストールします. これは,Python の最大級の神社である Anaconda をインストールします.

本文に必要なすべての関連するプログラム環境 (依存庫,バージョン管理など) を実現するには,最も簡単な方法はAnacondaです.これはパッケージ化されたPythonデータサイエンスのエコシステムであり,依存庫管理者です.

Anacondaは,クラウド上のサービスにインストールされているため,Linuxシステムに Anacondaのコマンドラインバージョンをクラウドサーバーにインストールすることをお勧めします.

アナコンダのインストール方法については,Anacondaの公式ガイドを参照してください.https://www.anaconda.com/distribution/

経験豊富なPythonプログラマーで,Anacondaを使用する必要がないと感じている場合,それはまったく問題ありません. 必要な依存環境をインストールする際に助けを必要としていないと仮定します. あなたは直接第2部分に飛び込むことができます.

1.2 アナコンダのデータ分析プロジェクト環境を作成する

Anaconda のインストールが完了したら,新しい環境を作成して,依存パックを管理する必要があります.

conda create --name cryptocurrency-analysis python=3

アナコンダは,私たちのプロジェクトのために新しい環境を作り出します.

文字列を入力します.

source activate cryptocurrency-analysis (linux/MacOS操作)
或者
activate cryptocurrency-analysis (windows操作系统)

この環境を活性化するために

このページは,Skype.comのサイトで公開されています.

conda install numpy pandas nb_conda jupyter plotly

このプロジェクトをインストールするために必要な様々な依存パッケージ.

注意: Anaconda 環境を使用する理由. Python プロジェクトをたくさんコンピュータで実行する場合は,異なるプロジェクトの依存パッケージ (ソフトウェアライブラリとパッケージ) を分離して衝突を避けるのが役立ちます.

1.3 木星ノートブックを作成する

環境と依存パックがインストールされると実行します.

jupyter notebook

ブラウザでアクセスしてください.localhost:8888/Python Notebook を作成する上で,

Python [conda env:cryptocurrency-analysis]

img

1.4 依存パックを輸入する

新しい空っぽのJupyterノートブックを作って,最初にやるのは,必要な依存パッケージを輸入することです.

import os
import numpy as np
import pandas as pd
import pickle
from datetime import datetime

Plotlyを入力してオフラインモードを起動します.

import plotly.offline as py
import plotly.graph_objs as go
import plotly.figure_factory as ff
py.init_notebook_mode(connected=True)

デジタル通貨の価格情報を入手する

準備が完了し,分析するデータを入手し始めます. まず,発明者のプラットフォームのAPIを量化してビットコインの価格データを入手します.

これはGetTicker関数を使用します. この2つの関数の使い方については,以下を参照してください.https://www.fmz.com/api

2.1 Quandl のデータ収集関数を書く

簡単にデータを取得するために,Quandlからダウンロードして同期する関数を書き込む必要があります.quandl.com) のデータである.これは外国で高い知名度を持つ無料の金融データインターフェースである.発明者の量化プラットフォームも同様のデータインターフェースを提供しており,主にリアルタイムの取引時に使用されます.この記事では主にデータ分析のため,Quandlのデータを使用します.

実体取引では,GetTickerとGetRecords関数を直接Pythonで呼び出し,価格データを入手することができます.それらの用途については,以下を参照してください:https://www.fmz.com/api

def get_quandl_data(quandl_id):
    # 下载和缓冲来自Quandl的数据列
    cache_path = '{}.pkl'.format(quandl_id).replace('/','-')
    try:
        f = open(cache_path, 'rb')
        df = pickle.load(f)   
        print('Loaded {} from cache'.format(quandl_id))
    except (OSError, IOError) as e:
        print('Downloading {} from Quandl'.format(quandl_id))
        df = quandl.get(quandl_id, returns="pandas")
        df.to_pickle(cache_path)
        print('Cached {} at {}'.format(quandl_id, cache_path))
    return df

パンダのデータフレーム形式のデータを返します. データフレームの概念があまりよくない場合は,それを強力な Excel 表のようなものと想像してください.

2.2 クラーケン取引所のデジタル通貨価格データを入手

クレイケンビットコイン取引所を例に挙げると,最初に入手したビットコインの価格から始めます.

# 获取Kraken比特币交易所的价格
btc_usd_price_kraken = get_quandl_data('BCHARTS/KRAKENUSD')

head () メソッドでデータボックスの最初の5行を表示します.

btc_usd_price_kraken.head()

この結果として:

BTC オープン 高い 低い 近づいて 量 (BTC) 量 (通貨) 重量化された価格
2014-01-07 874.67040 892.06753 810.00000 810.00000 15.622378 13151.472844 841.835522
2014-01-08 810.00000 899.84281 788.00000 824.98287 19.182756 16097.329584 839.156269
2014-01-09 825.56345 870.00000 807.42084 841.86934 8.158335 6784.249982 831.572913
2014-01-10 839.99000 857.34056 817.00000 857.33056 8.024510 6780.220188 844.938794
2014-01-11 858.20000 918.05471 857.16554 899.84105 18.748285 16698.566929 890.671709

次に,簡単な表を作って,データを可視化方法で検証します.

# 做出BTC价格的表格
btc_trace = go.Scatter(x=btc_usd_price_kraken.index, y=btc_usd_price_kraken['Weighted Price'])
py.iplot([btc_trace])

img

这里,我们用Plotly来完成可视化部分。相对于使用一些更成熟的Python数据可视化库,比如Matplotlib,用Plotly是一个不那么普遍的选择,但Plotly确实是一个不错的选择,因为它可以调用D3.js的充分交互式图表。这些图表有非常漂亮的默认设置,易于探索,而且非常方便嵌入到网页中。

小ヒント:生成されたチャートを主流の取引所のビットコイン価格チャート (OKEX,Binance,Huobiなどのチャート) と比較して,ダウンロードされたデータがほぼ一致しているかどうかを確認するための迅速な完全性チェックとして使用できます.

2.3 主要なビットコイン取引所からの価格データ

注意深い読者は,特に2014年末と2016年初頭に,上記のデータにデータ欠陥があることに気づいているかもしれません.特にKraken Exchangeでは,このデータ欠陥が特に顕著です.我々は,これらの欠陥が価格分析に影響することを望まないでしょう.

デジタル通貨取引所の特徴は,供給・需要関係がコインの価格を決定するものである.したがって,どの取引の価格も市場の主流の価格になる可能性がない.この問題を解決するために,そして,前述のデータ不足 (技術的な停電とデータ上の誤りによる可能性がある) の問題を解決するために,我々は世界の3つの主要なビットコイン取引所からのデータをダウンロードし,その後,平均的なビットコイン価格を計算します.

まず,各取引所のデータを辞書型からなるデータパックにダウンロードしましょう.

# 下载COINBASE,BITSTAMP和ITBIT的价格数据
exchanges = ['COINBASE','BITSTAMP','ITBIT']

exchange_data = {}

exchange_data['KRAKEN'] = btc_usd_price_kraken

for exchange in exchanges:
    exchange_code = 'BCHARTS/{}USD'.format(exchange)
    btc_exchange_df = get_quandl_data(exchange_code)
    exchange_data[exchange] = btc_exchange_df

2.4 すべてのデータをデータパックに統合する

次のステップでは,特定の関数を定義し,各データ列の共有列を新しいデータ列に統合します. これを merge_dfs_on_column としましょう.

def merge_dfs_on_column(dataframes, labels, col):
    '''Merge a single column of each dataframe into a new combined dataframe'''
    series_dict = {}
    for index in range(len(dataframes)):
        series_dict[labels[index]] = dataframes[index][col]
        
    return pd.DataFrame(series_dict)

現在,各データセットを元に,すべてのデータセットを統合して,加重価格を並べています.

# 整合所有数据帧
btc_usd_datasets = merge_dfs_on_column(list(exchange_data.values()), list(exchange_data.keys()), 'Weighted Price')

最後に,tail (尾) を使って,合同後のデータの最後の5行を見ます.

btc_usd_datasets.tail()

メディアの反応は

BTC BITSTAMP コインベース ITBIT クラケン
2017-08-14 4210.154943 4213.332106 4207.366696 4213.257519
2017-08-15 4101.447155 4131.606897 4127.036871 4149.146996
2017-08-16 4193.426713 4193.469553 4190.104520 4187.399662
2017-08-17 4338.694675 4334.115210 4334.449440 4346.508031
2017-08-18 4182.166174 4169.555948 4175.440768 4198.277722

上記の表から,これらのデータは予想通りであり,データ範囲はほぼ同じですが,各取引所の遅延やそれぞれの特性に基づいてわずかに異なります.

2.5 価格データの可視化プロセス

解析論理的には,次のステップは,このデータを視覚化して比較することです. そのためには,まず,補助関数を定義し,単行本命令でデータ生成グラフを提供することで,df_scatter関数と呼ぶ必要があります.

def df_scatter(df, title, seperate_y_axis=False, y_axis_label='', scale='linear', initial_hide=False):
    '''Generate a scatter plot of the entire dataframe'''
    label_arr = list(df)
    series_arr = list(map(lambda col: df[col], label_arr))
    
    layout = go.Layout(
        title=title,
        legend=dict(orientation="h"),
        xaxis=dict(type='date'),
        yaxis=dict(
            title=y_axis_label,
            showticklabels= not seperate_y_axis,
            type=scale
        )
    )
    
    y_axis_config = dict(
        overlaying='y',
        showticklabels=False,
        type=scale )
    
    visibility = 'visible'
    if initial_hide:
        visibility = 'legendonly'
        
    # 每个系列的表格跟踪
    trace_arr = []
    for index, series in enumerate(series_arr):
        trace = go.Scatter(
            x=series.index, 
            y=series, 
            name=label_arr[index],
            visible=visibility
        )
        
        # 为系列添加单独的轴
        if seperate_y_axis:
            trace['yaxis'] = 'y{}'.format(index + 1)
            layout['yaxis{}'.format(index + 1)] = y_axis_config    
        trace_arr.append(trace)

    fig = go.Figure(data=trace_arr, layout=layout)
    py.iplot(fig)

簡単に理解するために,この記事ではこの補助関数の論理原理を詳しく説明しません.もっと詳しくは,PandasとPlotlyの公式説明書を参照してください.

今や,Bitcoinの価格データを簡単にグラフ化できます.

# 绘制所有BTC交易价格
df_scatter(btc_usd_datasets, 'Bitcoin Price (USD) By Exchange')

img

2.6 総価格データをクリアして追加する

上記の図から,この4つのデータ連鎖がほぼ同じ経路をたどっているにもかかわらず,いくつかの異常変化があることがわかります.

2012年から2017年の間,ビットコインの価格が0に等しいことは決してないことを知っており,データボックスからすべての0を削除しました.

# 清除"0"值
btc_usd_datasets.replace(0, np.nan, inplace=True)

データのパックを再構築すると,より鮮明なグラフが見えます.

# 绘制修订后的数据框
df_scatter(btc_usd_datasets, 'Bitcoin Price (USD) By Exchange')

img

取引所のすべての取引所の1日間の平均価格を計算できます.

# 将平均BTC价格计算为新列
btc_usd_datasets['avg_btc_price_usd'] = btc_usd_datasets.mean(axis=1)

この新しい列は,ビットコインの価格指数です.

# 绘制平均BTC价格
btc_trace = go.Scatter(x=btc_usd_datasets.index, y=btc_usd_datasets['avg_btc_price_usd'])
py.iplot([btc_trace])

img

この数字通貨とドルとの間の交換率を特定するために,この合計した価格配列データを後で引き続き使用します.

ステップ3: Altcoinsの価格を収集する

これまでに,Bitcoinの価格のタイムシーケンスデータがあります.次に,Bitcoin以外のデジタル通貨のデータを見てみましょう. Altcoinsの場合は,もちろん,Altcoinsという言葉は少し過大評価されるかもしれませんが,現在のデジタル通貨の状況については,市場価値トップ10 (Bitcoin,Ethereum,EOS,USDTなど) を除いて,ほとんどがXinjiと呼ばれることは問題ありません. 取引中にこれらの通貨からできるだけ遠ざかっておくべきです.

3.1 ポロニエックス取引所のAPIで定義された補助関数

まず,我々はポロニエクス取引所のAPIを使用してデジタル通貨取引のデータ情報を入手した.我々は,主にAPIを通じてJSONデータをダウンロードしキャッシュする2つの補助機能を定義し,暗号に関するデータを入手した.

まず,get_json_data を定義し,与えられたURLからJSONデータをダウンロードしてキャッシュします.

def get_json_data(json_url, cache_path):
    '''Download and cache JSON data, return as a dataframe.'''
    try:        
        f = open(cache_path, 'rb')
        df = pickle.load(f)   
        print('Loaded {} from cache'.format(json_url))
    except (OSError, IOError) as e:
        print('Downloading {}'.format(json_url))
        df = pd.read_json(json_url)
        df.to_pickle(cache_path)
        print('Cached {} at {}'.format(json_url, cache_path))
    return df

次に,新しい関数を定義し,この関数はPoloniex APIからHTTPリクエストを生成し,ちょうど定義したget_json_data関数を呼び出し,呼び出しのデータ結果を保存します.

base_polo_url = 'https://poloniex.com/public?command=returnChartData&currencyPair={}&start={}&end={}&period={}'
start_date = datetime.strptime('2015-01-01', '%Y-%m-%d') # 从2015年开始获取数据
end_date = datetime.now() # 直到今天
pediod = 86400 # pull daily data (86,400 seconds per day)

def get_crypto_data(poloniex_pair):
    '''Retrieve cryptocurrency data from poloniex'''
    json_url = base_polo_url.format(poloniex_pair, start_date.timestamp(), end_date.timestamp(), pediod)
    data_df = get_json_data(json_url, poloniex_pair)
    data_df = data_df.set_index('date')
    return data_df

上記の関数は,デジタル通貨の対称文字コード (例えば,BTC_ETHの) を抽出し,両通貨の歴史価格を含むデータ欄を返します.

3.2 取引価格データをPoloniexからダウンロードする

ほとんどの暗号通貨は,ドルで直接購入することはできません.個人には,通常,ビットコインを購入し,それらの価格の比率に応じて暗号通貨に換算する必要があります. そのため,各デジタル通貨のビットコインの換算率をダウンロードし,既存のビットコイン価格データを使用してドルに換算する必要があります.私たちはトップ9のデジタル通貨取引データをダウンロードします:Ethereum,Litecoin,Ripple,EthereumClassic,Stellar,Dash,Siacoin,Monero,およびNEM.

altcoins = ['ETH','LTC','XRP','ETC','STR','DASH','SC','XMR','XEM']

altcoin_data = {}
for altcoin in altcoins:
    coinpair = 'BTC_{}'.format(altcoin)
    crypto_price_df = get_crypto_data(coinpair)
    altcoin_data[altcoin] = crypto_price_df

現在,私たちは9つのデータパックを含む辞書を持っています. それぞれが,カブトムシとビットコインの間の歴史的な日平均価格のデータを含んでいます.

Ethereumの価格表の最後の数行から,データが正しいかどうかを判断することができます.

altcoin_data['ETH'].tail()
ETH オープン 高い 低い 近づいて 量 (BTC) 量 (通貨) 重量化された価格
2017-08-18 0.070510 0.071000 0.070170 0.070887 17364.271529 1224.762684 0.070533
2017-08-18 0.071595 0.072096 0.070004 0.070510 26644.018123 1893.136154 0.071053
2017-08-18 0.071321 0.072906 0.070482 0.071600 39655.127825 2841.549065 0.071657
2017-08-19 0.071447 0.071855 0.070868 0.071321 16116.922869 1150.361419 0.071376
2017-08-19 0.072323 0.072550 0.071292 0.071447 14425.571894 1039.596030 0.072066

3.3 すべての価格データの通貨をドルに統一する

今では,BTCとCoinの為替レートのデータを,Bitcoinの価格指数と組み合わせて,それぞれのCoinの歴史的な価格 (単位:ドル) を直接計算できます.

# 将USD Price计算为每个altcoin数据帧中的新列
for altcoin in altcoin_data.keys():
    altcoin_data[altcoin]['price_usd'] =  altcoin_data[altcoin]['weightedAverage'] * btc_usd_datasets['avg_btc_price_usd']

このページでは,各コインのデータバッグに,対応するドル価格を格納するための新しい列を追加します.

次に,以前定義した関数merge_dfs_on_column を再利用して,各デジタル通貨のドル価格を統合する統合データパックを作成できます.

# 将每个山寨币的美元价格合并为单个数据帧
combined_df = merge_dfs_on_column(list(altcoin_data.values()), list(altcoin_data.keys()), 'price_usd')

解決した!

このデータバックに,ビットコインの価格を最後に追加してみましょう.

# 将BTC价格添加到数据帧
combined_df['BTC'] = btc_usd_datasets['avg_btc_price_usd']

現在,私たちが検証している10の仮想通貨の1日当たりのドル価格を含むユニークなデータパックがあります.

元の関数df_scatterを呼び戻し,すべてのコインの相応の価格をグラフ形式で表示します.

img

このグラフは,過去数年間にわたって各デジタル通貨の交換価格の変動の全体像を示しています.

注:ここで,私たちは対数仕様のy軸を使用して,同じ図上のすべてのデジタル通貨を比較します.また,他の異なるパラメータ値 (例えば scale=線形) を試してみることもできます.

3.4 関連性分析を開始

注意深い読者は,デジタル通貨の価格が関連しているように見えますが,両国の通貨の価値は大きく差異があり,波動性が高いことに気付くかもしれません. 特に2017年4月の急上昇から,多くの小さな波動も市場全体の波動と同期しているように見えます.

もちろん,データに基づいた結論は,画像に基づいた直感よりも説得力がある.

上記の関連性仮説を検証するには,Pandas corr () 関数を使用することができる.このテストは,データ列の各列に他の列に対応するピルソン相関系数を計算する.

2017.8.22 修正注: この部分の変更は,関連系数を計算する際に,価格ではなく日々の返金率を使用するためのものです.

非固有時間列 (例えば原始価格データ) をベースにした直接計算は,関連系数の偏差を引き起こす可能性があります.この問題に対する私たちの解決策は,pct_change (pct_change) 方法を使用して,データアレイ内の各価格の絶対値を,対応する日帰り率に変換することです.

例えば,2016年の関数について考えてみましょう.

# 计算2016年数字货币的皮尔森相关系数
combined_df_2016 = combined_df[combined_df.index.year == 2016]
combined_df_2016.pct_change().corr(method='pearson')
名前 DASH エチオピア ETH LTC SC STR XEM XMR XRP BTC
DASH 1.000000 0.003992 0.122695 -0.012194 0.026602 0.058083 0.014571 0.121537 0.088657 -0.014040
エチオピア 0.003992 1.000000 -0.181991 -0.131079 -0.008066 -0.102654 -0.080938 -0.105898 -0.054095 -0.170538
ETH 0.122695 -0.181991 1.000000 -0.064652 0.169642 0.035093 0.043205 0.087216 0.085630 -0.006502
LTC -0.012194 -0.131079 -0.064652 1.000000 0.012253 0.113523 0.160667 0.129475 0.053712 0.750174
SC 0.026602 -0.008066 0.169642 0.012253 1.000000 0.143252 0.106153 0.047910 0.021098 0.035116
STR 0.058083 -0.102654 0.035093 0.113523 0.143252 1.000000 0.225132 0.027998 0.320116 0.079075
XEM 0.014571 -0.080938 0.043205 0.160667 0.106153 0.225132 1.000000 0.016438 0.101326 0.227674
XMR 0.121537 -0.105898 0.087216 0.129475 0.047910 0.027998 0.016438 1.000000 0.027649 0.127520
XRP 0.088657 -0.054095 0.085630 0.053712 0.021098 0.320116 0.101326 0.027649 1.000000 0.044161
BTC -0.014040 -0.170538 -0.006502 0.750174 0.035116 0.079075 0.227674 0.127520 0.044161 1.000000

上記の図は関係系数をすべて示している.係数が1または-1に近いということは,順序が正関係または逆関係であることを意味し,関係系数が0に近いことは,関係のない物体であり,それらの波動は相互に独立していることを示している.

ビジュアライゼーションの改善のために,新しいビジュアライゼーションのヘルプ機能を作成しました.

def correlation_heatmap(df, title, absolute_bounds=True):
    '''Plot a correlation heatmap for the entire dataframe'''
    heatmap = go.Heatmap(
        z=df.corr(method='pearson').as_matrix(),
        x=df.columns,
        y=df.columns,
        colorbar=dict(title='Pearson Coefficient'),
    )
    
    layout = go.Layout(title=title)
    
    if absolute_bounds:
        heatmap['zmax'] = 1.0
        heatmap['zmin'] = -1.0
        
    fig = go.Figure(data=[heatmap], layout=layout)
    py.iplot(fig)
correlation_heatmap(combined_df_2016.pct_change(), "Cryptocurrency Correlations in 2016")

img

ここで,深赤の値は強い関連性を表す (各通貨種は明らかにそれ自身の高度に関連している),深青の値は逆関係性を表す.すべての中間色 - 淡い青//灰/茶色 - の値は異なる程度で弱い関連性または無関係性を表している.

基本的には,数字通貨の価格の変動が2016年にほとんど統計的に有意な関連性がないことを示しています.

デジタル通貨の関連性が近数カ月で強化されるという仮説を検証するために,次に2017年から開始したデータを使って同じテストを繰り返します.

combined_df_2017 = combined_df[combined_df.index.year == 2017]
combined_df_2017.pct_change().corr(method='pearson')
名前 DASH エチオピア ETH LTC SC STR XEM XMR XRP BTC
DASH 1.000000 0.384109 0.480453 0.259616 0.191801 0.159330 0.299948 0.503832 0.066408 0.357970
エチオピア 0.384109 1.000000 0.602151 0.420945 0.255343 0.146065 0.303492 0.465322 0.053955 0.469618
ETH 0.480453 0.602151 1.000000 0.286121 0.323716 0.228648 0.343530 0.604572 0.120227 0.421786
LTC 0.259616 0.420945 0.286121 1.000000 0.296244 0.333143 0.250566 0.439261 0.321340 0.352713
SC 0.191801 0.255343 0.323716 0.296244 1.000000 0.417106 0.287986 0.374707 0.248389 0.377045
STR 0.159330 0.146065 0.228648 0.333143 0.417106 1.000000 0.396520 0.341805 0.621547 0.178706
XEM 0.299948 0.303492 0.343530 0.250566 0.287986 0.396520 1.000000 0.397130 0.270390 0.366707
XMR 0.503832 0.465322 0.604572 0.439261 0.374707 0.341805 0.397130 1.000000 0.213608 0.510163
XRP 0.066408 0.053955 0.120227 0.321340 0.248389 0.621547 0.270390 0.213608 1.000000 0.170070
BTC 0.357970 0.469618 0.421786 0.352713 0.377045 0.178706 0.366707 0.510163 0.170070 1.000000

投資の判断基準として十分なのでしょうか? 答えは否定的です.

しかし,注目すべきは,ほぼすべてのデジタル通貨がますます相互に関連していることです.

correlation_heatmap(combined_df_2017.pct_change(), "Cryptocurrency Correlations in 2017")

img

グラフからわかるように,物事はますます面白くなっています.

なぜそうなるのか?

素晴らしい質問です! しかし,実際は,私はあまり確信していません.

私の最初の反応は,ヘッジファンドが最近,デジタル通貨市場で公開取引を開始したことです. これらのファンドは,一般のトレーダーよりもはるかに多くの資本を保有しており,もしあるファンドが複数のデジタル通貨間で投資資本をヘッジした場合,それぞれの通貨に対して独立した変数 (例えば,株式市場) に基づいて同様の取引戦略を使用すると,この観点から見ると,このような強烈な関連性の傾向は合理的です.

XRPとSTRをより深く理解する

例えば,上記の図から,XRP (Rippleのトークン) は他のデジタル通貨との関連性が最低であることが明らかになります. しかし,STR (Stellarのトークン,公式名"Lumens") と XRP (関連系数:0.62) との強い関連性があるのが注目すべき例外です.

興味深いことに,StellarとRippleは非常に類似した金融技術プラットフォームであり,両者は銀行間跨国送金における繁忙なステップを削減することを目指している. 予想通り,ブロックチェーンサービスがトークンを使用する類似性を考慮すると,一部の大手プレイヤーやヘッジファンドはStellarとRippleへの投資に対して同様の取引戦略を使用する可能性がある. これがXRPが他のデジタル通貨と比較してSTRとより強く関連している理由かもしれません.

じゃあ,あなたの番です!

上記の説明はほとんど推測的なもので,おそらくあなたはもっとうまくやります. 私たちが既に築いた基盤に基づいて,データの中に隠された物語をさらに探求するための何百もの異なる方法があります.

この記事へのトラックバック一覧です: 海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外の海外

  • デジタル通貨のデータも分析全体に追加
  • 関連性分析の時間範囲と粒子を調整し,最適化または粗粒度のある傾向視点を取得する.
  • 取引量やブロックチェーンデータからトレンドを集約して掘り出す. 原始価格データと比較して,将来の価格変動を予測したい場合は,購入/売却比率データが必要かもしれません.
  • 株式,商品,法定通貨の価格データを組み合わせて,どれがデジタル通貨と関連しているかを判断します (しかし,関係性のない因果関係がないという言葉を忘れないでください)
  • イベントレジストリ,GDELT,GoogleTrendsを使用して,特定のデジタル通貨の話題の話題数を量化します.
  • データを使って予測型機械学習モデルを訓練し,明日の価格を予測します. もっと大きな野心があるなら,RNNを使って上記のトレーニングを試みることも考えられます.
  • あなたの分析を活用して,対応するアプリケーションプログラミングインターフェース (API) を通じて,自動化された取引ロボットを作成し,例えばPoloniexやCoinbaseのような取引所のウェブサイトに適用します.注意してください.不効率なロボットは,簡単にあなたの資産を瞬時に消し去ることができます.这里推荐使用发明者量化平台FMZ.COM

ビットコイン,そしてデジタル通貨全体について,最高の部分は,それらの分散性であり,それは他のどの資産よりも自由で民主的です. あなたの分析をオープンソースで共有したり,コミュニティに参加したり,ブログを書くことができます.今,あなたが自分自身で分析するために必要なスキルを習得し,将来,特にデータ支持のない予測を前提とした,いかなる憶測的なデジタル通貨の記事も読むときに,弁論的な思考を行う能力を持っていることを願います.https://www.fmz.com/bbs投稿者: 藤井 さん


関連性

もっと

ルーキシアオ1989素晴らしい記事で,学びました,ありがとう.

優しさありがとうございました! ありがとうございました!