Trong bài viết trước đây, chúng tôi đã thảo luận về một hiện tượng phổ biến trong thị trường tiền kỹ thuật số: hầu hết các loại tiền kỹ thuật số, đặc biệt là những loại tiền theo sau sự biến động giá của Bitcoin và Ethereum, thường biểu hiện xu hướng đồng xu. Hiện tượng này cho thấy họ có mối liên hệ cao với các loại tiền chính thống. Tuy nhiên, mức độ liên quan giữa các loại tiền kỹ thuật số khác nhau cũng khác nhau. Vậy sự khác biệt về mối liên hệ này ảnh hưởng đến hoạt động thị trường của các loại tiền kỹ thuật số như thế nào?
Thị trường tiền kỹ thuật số được biết đến với sự biến động và không chắc chắn của nó. Bitcoin và Ethereum, là hai gã khổng lồ trên thị trường, thường đóng vai trò dẫn đầu trong xu hướng giá. Hầu hết các loại tiền kỹ thuật số nhỏ hoặc mới nổi, để duy trì tính cạnh tranh của thị trường và hoạt động giao dịch, thường giữ mức độ đồng bộ giá với các loại tiền chính thống này, đặc biệt là các loại tiền trên thị trường.
Trong lĩnh vực giao dịch định lượng, việc đo sự liên quan được thực hiện bằng các phương pháp thống kê. Phương pháp đo thường được sử dụng nhất là hệ số liên quan Pearson, đo mức độ liên quan tuyến tính giữa hai biến. Sau đây là một số khái niệm và phương pháp tính toán cốt lõi:
Các hệ số liên quan Pearson (được ghi là $r$) nằm trong khoảng từ -1 đến +1, trong đó +1 là hoàn toàn có liên quan, -1 là hoàn toàn không liên quan, và 0 là không có liên quan tuyến tính. Công thức tính toán cho hệ số là:
$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}}$
Trong đó, $X_i$ và $Y_i$ là các giá trị quan sát của hai biến số ngẫu nhiên, $\bar{X}$ và $\bar{Y}$ là giá trị trung bình của hai biến số ngẫu nhiên. Sử dụng các gói tương quan tính toán khoa học Python, bạn có thể dễ dàng tính toán sự tương quan.
Bài viết này thu thập dữ liệu đường dây 4hK cho cả năm 2023, chọn 144 loại tiền lên sàn vào ngày 1 tháng 1; mã tải về dữ liệu cụ thể là:
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)
Trước tiên, sau khi tổng hợp dữ liệu, tính toán chỉ số giảm giá trung bình, bạn có thể thấy rằng trong năm 2023, có hai làn sóng thị trường, trong đó có một làn sóng tăng đầu năm và một làn sóng tăng bắt đầu vào tháng 10, hiện đang ở mức cao của chỉ số.
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 tự tính toán sự tương quan, tương quan với giá BTC và yếu nhất, hầu hết các loại tiền tệ đều dương tính, có nghĩa là chúng theo giá BTC, và một số loại tiền tệ khác là âm tính, đây là một tính toán bất thường trong thị trường tiền kỹ thuật số.
corr_symbols = df_norm.corrwith(df_norm.BTC).sort_values().index
Ở đây không nghiêm ngặt chia các đồng tiền thành hai nhóm, nhóm đầu tiên là 40 đồng tiền có liên quan nhất đến giá BTC, nhóm thứ hai là các đồng tiền không liên quan nhất đến giá BTC, bằng chỉ số giá của nhóm đầu tiên trừ chỉ số của nhóm thứ hai, đại diện cho việc trung bình làm nhiều hơn nhóm đầu tiên làm trống nhóm thứ hai, bạn có thể tính toán mối quan hệ giữa giá giảm và liên quan đến BTC.
(df_norm[corr_symbols[-40:]].mean(axis=1)-df_norm[corr_symbols[:40]].mean(axis=1)).plot(figsize=(15,6),grid=True);
Kết quả cho thấy các đồng tiền có liên quan mạnh hơn đến giá BTC tăng tốt hơn và các đồng tiền có liên quan thấp hơn cũng có tác dụng bảo hiểm tốt. Điều không nghiêm ngặt ở đây là sử dụng dữ liệu tương lai khi tính toán sự liên quan, sau đó phân chia dữ liệu thành hai nhóm, một nhóm tính toán sự liên quan và một nhóm khác để tính toán lợi nhuận sau khi bảo hiểm, kết quả vẫn giống nhau, như hình dưới.
Bitcoin và Ethereum là các nhà lãnh đạo của thị trường, và xu hướng giá của chúng thường có tác động lớn đến toàn thị trường. Khi giá của các loại Bitcoin này tăng, tinh thần thị trường thường trở nên lạc quan, và nhiều nhà đầu tư có xu hướng theo xu hướng thị trường. Các nhà đầu tư có thể xem đây là tín hiệu của toàn thị trường tăng và bắt đầu mua các loại tiền khác. Do hành động tập thể của các thành viên thị trường, các loại tiền có liên quan cao đến các loại tiền chính thống có thể trải qua sự gia tăng giá tương tự.
corr_symbols = (df_norm.iloc[:1500].corrwith(df_norm.BTC.iloc[:1500])-df_norm.iloc[:1500].corrwith(total_index[:1500])).sort_values().index
Bài viết này tiết lộ mức độ tương quan giữa các loại tiền tệ. Bài viết này cho thấy cách lấy dữ liệu tính toán sự tương quan giữa các loại tiền tệ và sử dụng dữ liệu đó để đánh giá xu hướng thị trường. Bài viết này tiết lộ sự đồng bộ hóa của biến động giá trong thị trường tiền kỹ thuật số không chỉ là phản ánh tâm lý và chiến lược thị trường mà còn có thể được định lượng và dự đoán bằng các phương pháp khoa học.
Những ý tưởng trong bài viết có thể được mở rộng nhiều hơn, như tính toán sự liên quan của cuộn, tính toán sự liên quan của tăng và giảm, v.v. để phân tích thông tin hữu ích hơn.
mztcoinVâng, phân tích liên quan có thể được kết hợp với chiến lược trước đây của việc làm không quá cao và làm nhiều quá thấp.