Analisis Kuantitatif Pasar Mata Uang Digital

Penulis:Lydia, Dibuat: 2023-01-06 10:28:01, Diperbarui: 2023-09-20 10:27:27

img

Analisis Kuantitatif Pasar Mata Uang Digital

Pendekatan berbasis data untuk analisis spekulatif mata uang digital

Bagaimana dengan harga Bitcoin? Apa alasan kenaikan dan penurunan harga mata uang digital? Apakah harga pasar Altcoin yang berbeda terkait erat atau sebagian besar independen? Bagaimana kita bisa memprediksi apa yang akan terjadi selanjutnya?

Artikel tentang mata uang digital, seperti Bitcoin dan Ethereum, sekarang penuh dengan spekulasi. Ratusan ahli yang mengaku diri mereka menganjurkan tren yang mereka harapkan. Apa yang kurang dari banyak analisis ini adalah dasar yang kuat untuk data dasar dan model statistik.

Tujuan dari artikel ini adalah untuk memberikan pengenalan singkat tentang analisis mata uang digital dengan menggunakan Python. Kami akan menggunakan skrip Python sederhana untuk mengambil, menganalisis dan memvisualisasikan data mata uang digital yang berbeda. Dalam proses ini, kami akan menemukan tren menarik dalam perilaku pasar fluktuasi ini dan bagaimana mereka berkembang.

img

Ini bukan artikel yang menjelaskan mata uang digital, juga bukan pendapat tentang mata uang tertentu yang akan meningkat dan yang akan menurun. Sebaliknya, apa yang kami fokuskan dalam tutorial ini adalah untuk mendapatkan data asli dan menemukan cerita yang tersembunyi dalam angka-angka.

Langkah 1: Menyiapkan lingkungan kerja data kami

Tutorial ini ditujukan untuk penggemar, insinyur dan ilmuwan data di semua tingkat keterampilan. Apakah Anda seorang pemimpin industri atau pemula pemrograman, satu-satunya keterampilan yang Anda butuhkan adalah pemahaman dasar bahasa pemrograman Python dan pengetahuan yang cukup tentang operasi baris perintah (mampu mengatur proyek ilmu data sudah cukup).

1.1 Menginstal FMZ Quant docker dan mengatur Anaconda

  • Sistem Docker dari platform FMZ Quant Platform FMZ QuantFMZ.COMTidak hanya menyediakan sumber data berkualitas tinggi untuk bursa utama, tetapi juga menyediakan seperangkat antarmuka API yang kaya untuk membantu kami melakukan transaksi otomatis setelah menyelesaikan analisis data. Set antarmuka ini mencakup alat praktis, seperti menanyakan informasi akun, menanyakan harga yang tinggi, terbuka, rendah, penerimaan, volume perdagangan, dan berbagai indikator analisis teknis yang umum digunakan dari berbagai bursa utama.

Semua fitur yang disebutkan di atas dikemas dalam sistem seperti Docker. Apa yang perlu kita lakukan adalah membeli atau menyewa layanan komputasi awan kita sendiri dan menyebarkan sistem Docker.

Dalam nama resmi platform FMZ Quant, sistem Docker ini disebut sistem Docker.

Silakan lihat artikel saya sebelumnya tentang cara mengimplementasikan docker dan robot:https://www.fmz.com/bbs-topic/9864.

Pembaca yang ingin membeli server komputasi awan mereka sendiri untuk menyebarkan dockers dapat merujuk pada artikel ini:https://www.fmz.com/digest-topic/5711.

Setelah menyebarkan server komputasi awan dan sistem docker dengan sukses, selanjutnya kita akan menginstal artefak terbesar saat ini Python: Anaconda

Untuk mewujudkan semua lingkungan program yang relevan (perpustakaan ketergantungan, manajemen versi, dll.) yang diperlukan dalam artikel ini, cara termudah adalah menggunakan Anaconda.

Karena kami menginstal Anaconda pada layanan cloud, kami merekomendasikan bahwa server cloud menginstal sistem Linux ditambah versi baris perintah Anaconda.

Untuk metode instalasi Anaconda, silakan lihat panduan resmi Anaconda:https://www.anaconda.com/distribution/.

Jika Anda seorang programmer Python yang berpengalaman dan jika Anda merasa bahwa Anda tidak perlu menggunakan Anaconda, itu tidak masalah sama sekali. Saya akan berasumsi bahwa Anda tidak memerlukan bantuan saat menginstal lingkungan dependen yang diperlukan. Anda dapat melewatkan bagian ini langsung.

1.2 Membuat lingkungan proyek analisis data untuk Anaconda

Setelah Anaconda diinstal, kita perlu membuat lingkungan baru untuk mengelola paket tergantung kita.

conda create --name cryptocurrency-analysis python=3

untuk menciptakan lingkungan Anaconda baru untuk proyek kami.

Selanjutnya, input:

source activate cryptocurrency-analysis (linux/MacOS operating system)
or
activate cryptocurrency-analysis (windows operating system)

untuk mengaktifkan lingkungan.

Selanjutnya, input:

conda install numpy pandas nb_conda jupyter plotly

untuk menginstal berbagai paket tergantung yang diperlukan untuk proyek ini.

Catatan: Mengapa menggunakan lingkungan Anaconda? Jika Anda berencana untuk menjalankan banyak proyek Python di komputer Anda, sangat membantu untuk memisahkan paket dependen (perpustakaan perangkat lunak dan paket) dari proyek yang berbeda untuk menghindari konflik.

1.3 Buat Buku Catatan Jupyter

Setelah lingkungan dan paket tergantung diinstal, jalankan:

jupyter notebook

untuk memulai kernel iPython, lalu kunjungihttp://localhost:8888/dengan browser Anda, buat buku catatan Python baru, pastikan menggunakan:

Python [conda env:cryptocurrency-analysis]

kernel

img

1.4 Paket yang tergantung impor

Buat buku catatan Jupyter kosong, dan hal pertama yang perlu kita lakukan adalah mengimpor paket dependen yang diperlukan.

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

Kita juga perlu mengimpor Plotly dan mengaktifkan mode offline:

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

Langkah 2: Dapatkan informasi harga mata uang digital

Persiapan selesai, dan sekarang kita bisa mulai mendapatkan data yang akan dianalisis. Pertama, kita akan menggunakan antarmuka API dari platform FMZ Quant untuk mendapatkan data harga Bitcoin.

Ini akan menggunakan fungsi GetTicker. Untuk penggunaan kedua fungsi ini, silakan lihat:https://www.fmz.com/api.

2.1 Menulis fungsi pengumpulan data Quandl

Untuk memfasilitasi akuisisi data, kita perlu menulis fungsi untuk men-download dan menyinkronkan data dari Quandl (quandl.comIni adalah antarmuka data keuangan gratis, yang menikmati reputasi tinggi di luar negeri. Platform FMZ Quant juga menyediakan antarmuka data serupa, yang terutama digunakan untuk transaksi bot nyata. Karena artikel ini terutama berfokus pada analisis data, kami masih menggunakan data Quandl di sini.

Selama transaksi bot nyata, Anda dapat memanggil fungsi GetTicker dan GetRecords di Python secara langsung untuk mendapatkan data harga.https://www.fmz.com/api.

def get_quandl_data(quandl_id):
    # Download and cache data columns from 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

Di sini, perpustakaan acar digunakan untuk meringkas data dan menyimpan data yang diunduh sebagai file, sehingga program tidak akan mengunduh data yang sama setiap kali dijalankan. Fungsi ini akan mengembalikan data dalam format Pandas Dataframe.

2.2 Akses ke data harga mata uang digital dari pertukaran Kraken

Mari kita ambil Kraken Bitcoin Exchange sebagai contoh, mulai dari mendapatkan harga Bitcoin.

# Get prices on the Kraken Bitcoin exchange
btc_usd_price_kraken = get_quandl_data('BCHARTS/KRAKENUSD')

Gunakan metode head ((() untuk melihat lima baris pertama kotak data.

btc_usd_price_kraken.head()

Hasilnya adalah:

img

Selanjutnya, kita akan membuat tabel sederhana untuk memverifikasi kebenaran data dengan visualisasi.

# Make a table of BTC prices
btc_trace = go.Scatter(x=btc_usd_price_kraken.index, y=btc_usd_price_kraken['Weighted Price'])
py.iplot([btc_trace])

img

Di sini, kita menggunakan Plotly untuk menyelesaikan bagian visualisasi. Dibandingkan dengan menggunakan beberapa pustaka visualisasi data Python yang lebih matang, seperti Matplotlib, Plotly adalah pilihan yang kurang umum, tetapi itu benar-benar pilihan yang baik, karena dapat memanggil grafik D3.js yang sepenuhnya interaktif. Bagan ini memiliki pengaturan default yang indah, yang mudah dijelajahi dan sangat mudah dimasukkan ke dalam halaman web.

Tips: Bagan yang dihasilkan dapat dibandingkan dengan bagan harga Bitcoin dari bursa utama (seperti bagan di OKX, Binance atau Huobi) sebagai pemeriksaan integritas cepat untuk mengkonfirmasi apakah data yang diunduh umumnya konsisten.

2.3 Dapatkan data harga dari bursa Bitcoin utama

Pembaca yang berhati-hati mungkin telah memperhatikan bahwa ada data yang hilang dalam data di atas, terutama pada akhir 2014 dan awal 2016.

Karakteristik dari pertukaran mata uang digital adalah bahwa hubungan penawaran dan permintaan menentukan harga mata uang. Oleh karena itu, tidak ada harga transaksi yang bisa menjadi harga arus utama dari pasar. Untuk memecahkan masalah dan masalah kehilangan data yang baru saja disebutkan (mungkin karena pemadaman listrik teknis dan kesalahan data), kami akan mengunduh data dari tiga pertukaran Bitcoin arus utama di dunia, dan kemudian menghitung harga Bitcoin rata-rata.

Mari kita mulai dengan mengunduh data dari setiap pertukaran ke kerangka data yang terdiri dari jenis kamus.

# Download price data from COINBASE, BITSTAMP and 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 Mengintegrasikan semua data ke dalam satu kerangka data

Selanjutnya, kita akan mendefinisikan fungsi khusus untuk menggabungkan kolom yang umum untuk setiap bingkai data ke dalam bingkai data baru. mari kita sebut fungsi 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)

Sekarang, semua kerangka data terintegrasi berdasarkan kolom harga tertimbang dari setiap set data.

# Integrate all data frames
btc_usd_datasets = merge_dfs_on_column(list(exchange_data.values()), list(exchange_data.keys()), 'Weighted Price')

Akhirnya, kita menggunakan tail () metode untuk melihat lima baris terakhir data yang digabungkan untuk memastikan bahwa data yang benar dan lengkap.

btc_usd_datasets.tail()

Hasilnya ditunjukkan sebagai berikut:

img

Dari tabel di atas, kita dapat melihat bahwa data ini sesuai dengan harapan kami, dengan rentang data yang sama, tetapi sedikit berbeda berdasarkan keterlambatan atau karakteristik setiap pertukaran.

2.5 Proses visualisasi data harga

Dari perspektif logika analisis, langkah selanjutnya adalah membandingkan data ini melalui visualisasi. Untuk melakukan ini, kita perlu mendefinisikan fungsi bantu terlebih dahulu. Dengan memberikan perintah satu baris untuk menggunakan data untuk membuat grafik, kita menyebutnya fungsi 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'
        
    # Table tracking for each series
    trace_arr = []
    for index, series in enumerate(series_arr):
        trace = go.Scatter(
            x=series.index, 
            y=series, 
            name=label_arr[index],
            visible=visibility
        )
        
        # Add a separate axis to the series
        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)

Untuk pemahaman Anda yang mudah, artikel ini tidak akan membahas prinsip logika fungsi bantu ini terlalu banyak. Jika Anda ingin tahu lebih lanjut, silakan periksa dokumentasi resmi Pandas dan Plotly.

Sekarang, kita dapat membuat grafik data harga Bitcoin dengan mudah!

# Plot all BTC transaction prices
df_scatter(btc_usd_datasets, 'Bitcoin Price (USD) By Exchange')

img

2.6 Data harga yang jelas dan agregat

Seperti yang dapat dilihat dari grafik di atas, meskipun empat seri data mengikuti jalur yang sama, masih ada beberapa perubahan yang tidak teratur.

Pada periode 2012-2017, kita tahu bahwa harga Bitcoin tidak pernah sama dengan nol, jadi kita menghapus semua nilai nol dalam kerangka data terlebih dahulu.

# Clear the "0" value
btc_usd_datasets.replace(0, np.nan, inplace=True)

Setelah merekonstruksi kerangka data, kita bisa melihat grafik yang lebih jelas tanpa data yang hilang lagi.

# Plot the revised data frame
df_scatter(btc_usd_datasets, 'Bitcoin Price (USD) By Exchange')

img

Kita bisa menghitung kolom baru sekarang: harga Bitcoin rata-rata harian dari semua bursa.

# Calculate the average BTC price as a new column
btc_usd_datasets['avg_btc_price_usd'] = btc_usd_datasets.mean(axis=1)

Kolom baru adalah indeks harga Bitcoin! Mari kita gambar lagi untuk memeriksa apakah data terlihat salah.

# Plot the average BTC price
btc_trace = go.Scatter(x=btc_usd_datasets.index, y=btc_usd_datasets['avg_btc_price_usd'])
py.iplot([btc_trace])

img

Kemudian, kita akan terus menggunakan data seri harga agregat ini untuk menentukan nilai tukar antara mata uang digital lainnya dan USD.

Langkah 3: Mengumpulkan harga Altcoin

Sejauh ini, kita memiliki data deret waktu harga Bitcoin. Selanjutnya, mari kita lihat beberapa data mata uang digital non-Bitcoin, yaitu, Altcoins. Tentu saja, istilah Altcoins mungkin sedikit berlebihan, tetapi sejauh perkembangan mata uang digital saat ini, kecuali sepuluh besar dalam nilai pasar (seperti Bitcoin, Ethereum, EOS, USDT, dll.), sebagian besar dari mereka dapat disebut Altcoins. Kita harus mencoba menjauh dari mata uang ini saat berdagang, karena mereka terlalu membingungkan dan menipu.

3.1 Mendefinisikan fungsi tambahan melalui API dari bursa Poloniex

Pertama, kami menggunakan API dari Poloniex exchange untuk mendapatkan informasi data transaksi mata uang digital. Kami mendefinisikan dua fungsi tambahan untuk mendapatkan data yang berkaitan dengan Altcoins. Dua fungsi ini terutama men-download dan cache data JSON melalui API.

Pertama, kita mendefinisikan fungsi get_ json_data, yang akan mengunduh dan cache data JSON dari URL yang diberikan.

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

Selanjutnya, kita mendefinisikan fungsi baru yang akan menghasilkan permintaan HTTP dari API Poloniex dan memanggil fungsi get_ json_data yang baru didefinisikan untuk menyimpan hasil data panggilan.

base_polo_url = 'https://poloniex.com/public?command=returnChartData&currencyPair={}&start={}&end={}&period={}'
start_date = datetime.strptime('2015-01-01', '%Y-%m-%d') # Data acquisition since 2015
end_date = datetime.now() # Until today
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

Fungsi di atas akan mengekstrak kode karakter yang cocok dari mata uang digital (seperti BTC_ETH) dan mengembalikan kerangka data yang berisi harga historis dari dua mata uang.

3.2 Mengunduh data harga transaksi dari Poloniex

Sebagian besar Altcoin tidak dapat dibeli dalam USD secara langsung. Untuk mendapatkan mata uang digital ini, individu biasanya harus membeli Bitcoin terlebih dahulu, dan kemudian mengubahnya menjadi Altcoin sesuai rasio harga mereka. Oleh karena itu, kita harus mengunduh nilai tukar setiap mata uang digital ke Bitcoin, dan kemudian menggunakan data harga Bitcoin yang ada untuk mengubahnya menjadi USD. Kami akan mengunduh data nilai tukar untuk 9 mata uang digital teratas: Ethereum, Litecoin, Ripple, EthereumClassic, Stellar, Dash, Siacoin, Monero, dan 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

Sekarang, kita memiliki kamus yang berisi 9 kerangka data, yang masing-masing berisi data harga rata-rata harian antara Altcoin dan Bitcoin.

Kita dapat menentukan apakah data tersebut benar melalui beberapa baris terakhir dari tabel harga Ethereum.

altcoin_data['ETH'].tail()

img

3.3 Persamaan unit mata uang dari semua data harga ke USD

Sekarang, kita dapat menggabungkan data nilai tukar BTC dan Altcoin dengan indeks harga Bitcoin untuk menghitung harga historis masing-masing Altcoin (dalam USD) secara langsung.

# Calculate USD Price as a new column in each altcoin data frame
for altcoin in altcoin_data.keys():
    altcoin_data[altcoin]['price_usd'] =  altcoin_data[altcoin]['weightedAverage'] * btc_usd_datasets['avg_btc_price_usd']

Di sini, kita menambahkan kolom baru untuk setiap kerangka data Altcoin untuk menyimpan harga USD yang sesuai.

Selanjutnya, kita dapat menggunakan kembali fungsi merge_dfs_on_column yang sebelumnya didefinisikan untuk membuat kerangka data gabungan dan mengintegrasikan harga USD dari setiap mata uang digital.

# Combine the USD price of each Altcoin into a single data frame
combined_df = merge_dfs_on_column(list(altcoin_data.values()), list(altcoin_data.keys()), 'price_usd')

Sudah selesai!

Sekarang mari kita tambahkan harga Bitcoin sebagai kolom terakhir ke kerangka data yang digabungkan.

# Add BTC price to data frame
combined_df['BTC'] = btc_usd_datasets['avg_btc_price_usd']

Sekarang kami memiliki kerangka data yang unik, yang berisi harga USD harian dari sepuluh mata uang digital yang kami verifikasi.

Kami memanggil fungsi sebelumnya df_scatter lagi, menunjukkan harga yang sesuai dari semua Altcoin dalam bentuk grafik.

img

Tampaknya tidak ada masalah dalam grafik. Bagan ini menunjukkan gambaran lengkap tentang perubahan harga pertukaran untuk setiap mata uang digital dalam beberapa tahun terakhir.

Catatan: di sini kita menggunakan sumbu y spesifikasi logaritma untuk membandingkan semua mata uang digital pada grafik yang sama.

3.4 Memulai analisis korelasi

Pembaca yang berhati-hati mungkin telah memperhatikan bahwa harga mata uang digital tampaknya relevan, meskipun nilai mata uang mereka bervariasi secara luas dan sangat fluktuatif.

Tentu saja, kesimpulan yang didukung oleh data lebih meyakinkan daripada intuisi berdasarkan gambar.

Kita dapat menggunakan fungsi Pandas corr() untuk memverifikasi hipotesis korelasi di atas. Metode uji ini menghitung koefisien korelasi Pearson dari setiap kolom dari bingkai data yang sesuai dengan kolom lainnya.

Catatan revisi pada 2017.8.22: Bagian ini dimodifikasi untuk menggunakan tingkat pengembalian harian alih-alih nilai absolut harga saat menghitung koefisien korelasi.

Perhitungan langsung berdasarkan deret waktu yang tidak solid (seperti data harga mentah) dapat menyebabkan penyimpangan koefisien korelasi. Untuk memecahkan masalah ini, solusi kami adalah menggunakan metode pct_change() untuk mengkonversi nilai absolut setiap harga dalam kerangka data menjadi tingkat pengembalian harian yang sesuai.

Sebagai contoh, mari kita hitung koefisien korelasi pada tahun 2016.

# Calculating the Pearson correlation coefficient for digital currencies in 2016
combined_df_2016 = combined_df[combined_df.index.year == 2016]
combined_df_2016.pct_change().corr(method='pearson')

img

Diagram di atas menunjukkan koefisien korelasi. Ketika koefisien dekat dengan 1 atau -1, itu berarti bahwa seri ini berkorelasi positif atau negatif, masing-masing. Ketika koefisien korelasi dekat dengan 0, itu berarti bahwa objek yang sesuai tidak berkorelasi dan fluktuasi mereka independen satu sama lain.

Untuk lebih memvisualisasikan hasilnya, kami membuat fungsi bantuan visual baru.

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

Di sini, nilai merah gelap mewakili korelasi yang kuat (setiap mata uang jelas sangat berkorelasi dengan dirinya sendiri), dan nilai biru gelap mewakili korelasi terbalik.

Pada dasarnya, ini menunjukkan fluktuasi harga mata uang digital yang berbeda pada tahun 2016, dengan sedikit korelasi yang signifikan secara statistik.

Sekarang, untuk memverifikasi hipotesis kami bahwa korélasi mata uang digital telah meningkat dalam beberapa bulan terakhir, kami akan menggunakan data dari 2017 untuk mengulangi tes yang sama.

combined_df_2017 = combined_df[combined_df.index.year == 2017]
combined_df_2017.pct_change().corr(method='pearson')

img

Apakah data di atas lebih relevan? Apakah mereka cukup untuk digunakan sebagai standar penilaian untuk investasi?

Namun, perlu dicatat bahwa hampir semua mata uang digital telah menjadi semakin saling terkait.

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

img

Seperti yang dapat kita lihat dari grafik di atas, hal-hal menjadi semakin menarik.

Mengapa ini terjadi?

Pertanyaan yang bagus, tapi kenyataannya, aku tidak yakin...

Reaksi pertama saya adalah bahwa hedge fund baru-baru ini mulai berdagang secara terbuka di pasar mata uang digital. Dana-dana ini memiliki modal yang jauh lebih banyak daripada pedagang biasa. Ketika dana melindungi modal yang diinvestasikan di antara beberapa mata uang digital, ia menggunakan strategi perdagangan yang sama untuk setiap mata uang sesuai dengan variabel independen (seperti pasar saham). Dari perspektif ini, masuk akal bahwa tren peningkatan korelasi ini akan terjadi.

Pemahaman yang lebih dalam tentang XRP dan STR

Sebagai contoh, jelas dari grafik di atas bahwa XRP (token Ripple) memiliki korelasi paling sedikit dengan mata uang digital lainnya. Namun, satu pengecualian penting adalah STR (token Stellar, secara resmi dikenal sebagai Lumens), yang memiliki korelasi yang kuat dengan XRP (koefisien korelasi: 0,62).

Menariknya, Stellar dan Ripple adalah platform teknologi keuangan yang sangat mirip, yang keduanya bertujuan untuk mengurangi langkah-langkah yang membosankan dari transfer lintas batas antara bank.

Sekarang giliranmu!

Penjelasan di atas sebagian besar spekulatif, dan Anda mungkin melakukan lebih baik. Berdasarkan dasar yang telah kami letakkan, Anda memiliki ratusan cara yang berbeda untuk terus mengeksplorasi cerita yang terkandung dalam data.

Berikut adalah beberapa saran saya. Pembaca dapat merujuk pada penelitian di arah berikut:

  • Tambahkan lebih banyak data mata uang digital ke seluruh analisis.
  • Sesuaikan rentang waktu dan granularitas analisis korelasi untuk mendapatkan pandangan tren yang dioptimalkan atau berbutir kasar.
  • Jika dibandingkan dengan data harga asli, jika Anda ingin memprediksi fluktuasi harga di masa depan, Anda mungkin membutuhkan data rasio kuantitas beli / jual lebih banyak.
  • Tambahkan data harga untuk saham, komoditas dan mata uang fiat untuk menentukan mana yang relevan dengan mata uang digital (tetapi jangan lupa pepatah lama korélasi tidak menyiratkan kausal).
  • Gunakan Event Registry, GDELT, dan Google Trends untuk mengukur jumlah hot words yang mengelilingi mata uang digital tertentu.
  • Gunakan data untuk melatih model pembelajaran mesin prediktif untuk memprediksi harga besok. Jika Anda lebih ambisius, Anda bahkan dapat mempertimbangkan menggunakan jaringan saraf berulang (RNN) untuk pelatihan di atas.
  • Gunakan analisis Anda untuk membuat robot perdagangan otomatis, yang dapat diterapkan ke situs web pertukaran Poloniex atau Coinbase melalui antarmuka pemrograman aplikasi (API) yang sesuai. Harap berhati-hati: robot dengan kinerja yang buruk dapat dengan mudah menghancurkan aset Anda secara instan.FMZ.COM) dianjurkan di sini.

Bagian terbaik tentang Bitcoin dan mata uang digital pada umumnya adalah sifatnya yang terdesentralisasi, yang membuatnya lebih bebas dan demokratis daripada aset lainnya. Anda dapat membagikan analisis Anda open-source, berpartisipasi dalam komunitas, atau menulis blog! Saya harap Anda telah menguasai keterampilan yang diperlukan untuk analisis diri dan kemampuan untuk berpikir dialektik ketika membaca artikel mata uang digital spekulatif di masa depan, terutama prediksi tanpa dukungan data. Terima kasih telah membaca. Jika Anda memiliki komentar, saran atau kritik tentang tutorial ini, silakan tinggalkan pesan dihttps://www.fmz.com/bbs.


Berkaitan

Lebih banyak