
Dalam artikel sebelumnya, kami membahas fenomena umum di pasar mata uang kripto: sebagian besar mata uang kripto, terutama yang mengikuti fluktuasi harga Bitcoin dan Ethereum, sering kali menunjukkan tren naik dan turun secara bersamaan. Fenomena ini menunjukkan korelasinya yang tinggi dengan mata uang utama. Akan tetapi, tingkat korelasi antara berbagai mata uang kripto berbeda-beda. Jadi, bagaimana perbedaan korelasi ini memengaruhi kinerja pasar setiap mata uang? Dalam artikel ini, kami akan mengupas isu ini dengan menggunakan pasar saham yang sedang naik daun pada paruh kedua tahun 2023 sebagai contoh.
Pasar mata uang kripto dikenal karena volatilitas dan ketidakpastiannya. Bitcoin dan Ethereum, sebagai dua raksasa di pasar, sering memainkan peran utama dalam tren harga. Untuk mempertahankan daya saing pasar dan aktivitas perdagangan, sebagian besar mata uang digital kecil atau yang sedang berkembang cenderung mempertahankan tingkat sinkronisasi harga tertentu dengan mata uang utama tersebut, terutama mata uang yang dibuat oleh pihak-pihak yang berkecimpung dalam proyek. Sinkronisasi ini mencerminkan ekspektasi psikologis dan strategi perdagangan para pelaku pasar, yang merupakan pertimbangan penting dalam desain strategi perdagangan kuantitatif.
Di bidang perdagangan kuantitatif, pengukuran korelasi dicapai melalui metode statistik. Ukuran yang paling umum digunakan adalah koefisien korelasi Pearson, yang mengukur tingkat hubungan linear antara dua variabel. Berikut adalah beberapa konsep inti dan metode perhitungan:
Koefisien korelasi Pearson (dilambangkan \(r\)) berkisar dari -1 hingga +1, di mana +1 mengindikasikan korelasi positif sempurna, -1 mengindikasikan korelasi negatif sempurna, dan 0 mengindikasikan tidak ada korelasi linear. Koefisien dihitung sebagai berikut:
\(r = \frac{\sum_{i=1}^{n} (X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum_{i=1}^{n} (X_i - \bar{X})^2} \sqrt{\sum_{i=1}^{n} (Y_i - \bar{Y})^2}}\)
Di sini, \(X_i\) dan \(Y_i\) adalah nilai teramati dari dua variabel acak, dan \(\bar{X}\) dan \(\bar{Y}\) masing-masing adalah rata-rata dari dua variabel acak tersebut. Dengan menggunakan paket terkait komputasi ilmiah Python, sangat mudah untuk menghitung korelasi.
Artikel ini mengumpulkan data K-line 4 jam Binance untuk sepanjang tahun 2023, dan memilih 144 mata uang yang terdaftar pada tanggal 1 Januari. Kode data unduhan spesifiknya adalah sebagai berikut:
import requests
from datetime import date,datetime
import time
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ticker = requests.get('https://fapi.binance.com/fapi/v1/ticker/24hr')
ticker = ticker.json()
sort_symbols = [k['symbol'][:-4] for k in sorted(ticker, key=lambda x :-float(x['quoteVolume'])) if k['symbol'][-4:] == 'USDT']
def GetKlines(symbol='BTCUSDT',start='2020-8-10',end='2023-8-10',period='1h',base='fapi',v = 'v1'):
Klines = []
start_time = int(time.mktime(datetime.strptime(start, "%Y-%m-%d").timetuple()))*1000 + 8*60*60*1000
end_time = min(int(time.mktime(datetime.strptime(end, "%Y-%m-%d").timetuple()))*1000 + 8*60*60*1000,time.time()*1000)
intervel_map = {'m':60*1000,'h':60*60*1000,'d':24*60*60*1000}
while start_time < end_time:
time.sleep(0.5)
mid_time = start_time+1000*int(period[:-1])*intervel_map[period[-1]]
url = 'https://'+base+'.binance.com/'+base+'/'+v+'/klines?symbol=%s&interval=%s&startTime=%s&endTime=%s&limit=1000'%(symbol,period,start_time,mid_time)
res = requests.get(url)
res_list = res.json()
if type(res_list) == list and len(res_list) > 0:
start_time = res_list[-1][0]+int(period[:-1])*intervel_map[period[-1]]
Klines += res_list
if type(res_list) == list and len(res_list) == 0:
start_time = start_time+1000*int(period[:-1])*intervel_map[period[-1]]
if mid_time >= end_time:
break
df = pd.DataFrame(Klines,columns=['time','open','high','low','close','amount','end_time','volume','count','buy_amount','buy_volume','null']).astype('float')
df.index = pd.to_datetime(df.time,unit='ms')
return df
start_date = '2023-01-01'
end_date = '2023-11-16'
period = '4h'
df_dict = {}
for symbol in sort_symbols:
print(symbol)
df_s = GetKlines(symbol=symbol+'USDT',start=start_date,end=end_date,period=period)
if not df_s.empty:
df_dict[symbol] = df_s
df_close = pd.DataFrame(index=pd.date_range(start=start_date, end=end_date, freq=period),columns=df_dict.keys())
for symbol in symbols:
df_s = df_dict[symbol]
df_close[symbol] = df_s.close
df_close = df_close.dropna(how='any',axis=1)
Pertama, setelah data dinormalisasi, kita hitung rata-rata indeks kenaikan dan penurunan harga. Kita dapat melihat bahwa ada dua gelombang kondisi pasar pada tahun 2023, yang satu adalah kenaikan besar di awal tahun, dan yang lainnya adalah peningkatan besar dimulai pada bulan Oktober. Titik tertinggi indeks.
df_norm = df_close/df_close.fillna(method='bfill').iloc[0] #归一化
total_index = df_norm.mean(axis=1)
total_index.plot(figsize=(15,6),grid=True);

Pandas dilengkapi dengan kalkulasi korelasi bawaan. Korelasi dengan harga BTC seperti yang ditunjukkan pada gambar di bawah ini. Sebagian besar mata uang memiliki korelasi positif, yang berarti mengikuti harga BTC, sementara beberapa mata uang memiliki korelasi negatif. Ini adalah dianggap sebagai anomali di pasar mata uang digital.

corr_symbols = df_norm.corrwith(df_norm.BTC).sort_values().index
Di sini kita membagi mata uang secara longgar menjadi dua kelompok. Kelompok pertama terdiri dari 40 mata uang yang paling berkorelasi dengan harga BTC, dan kelompok kedua terdiri dari mata uang yang paling tidak berkorelasi dengan harga BTC. Indeks dari kedua kelompok tersebut mewakili rata-rata jangka panjang posisi di kelompok pertama dan posisi short di kelompok kedua. Hubungan antara fluktuasi harga dan korelasi dengan BTC dapat dihitung. Kode dan hasilnya adalah sebagai berikut:
(df_norm[corr_symbols[-40:]].mean(axis=1)-df_norm[corr_symbols[:40]].mean(axis=1)).plot(figsize=(15,6),grid=True);

Hasilnya menunjukkan bahwa mata uang dengan korelasi kuat dengan harga BTC memiliki pertumbuhan lebih baik, dan melakukan shorting mata uang dengan korelasi rendah juga memainkan peran lindung nilai yang baik. Bagian yang kurang tepat di sini adalah bahwa data masa depan digunakan untuk menghitung korelasi. Selanjutnya, data dibagi menjadi dua kelompok, satu untuk menghitung korelasi dan yang lainnya untuk menghitung pengembalian setelah lindung nilai. Hasilnya ditunjukkan pada gambar di bawah ini, dan kesimpulannya masih sama.
Sebagai pemimpin pasar, pergerakan harga Bitcoin dan Ethereum sering kali berdampak besar pada keseluruhan pasar. Ketika harga bitcoin ini naik, sentimen pasar biasanya menjadi optimis dan banyak investor cenderung mengikuti tren pasar. Investor mungkin melihat ini sebagai sinyal bahwa seluruh pasar sedang naik dan mulai membeli mata uang lainnya. Koin yang sangat berkorelasi dengan mata uang utama mungkin mengalami kenaikan harga serupa karena perilaku kolektif para pelaku pasar. Pada saat ini, ekspektasi pasar terhadap tren harga terkadang dapat menjadi ramalan yang terpenuhi dengan sendirinya. Mata uang yang memiliki korelasi negatif dengan Bitcoin adalah unik. Ada kemungkinan fundamentalnya telah memburuk atau tidak lagi menarik perhatian investor arus utama. Bahkan mungkin ada pasar yang menghisap darah untuk Bitcoin - pasar telah meninggalkannya. Mereka kejar koin yang dapat mengimbangi keuntungan.
corr_symbols = (df_norm.iloc[:1500].corrwith(df_norm.BTC.iloc[:1500])-df_norm.iloc[:1500].corrwith(total_index[:1500])).sort_values().index

Artikel ini menggunakan koefisien korelasi Pearson untuk mengungkap tingkat korelasi antar mata uang. Artikel ini menunjukkan cara memperoleh data untuk menghitung korelasi antara mata uang dan menggunakan data ini untuk mengevaluasi tren pasar. Hal ini mengungkapkan bahwa sinkronisasi fluktuasi harga di pasar mata uang digital tidak hanya mencerminkan psikologi dan strategi pasar, tetapi juga dapat diukur dan diprediksi melalui metode ilmiah. Hal ini terutama penting untuk desain strategi perdagangan kuantitatif.
Ada banyak area di mana gagasan dalam artikel ini dapat diperluas, seperti menghitung korelasi bergulir, menghitung korelasi selama kenaikan dan penurunan secara terpisah, dan seterusnya, untuk menganalisis informasi yang lebih efektif.