Được viết bởi: ck.eth
Biên soạn: Lylia
Phân phối hyperbol [1], ban đầu được phát triển để mô phỏng biến động bão cát [2] (động lực cát ở sa mạc), có ứng dụng trong mô hình hóa lợi nhuận tài sản tài chính do tính linh hoạt của tham số [3].
Bên trái: Nhìn vào phân bố thống kê trên biểu đồ logarit sẽ giúp bạn hiểu rõ hơn về hình dạng của nó. Phân bố Hyperbora có hình dạng tương tự như hyperbol, trong khi phân bố Gaussian nét đứt có thể được xem như một parabol do sự hiện diện của số hạng e^-x²/2. Đúng: Bạn có thể hiểu rõ hơn các đặc điểm của phân phối bằng cách nhìn vào phần đuôi của nó trên biểu đồ log-log. Phân phối luật lũy thừa không thể hiện xu hướng phân rã trong biểu đồ log-log. Các phân phối khác nhau có thể được kết hợp bằng cách kết hợp các phân phối và sử dụng các tham số trọng số.
Hành vi giá của tài sản kỹ thuật số
Nó rất hữu ích cho các nhà cung cấp thanh khoản (LP) để hiểu được động lực giá của tài sản của họ. Nếu chúng ta xem xét dữ liệu lịch sử của Bitcoin (BTC), tài sản kỹ thuật số lâu đời nhất, dưới dạng biểu đồ logarit kể từ năm 2015, sử dụng lợi nhuận hàng ngày là 3091, chúng ta thấy rằng ngoài một số ngoại lệ, thì phân phối hyperbol tổng quát phù hợp về mặt lịch sử. hàng ngày trở lại tốt.
Những điểm bất thường trong sự phù hợp của chúng tôi tình cờ là các ngoại lệ ở ngoài cùng bên phải và bên trái, có thể được quan sát thấy trong biểu đồ log-log. Trong hình này, chúng ta có thể thấy rằng các đuôi của lợi nhuận âm được thể hiện bằng màu đỏ, trong khi các đuôi lợi nhuận dương được thể hiện bằng màu xanh lam.
Mặc dù những chiếc đuôi trông giống nhau nhưng có một số điểm không khớp ở các điểm ngoại lệ ở bên phải. Để làm mịn biểu đồ, tôi đã sử dụng phương pháp Ước tính mật độ hạt nhân (KDE).
Kể từ ngày 1 tháng 1 năm 2015, đuôi trái và đuôi phải của lợi nhuận hàng ngày của Bitcoin (BTC) cho thấy sự bất cân xứng, đặc biệt là đuôi phải.
Điều này có nghĩa là việc kết hợp một hyperbola tổng quát với định luật lũy thừa bất đối xứng có thể mô tả động lực của giá Bitcoin. Điều quan trọng cần lưu ý là tôi đã chọn Bitcoin làm ví dụ vì đây là chuỗi thời gian lâu đời nhất và cũng ít biến động nhất trong tất cả các tài sản kỹ thuật số, có nghĩa là các nhà cung cấp thanh khoản (LP) của các tài sản kỹ thuật số khác sẽ có hành vi biến động nhiều hơn.
Mô hình động giá
Có hàng chục phân bố thống kê có thể được trộn lẫn để mô phỏng hành vi sóng này. Ví dụ, trong tài chính truyền thống, một cách tiếp cận phổ biến là sử dụng chuyển động Brown hình học (phân phối logic chuẩn) và kết hợp nó với quy trình Löwy (phân phối Poisson) để tính đến sự tăng giá.
Các đường dẫn mô phỏng được Erik Bardoux và Antonis Papapantoleon hình dung trong bài giảng của họ về các quy trình Leveré.
Tôi đã tạo một thư viện gồm hơn 50 bản phân phối thống kê trên Desmos để giúp người dùng khám phá các bản phân phối này và cách sao chép vị trí LP của các bản phân phối này trên Uniswap thông qua tích phân Riemann.
Link Desmos cho thư viện phân phối thống kê: https://www.desmos.com/calcator/4ey6hbevzf
Link Desmos cho thư viện phân phối thống kê: https://www.desmos.com/calcator/4ey6hbevzf
Một tính năng thú vị của Desmos là khả năng chuyển sang biểu đồ log-log, cho phép bạn xem các đặc điểm đuôi của từng phân bố thống kê thay đổi như thế nào.
Nếu bạn muốn so sánh phân phối nào là tốt nhất cho dữ liệu của mình, bạn có thể sử dụng thử nghiệm Kolmogorov-Smirnov để so sánh hàm phân phối tích lũy với dữ liệu biểu đồ tích lũy theo kinh nghiệm của bạn. Tuy nhiên, chúng ta cũng có thể sử dụng một cách tiếp cận đơn giản dưới đây, trong đó chúng ta chỉ giả định phân phối xấu nhất có thể.
Nếu bạn không biết gì về tương lai thì sao? Chà, chúng ta có thể nghĩ về sự phân bố tồi tệ nhất có thể có trong không gian giá trông như thế nào, đó là định luật lũy thừa với các đuôi kéo dài vô tận. Một trong những phân bố như vậy là phân bố Cauchy (trong không gian giá, phân bố tương đương là phân bố log-Cauchy).
Phân bố Cauchy không tuân theo quy luật số lớn, nó có ý chí riêng. Bạn có thể tham khảo link này: https://en.wikipedia.org/wiki/Cauchy_distribution#/media/File:Mean_estimator_consistency.gif để tìm hiểu về đặc điểm của phân bố Cauchy.
Một đặc tính của phân bố Cauchy là nó không tuân theo quy luật số lớn. Bạn có thể tính toán mức trung bình trong 30 ngày qua và nghĩ rằng bạn nhìn thấy một khuôn mẫu, nhưng thực tế nó có thể đang đánh lừa bạn. Một ví dụ thú vị là mức trung bình của cặp giao dịch DOGE/ETH, có thể biểu hiện hành vi này do thiếu thanh khoản.
Mặc dù Dogecoin và Ethereum đã tồn tại được hơn 7 năm nhưng quá trình nhảy vọt của cặp giao dịch này có những đặc điểm riêng khiến việc áp dụng các phương pháp xấp xỉ thống kê trở nên khó khăn.
Mặc dù Dogecoin và Ethereum đã tồn tại được hơn 7 năm nhưng quá trình nhảy vọt của cặp giao dịch này có những đặc điểm riêng khiến việc áp dụng các phương pháp xấp xỉ thống kê trở nên khó khăn.
Có những ngoại lệ ngày càng tăng trong biểu đồ loglog ở bên phải. Tôi đã học được rằng phân phối với các giá trị ngoại lệ ngày càng tăng trong biểu đồ loglog là phân phối log-Cauchy.
Chúng ta có thể thấy phân bố Cauchy trông như thế nào so với phân bố logic chuẩn trong không gian giá.
Bên trái: Biểu đồ loglog của phân bố logarit chuẩn là parabol, với phần đuôi tuyến tính của định luật lũy thừa Cauchy được biểu thị bằng màu đỏ và đường đứt nét màu đen biểu thị phân bố log-Cauchy. Bên phải: biểu thị cùng một phân bố trong không gian giá, dao động từ [ 0, khổng lồ).
Phân phối log-Cauchy không tệ bằng toàn bộ vị trí Uniswap v2, nhưng đây là trường hợp xấu thứ hai. Dựa trên những gì chúng ta đã học về tối ưu hóa hiệu quả vốn ở Phần 1 và 2 , việc đặt giới hạn dưới khoảng 80-90% có thể giúp cải thiện điều đó vì khi giá tiến đến giới hạn dưới, phân phối bắt đầu tăng, do đó không cần phải giữ cung cấp thanh khoản cho đến khi bằng không.
Bắt đầu từ mức giá hiện tại 1, việc đặt giới hạn thấp hơn 80-90% có thể được sử dụng làm điểm khởi đầu để giới hạn phạm vi, nhưng tôi không khuyên bạn nên đầu tư/mua/bán bất kỳ tài sản nào dựa trên động thái như vậy. Đây không phải là lời khuyên tài chính. Cách tốt nhất là chờ đợi và tìm hiểu thêm về một nội dung.
Về phân bố luật lũy thừa trong các hệ thống phức tạp
Nhưng liệu một phân bố lũy thừa như phân bố Cauchy có đuôi ngắn hơn theo thời gian không? Trong một hệ thống đang phát triển và phức tạp như tiền điện tử, rất khó để loại bỏ hoàn toàn hiện tượng luật lũy thừa (xem phụ lục), nhưng có thể giảm mức độ không chắc chắn.
Nếu bạn nghĩ về điều đó, tất cả tài sản đều trải qua những khoảnh khắc không chắc chắn trong giai đoạn đầu. Trên thực tế, với sự phát triển của các nhà tạo lập thị trường tự động (AMM), chúng tôi đã phát hiện ra những mối liên hệ thú vị không thể đoán trước được trên thị trường tài chính truyền thống. Người ta sử dụng luật căn bậc hai để ước tính một cách thống kê hiệu ứng giá cả. Với AMM, chúng tôi có thể dự đoán chính xác mức độ ảnh hưởng của giá chỉ đơn giản là một chức năng của thanh khoản tập trung và không cần phải xem xét khối lượng hoặc sự biến động để xác định tác động của giá tại một thời điểm nhất định. Đưa lập luận lên mức cực đoan, giả sử Jerome Powell tải xuống MetaMask và quyết định tài trợ thanh khoản bằng DOGE/ETH và cung cấp thanh khoản hàng nghìn tỷ đô la. Mỗi người cố gắng bán DOGE đều có tác động tiêu cực gần như không đáng kể đến giá và như bạn có thể thấy từ phân phối lợi nhuận, độ biến động giảm dần theo thời gian, dần dần trở nên ít giống phân phối Cauchy hơn.
Do đó, việc có một nhà cung cấp thanh khoản có đủ tiền và đủ dũng cảm để cung cấp cho AMM thanh khoản dư thừa trong một thời gian dài có thể làm giảm tính biến động của tài sản. Mặc dù tôi nghi ngờ sẽ có ít người có thể sở hữu một chiếc máy in tiền kỹ thuật số trong tay để tăng thêm lòng can đảm.
Trong trường hợp không có máy in tiền kỹ thuật số, một cách để ngành công nghiệp tiền điện tử khắc phục vấn đề này là giới thiệu các tài sản trên blockchain có thể cung cấp cho các nhà cung cấp thanh khoản những đảm bảo mua hàng liên tục. Những tài sản này có thể bao gồm: cổ phiếu trả cổ tức lớn (được mua bởi các quỹ hưu trí dành cho người về hưu), trái phiếu (được các ngân hàng và doanh nghiệp mua để tài trợ ngắn hạn), ngoại hối (rất khó đạt được một loại tiền tệ fiat tập trung toàn cầu duy nhất, vì vậy người Trung Quốc khó có thể đạt được một loại tiền tệ pháp định tập trung duy nhất). nhân dân tệ, đô la Mỹ, các cặp tiền tệ như đồng euro sẽ vẫn được sử dụng) và hàng hóa (thực phẩm và sưởi ấm sẽ luôn có nhu cầu). Là nhà cung cấp thanh khoản, bạn yên tâm hơn khi cung cấp thanh khoản cho một cặp giao dịch như McDonald's/Corn vì bạn biết sẽ luôn có một số nhu cầu, do đó không làm mất đi tính thanh khoản. Ngay cả khi có những khoản lỗ chênh lệch, với tư cách là nhà cung cấp thanh khoản, bạn có thể yên tâm vì bạn sẽ là chủ sở hữu của một loạt máy làm Bữa ăn vui vẻ hoặc một chùm ngô.
ruột thừa
Về luật quyền lực và lý do tại sao hiện tượng này sẽ tiếp tục tồn tại trong tiền điện tử và tài chính truyền thống:
Một ví dụ điển hình gần đây là (ngày 8 tháng 1 năm 2023) hệ thống DeFi đang cùng phát triển, trong đó Curve bị tấn công thông qua Vyper, từ đó ảnh hưởng đến các giao thức khác như Aave, từ đó ảnh hưởng đến quyết định rút tiền của những người dùng khác. Sự tồn tại của lỗ hổng zero-day khiến hệ thống liên tục phát triển và trở nên mất cân bằng, tạo ra các sự kiện đuôi.
Đây là mã để lấy dữ liệu lịch sử từ Internet:
nhập toán
nhập numpy dưới dạng np
nhập yfinance dưới dạng yf #đảm bảo 'pip cài đặt yfinance'
nhập gấu trúc dưới dạng pd
nhập matplotlib.pyplot dưới dạng plt
nhập matplotlib.animation dưới dạng hoạt ảnh
#Tải xuống BTC/EUR làm mặc định
nhập matplotlib.animation dưới dạng hoạt ảnh
#Tải xuống BTC/EUR làm mặc định
ticker1="BTC-USD" #^GSPC, ^IXIC, CL=F,^OVX, GC=F, BTC-USD, JPY=X, EURUSD=X, ^TNX, TLT, SHY, ^VIX, LLY, XOM
ticker2="EURUSD=X"
t_0="2017-07-07"
t_f="2023-07-07"
data1=yf.download(ticker1, start=t_0, end=t_f)
data2=yf.download(ticker2, start=t_0, end=t_f)
dữ liệu3=dữ liệu1
dat=data1['Đóng']
dat = pd.to_numeric(dat,error='coerce')
dat=dat.dropna()
dat_ret=dat.pct_change(1)
x = np.array(dat.values)
dat_recurrence=dat/max(dat)
xr = np.array(dat_recurrence.values)
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(6.5,3))
# Vẽ sơ đồ logistic ở ô con đầu tiên
ax1.plot(range(len(x)), x, '#056398', linewidth=.5)
ax1.set_xlabel('Thời gian')
ax1.set_ylabel(str(ticker1)+'/'+str(ticker2)+' Tỷ lệ giá')
ax1.set_title(str(ticker1)+'/'+str(ticker2)+' Biến động kể từ '+ str(t_0))
ax1.set_yscale('log')
n_end=len(x)
# Tạo biểu đồ lặp lại của bản đồ logistic trong ô con thứ hai
R = np.zeros((n_end, n_end))
cho tôi trong phạm vi (n_end):
cho j trong phạm vi (i, n_end):
nếu abs(xr[i] - xr[j]) < 0,01:
R[i, j] = 1
R[j, i] = 1
ax2.imshow(R, cmap='viridis', Origin='low', vmin=0, vmax=1)
ax2.set_xlabel('Bước thời gian')
ax2.set_ylabel('Bước thời gian')
ax2.set_xlabel('Bước thời gian')
ax2.set_ylabel('Bước thời gian')
ax2.set_title('Biểu đồ lặp lại của ' +str(ticker1)+'/'+str(ticker2))
loạt = pd.Series(dat_ret).fillna(0)
hình, ax = plt.subplots()
mật độ = stats.gaussian_kde(series)
series.hist(ax=ax, bins=400, edgecolor='black',color='#25a0e8', linewidth=.2,figsize=(6.5,2),histtype=u'step', mật độ=True)
ax.set_xlabel('Trả về nhật ký')
ax.set_ylabel('Tần suất nhật ký')
ax.set_title('LogLog Biểu đồ trả về ' +str(ticker1)+'/'+str(ticker2))
ax.set_yscale('log')
ax.set_xscale('log')
ax.grid(Không có)
plt.scatter(loạt, mật độ(loạt), c='#25a0d8', s=6)
hình, ax2 = plt.subplots()
series.hist(ax=ax2, bins=400, edgecolor='black',color='#25a0e8', linewidth=.2,figsize=(6.5,2),histtype=u'step', mật độ=True)
ax2.set_xlabel('Trả về nhật ký')
ax2.set_ylabel('Tần suất nhật ký')
ax2.set_title('Biểu đồ trả về Log-y ' +str(ticker1)+'/'+str(ticker2))
ax2.set_yscale('log')
ax2.grid(Không có)
plt.scatter(loạt, mật độ(loạt), c='#25a0d8', s=6)
plt.show()
双曲线分布和混合模型
nhập numpy dưới dạng np
từ matplotlib nhập pyplot dưới dạng plt
từ số liệu thống kê nhập scipy
p, a, b, lộc, tỷ lệ = 1, 1, 0, 0, 1
rnge=15
x = np.linspace(-rnge, rnge, 1000)
#Mô hình hỗn hợp cho đuôi
rnge=15
x = np.linspace(-rnge, rnge, 1000)
#Mô hình hỗn hợp cho đuôi
w=.999
dist1=stats.genhyperbolic.pdf(x, p, a, b, loc, thang đo)
dist2=stats.cauchy.pdf(x, loc,scale)
hỗn hợp=np.nansum((w*dist1,(1-w)*dist2),0)
plt.figure(figsize=(16,8))
plt.subplot(1, 2, 1)
plt.title("Nhật ký phân phối hyperbol tổng quát-Y")
plt.plot(x, stats.genhyperbolic.pdf(x, p, a, b, loc,scale), label = 'GH(p=1, a=1, b=0, loc=0,scale=1) ', màu='đen')
plt.plot(x, stats.genhyperbolic.pdf(x, p, a, b, loc,scale),
color = 'đỏ', alpha = .5, label='GH(p=1, 0
[plt.plot(x, stats.genhyperbolic.pdf(x, p, a, b, loc,scale),
color = 'red', alpha = 0,2) cho a trong np.linspace(1, 2, 10)]
plt.plot(x, stats.genhyperbolic.pdf(x, p,a,b,loc,scale),
color = 'blue', alpha = 0,2, label='GH(p=1, a=1, -1
plt.plot(x, stats.genhyperbolic.pdf(x, p,a,b,loc,scale),
color = 'xanh', alpha = 0,2, nhãn='GH(p=1, a=1, 0
[plt.plot(x, stats.genhyperbolic.pdf(x, p, a, b, loc,scale),
color = 'blue', alpha = .2) cho b trong np.linspace(-10, 0, 100)]
[plt.plot(x, stats.genhyperbolic.pdf(x, p, a, b, loc,scale),
color = 'green', alpha = .2) cho b trong np.linspace(0, 10, 100)]
plt.plot(x, stats.norm.pdf(x, loc,scale), label = 'N(loc=0,scale=1)', color='purple', dashes=[3])
plt.plot(x, stats.laplace.pdf(x, loc,scale), label = 'Laplace(loc=0,scale=1)', color='black',dashes=[1])
plt.plot(x,mix, label = 'Cauchy(loc=0,scale=1)', color='blue',dashes=[1])
plt.xlabel('Trả về')
plt.ylabel('Mật độ nhật ký')
plt.ylim(1e-10, 1e0)
plt.yscale('log')
x = np.linspace(0, 10000, 10000)
dist1=stats.genhyperbolic.pdf(x, p, a, b, loc, thang đo)
dist2=stats.cauchy.pdf(x, loc,scale)
hỗn hợp=np.nansum((w*dist1,(1-w)*dist2),0)
plt.subplot(1, 2, 2)
plt.title("Nhật ký đuôi phân phối hyperbol tổng quát-Y Log-X")
plt.plot(x, stats.genhyperbolic.pdf(x, p, a, b, loc,scale), label = 'GH(p=1, a=1, b=0, loc=0,scale=1) ', màu='đen')
plt.plot(x, stats.genhyperbolic.pdf(x, p, a, b, loc,scale),
color = 'đỏ', alpha = .5, label='GH(p=1, 0
[plt.plot(x, stats.genhyperbolic.pdf(x, p, a, b, loc,scale),
color = 'red', alpha = 0,2) cho a trong np.linspace(1, 2, 10)]
plt.plot(x, stats.genhyperbolic.pdf(x, p,a,b,loc,scale),
color = 'blue', alpha = 0,2, label='GH(p=1, a=1, -1
plt.plot(x, stats.genhyperbolic.pdf(x, p,a,b,loc,scale),
color = 'xanh', alpha = 0,2, nhãn='GH(p=1, a=1, 0
[plt.plot(x, stats.genhyperbolic.pdf(x, p, a, b, loc,scale),
color = 'blue', alpha = .2) cho b trong np.linspace(-10, 0, 100)]
[plt.plot(x, stats.genhyperbolic.pdf(x, p, a, b, loc,scale),
color = 'green', alpha = .2) cho b trong np.linspace(0, 10, 100)]
plt.plot(x, stats.norm.pdf(x, loc,scale), label = 'Gaussian', color='purple', dashes=[3])
plt.plot(x, stats.laplace.pdf(x, loc,scale), label = 'Laplace(loc=0,scale=1)', color='black',dashes=[1])
plt.plot(x, stats.cauchy.pdf(x, loc,scale), label = 'Cauchy(loc=0,scale=1)', color='blue',dashes=[1])
#Mô hình trộn đuôi nặng
plt.plot(x,mix, label = 'GH+Cauchy Mix(loc=0,scale=1)', color='red',dash=[1])
plt.xlabel('Trả về nhật ký')
plt.ylabel('Mật độ nhật ký')
plt.ylim(1e-10, 1e0)
plt.xlim(1e-0,1e4)
plt.xscale('log')
plt.yscale('log')
plt.legend(loc="phía trên bên phải")
plt.subplots_ adjustment(right=1)
Tất cả bình luận