Yazan: ck.eth
Derleyen: Lylia
Başlangıçta kum fırtınası dalgalanmalarını [2] (çöllerdeki kum dinamikleri) simüle etmek için geliştirilen hiperbolik dağılım [1], parametre esnekliği nedeniyle finansal varlık getirilerinin modellenmesinde uygulamalara sahiptir [3].
Sol: Log-ordinat grafiğindeki istatistiksel dağılıma bakmak, şeklinin daha iyi anlaşılmasını sağlar. Hyperbora dağılımı hiperbole benzer bir şekil sergilerken, kesikli Gauss dağılımı e^-x²/2 teriminin varlığı nedeniyle bir parabol olarak görülebilir. Doğru: Bir dağılımın özelliklerini, log-log grafiğindeki kuyruklarına bakarak daha iyi anlayabilirsiniz. Güç yasası dağılımı, log-log grafiğinde azalan bir eğilim göstermez. Dağılımların birleştirilmesi ve ağırlık parametrelerinin kullanılmasıyla farklı dağılımlar harmanlanabilir.
Dijital Varlıkların Fiyat Davranışı
Likidite sağlayıcılarının (LP'ler) varlıklarının fiyat dinamiklerini anlaması çok faydalıdır. En eski dijital varlık olan Bitcoin'in (BTC) 2015'ten bu yana log-ordinat grafiği şeklinde, 3091 günlük getirisini kullanarak geçmiş verilerine bakarsak, birkaç aykırı değer dışında, Genelleştirilmiş hiperbolik dağılımın tarihsel olarak uygun olduğunu görürüz. günlük iyi geri dönüşler.
Uyumumuzdaki anormallikler, log-log grafiğinde gözlemlenebilen, en sağdaki ve en soldaki aykırı değerlerdir. Bu şekilde, negatif getirilerin kuyruklarının kırmızı, pozitif aykırı getirilerin ise mavi ile temsil edildiğini görüyoruz.
Kuyruklar benzer görünse de sağdaki aykırı değerlerde bazı uyumsuzluklar var. Histogramı düzeltmek için Çekirdek Yoğunluğu Tahmini (KDE) yöntemini kullandım.
1 Ocak 2015'ten bu yana, Bitcoin (BTC) günlük getirilerinin sol ve sağ kuyrukları, özellikle de sağ kuyruğu asimetri gösteriyor.
Bu, genelleştirilmiş bir hiperbolün asimetrik güç yasasıyla birleştirilmesinin Bitcoin fiyatlarının dinamiklerini açıklayabileceği anlamına gelir. Örnek olarak Bitcoin'i seçtiğimi belirtmek önemlidir çünkü bu, tüm dijital varlıklar arasında en eski zaman serisi ve en az değişken olanıdır; bu, diğer dijital varlıkların likidite sağlayıcılarının (LP'ler) daha Dalgalı davranış sergileyeceği anlamına gelir.
Fiyat Dinamik Modelleme
Bu dalga davranışını simüle etmek için karıştırılabilecek düzinelerce istatistiksel dağılım vardır. Örneğin, geleneksel finansta yaygın bir yaklaşım, fiyat artışlarını hesaba katmak için geometrik Brownian hareketini (lognormal dağılım) kullanmak ve bunu Löwy süreciyle (Poisson dağılımı) birleştirmektir.
Erik Bardoux ve Antonis Papapantoleon tarafından Leveré süreçleri üzerine derslerinde görselleştirilen simülasyon yolları.
Kullanıcıların bu dağıtımları keşfetmelerine ve Riemann integralleri aracılığıyla bu dağıtımların LP konumlarının Uniswap'te nasıl kopyalanacağını keşfetmelerine yardımcı olmak için Desmos'ta 50'den fazla istatistiksel dağılımdan oluşan bir kütüphane oluşturdum.
İstatistiksel dağıtım kütüphanesi için Desmos bağlantısı: https://www.desmos.com/calculator/4ey6hbevzf
İstatistiksel dağıtım kütüphanesi için Desmos bağlantısı: https://www.desmos.com/calculator/4ey6hbevzf
Desmos'un ilginç bir özelliği, her bir istatistiksel dağılımın kuyruk özelliklerinin nasıl değiştiğini görmenize olanak tanıyan bir log-log grafiğine geçme yeteneğidir.
Verileriniz için hangi dağılımın en iyi olduğunu karşılaştırmak istiyorsanız, kümülatif dağılım fonksiyonunu ampirik kümülatif histogram verilerinizle karşılaştırmak için Kolmogorov-Smirnov testini kullanabilirsiniz. Bununla birlikte, aşağıda mümkün olan en kötü dağılımı varsaydığımız basit bir yaklaşımı da kullanabiliriz.
Peki ya gelecek hakkında hiçbir şey bilmiyorsanız? Sonsuza kadar uzanan kuyruklara sahip bir güç yasası olan fiyat alanındaki mümkün olan en kötü dağılımın neye benzediğini düşünebiliriz. Böyle bir dağılım Cauchy dağılımıdır (fiyat uzayında eşdeğeri log-Cauchy dağılımıdır).
Cauchy dağılımı büyük sayılar kanununa uymaz, kendine has bir iradesi vardır. Cauchy dağılımının özellikleri hakkında bilgi edinmek için şu bağlantıya başvurabilirsiniz: https://en.wikipedia.org/wiki/Cauchy_distribution#/media/File:Mean_estimator_consistency.gif.
Cauchy dağılımının bir özelliği de büyük sayılar kanununa uymamasıdır. Son 30 günün ortalamasını hesaplayıp bir model gördüğünüzü düşünebilirsiniz ama aslında bu sizi aldatıyor olabilir. İlginç bir örnek, likidite eksikliği nedeniyle bu davranışı sergileyebilen DOGE/ETH ticaret çiftinin ortalamasıdır.
Dogecoin ve Ethereum 7 yıldan fazla bir süredir ortalıkta olmasına rağmen, ticaret çiftinin atlama sürecinin kendine has özellikleri var ve bu da istatistiksel yaklaşım yöntemlerinin uygulanmasını zorlaştırıyor.
Dogecoin ve Ethereum 7 yıldan fazla bir süredir ortalıkta olmasına rağmen, ticaret çiftinin atlama sürecinin kendine has özellikleri var ve bu da istatistiksel yaklaşım yöntemlerinin uygulanmasını zorlaştırıyor.
Sağdaki loglog histogramında büyüyen aykırı değerler var. Bir loglog grafiğinde büyüyen aykırı değerlerin bulunduğu dağılımın log-Cauchy dağılımı olduğunu öğrendim.
Cauchy dağılımının fiyat uzayındaki lognormal dağılıma göre nasıl göründüğünü görebiliriz.
Sol: Lognormal dağılımın loglog grafiği paraboliktir, Cauchy güç yasasının doğrusal kuyruğu kırmızıyla temsil edilir ve siyah kesikli çizgi log-Cauchy dağılımını temsil eder. Sağ: aynı dağılımın fiyat uzayında temsili, [ 0, devasa).
Log-Cauchy dağılımı, Uniswap v2 konumlarının tamamı kadar kötü değildir ancak ikinci en kötü durumdur. Bölüm 1 ve 2'de sermaye verimliliği optimizasyonu hakkında öğrendiklerimize dayanarak, alt sınırı %80-90 civarına ayarlamak bunun iyileştirilmesine yardımcı olabilir, çünkü fiyat alt sınıra yaklaştıkça dağıtım büyümeye başlar, dolayısıyla bunu sürdürmeye gerek kalmaz. sıfıra kadar likidite sağlamak.
Mevcut fiyat 1'den başlayarak, aralığı sınırlamak için başlangıç noktası olarak %80-90'lık bir alt limit belirlemek kullanılabilir, ancak bu tür dinamiklere dayalı olarak herhangi bir varlığın yatırımını/alınmasını/satılmasını önermiyorum.Bu finansal bir tavsiye değildir. En iyi uygulama beklemek ve bir varlık hakkında daha fazla bilgi edinmektir.
Karmaşık sistemlerde güç yasası dağılımları hakkında
Ancak Cauchy dağılımı gibi bir güç yasası dağılımının kuyrukları zamanla kısalır mı? Kripto para birimi gibi gelişen ve karmaşık bir sistemde, güç yasası olgusunu tamamen ortadan kaldırmak zordur (bkz. ek), ancak belirsizlik derecesini azaltmak mümkündür.
Düşünürseniz tüm varlıklar ilk aşamalarında belirsizlik anları yaşar. Aslında, otomatik piyasa yapıcıların (AMM'ler) gelişmesiyle birlikte, geleneksel finansal piyasalarda tahmin edilemeyecek ilginç bağlantılar keşfettik. İnsanlar fiyat etkilerini istatistiksel olarak tahmin etmek için karekök yasasını kullanır. AMM'ler sayesinde, yoğunlaşmış likiditenin bir fonksiyonu olarak fiyatın nasıl etkileneceğini doğru bir şekilde tahmin edebiliyoruz ve belirli bir anda fiyat etkisini tanımlamak için hacmi veya oynaklığı dikkate almaya gerek kalmıyor. Tartışmayı en uç noktaya taşıyarak, Jerome Powell'ın MetaMask'ı indirdiğini ve DOGE/ETH'de likidite fonlamaya ve trilyonlarca dolar likidite sağlamaya karar verdiğini varsayalım. DOGE satmaya çalışan her kişinin fiyat üzerinde neredeyse yok denecek kadar olumsuz bir etkisi oluyor ve getiri dağılımından da görebileceğiniz gibi volatilite zamanla azalarak giderek Cauchy dağılımına benzemiyor.
Bu nedenle, AMM'ye uzun bir süre boyunca fazla likidite sağlayacak kadar cesur, yeterli fona sahip bir likidite sağlayıcısına sahip olmak, varlığın oynaklığını azaltabilir. Her ne kadar çok az kişinin cesaretlerini artırmak için dijital para yazıcısını ellerinde tutabileceklerinden şüpheleniyorum.
Dijital para yazıcılarının yokluğunda, kripto para endüstrisinin bu sorunun üstesinden gelmesinin bir yolu, likidite sağlayıcılarına sürekli satın alma garantileri sağlayabilecek varlıkları blok zincirine dahil etmektir. Bu varlıklar şunları içerebilir: büyük temettü getiren hisse senetleri (emekliler için emeklilik fonları tarafından satın alınır), tahviller (bankalar ve şirketler tarafından kısa vadeli finansman için satın alınır), döviz (tek bir küresel merkezi fiat para birimine ulaşmak zordur, bu nedenle Çin yuan, ABD doları, euro gibi döviz çiftleri hâlâ kullanımda olacak) ve emtialar (gıda ve ısınma her zaman talep görecek). Bir likidite sağlayıcısı olarak, McDonald's/Corn gibi bir ticaret çiftinde likidite sağlarken içiniz daha rahat olur çünkü her zaman bir miktar talep olacağını bilirsiniz, dolayısıyla likiditeyi korkutmazsınız. Sapma kayıpları olsa bile likidite sağlayıcı olarak içiniz rahat olabilir çünkü bir avuç Happy Meal üreticisinin veya bir avuç mısırın sahibi olursunuz.
ek
Güç yasaları ve bu olgunun neden kripto para birimlerinde ve geleneksel finansta var olmaya devam edeceği hakkında:
Yakın zamandaki iyi bir örnek, (8 Ocak 2023) birlikte gelişen DeFi sistemidir; burada Curve, Vyper aracılığıyla saldırıya uğradı, bu da Aave gibi diğer protokolleri etkiledi ve bu da diğer kullanıcıların para çekme kararlarını etkiledi. Sıfır gün güvenlik açıklarının varlığı, sistemin sürekli olarak gelişmesine ve dengesizleşmesine neden olarak kuyruk olayları oluşmasına neden olur.
İnternetten geçmiş verileri almak için kullanılan kod budur:
matematik ithalatı
numpy'yi np olarak içe aktar
yfinance'ı yf olarak içe aktarın #'pip install yfinance'ı kurduğunuzdan emin olun
pandaları pd olarak içe aktar
matplotlib.pyplot'u plt olarak içe aktar
matplotlib.animation'ı animasyon olarak içe aktar
#Varsayılan olarak BTC/EUR'u indirin
matplotlib.animation'ı animasyon olarak içe aktar
#Varsayılan olarak BTC/EUR'u indirin
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, başlangıç=t_0, bitiş=t_f)
data2=yf.download(ticker2, başlangıç=t_0, bitiş=t_f)
veri3=veri1
dat=data1['Kapat']
dat = pd.to_numeric(dat, hatalar='zorlama')
dat=dat.dropna()
dat_ret=dat.pct_change(1)
x = np.array(dat.değerler)
dat_recurrence=dat/max(dat)
xr = np.array(dat_recurrence.values)
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, figsize=(6.5,3))
# İlk alt grafikteki lojistik haritayı çizin
ax1.plot(aralık(uzunluk(x)), x, '#056398', satır genişliği=.5)
ax1.set_xlabel('Zaman')
ax1.set_ylabel(str(ticker1)+'/'+str(ticker2)+' Fiyat Oranı')
ax1.set_title(str(ticker1)+'/'+str(ticker2)+' '+ str(t_0))'dan beri dalgalanmalar
ax1.set_yscale('günlük')
n_end=uzunluk(x)
# İkinci alt grafikte lojistik haritasının yineleme grafiğini oluşturun
R = np.zeros((n_end, n_end))
aralıktaki i için(n_end):
(i, n_end) aralığındaki j için:
eğer abs(xr[i] - xr[j]) < 0,01 ise:
R[i, j] = 1
R[j, ben] = 1
ax2.imshow(R, cmap='viridis', Origin='alt', vmin=0, vmax=1)
ax2.set_xlabel('Zaman adımı')
ax2.set_ylabel('Zaman adımı')
ax2.set_xlabel('Zaman adımı')
ax2.set_ylabel('Zaman adımı')
ax2.set_title('' Tekrarlanma Grafiği' +str(ticker1)+'/'+str(ticker2))
seri = pd.Series(dat_ret).fillna(0)
incir, balta = plt.subplots()
yoğunluk = stats.gaussian_kde(seri)
series.hist(ax=ax, bins=400, edgecolor='black',color='#25a0e8', linewidth=.2,figsize=(6.5,2),histtype=u'step', yoğunluk=True)
ax.set_xlabel('Günlük Dönüşleri')
ax.set_ylabel('Günlük Frekansı')
ax.set_title('Dönüşlerin LogLog Histogramı ' +str(ticker1)+'/'+str(ticker2))
ax.set_yscale('günlük')
ax.set_xscale('günlük')
ax.grid(Yok)
plt.scatter(seri, yoğunluk(seri), c='#25a0d8', s=6)
incir, ax2 = plt.subplots()
series.hist(ax=ax2, bins=400, edgecolor='black',color='#25a0e8', linewidth=.2,figsize=(6.5,2),histtype=u'step', yoğunluk=True)
ax2.set_xlabel('Günlük Dönüşleri')
ax2.set_ylabel('Günlük Frekansı')
ax2.set_title('Dönüşlerin Log-y Histogramı ' +str(ticker1)+'/'+str(ticker2))
ax2.set_yscale('günlük')
ax2.grid(Yok)
plt.scatter(seri, yoğunluk(seri), c='#25a0d8', s=6)
plt.show()
双曲线分布和混合模型
numpy'yi np olarak içe aktar
matplotlib'den pyplot'u plt olarak içe aktarın
scipy ithalat istatistiklerinden
p, a, b, loc, ölçek = 1, 1, 0, 0, 1
rnge=15
x = np.linspace(-rnge, rnge, 1000)
#Kuyruklar için karışım modeli
rnge=15
x = np.linspace(-rnge, rnge, 1000)
#Kuyruklar için karışım modeli
w=.999
dist1=stats.genhyperabolik.pdf(x, p, a, b, loc, Scale)
dist2=stats.cauchy.pdf(x, loc, ölçek)
karışım=np.nansum((w*dist1,(1-w)*dist2),0)
plt.figure(figsize=(16,8))
plt.subplot(1, 2, 1)
plt.title("Genelleştirilmiş Hiperbolik Dağılım Log-Y")
plt.plot(x, stats.genhyperabolik.pdf(x, p, a, b, loc, ölçek), label = 'GH(p=1, a=1, b=0, loc=0, ölçek=1) ', renk='siyah')
plt.plot(x, stats.genhyperabolik.pdf(x, p, a, b, loc, Scale),
renk = 'kırmızı', alfa = 0,5, etiket='GH(p=1, 0
[plt.plot(x, stats.genhyperabolik.pdf(x, p, a, b, loc, Scale),
renk = 'kırmızı', alfa = 0,2) a için np.linspace(1, 2, 10)]
plt.plot(x, stats.genhyperabolik.pdf(x, p,a,b,loc, Scale),
renk = 'mavi', alfa = 0,2, etiket='GH(p=1, a=1, -1
plt.plot(x, stats.genhyperabolik.pdf(x, p,a,b,loc, Scale),
renk = 'yeşil', alfa = 0,2, etiket='GH(p=1, a=1, 0
[plt.plot(x, stats.genhyperabolik.pdf(x, p, a, b, loc, Scale),
np.linspace(-10, 0, 100)]'de b için renk = 'mavi', alfa = .2)
[plt.plot(x, stats.genhyperabolik.pdf(x, p, a, b, loc, Scale),
renk = 'yeşil', alfa = .2) np.linspace(0, 10, 100)'de b için]
plt.plot(x, stats.norm.pdf(x, loc, Scale), label = 'N(loc=0, Scale=1)', color='mor', tireler=[3])
plt.plot(x, stats.laplace.pdf(x, loc, ölçek), label = 'Laplace(loc=0, ölçek=1)', color='siyah',tireler=[1])
plt.plot(x, karışım, etiket = 'Cauchy(loc=0, ölçek=1)', color='mavi',tireler=[1])
plt.xlabel('Döndürür')
plt.ylabel('Günlük Yoğunluğu')
plt.ylim(1e-10; 1e0)
plt.yscale('günlük')
x = np.linspace(0, 10000, 10000)
dist1=stats.genhyperabolik.pdf(x, p, a, b, loc, Scale)
dist2=stats.cauchy.pdf(x, konum, ölçek)
karışım=np.nansum((w*dist1,(1-w)*dist2),0)
plt.subplot(1, 2, 2)
plt.title("Genelleştirilmiş Hiperbolik Dağıtım Kuyruk Log-Y Log-X")
plt.plot(x, stats.genhyperabolik.pdf(x, p, a, b, loc, ölçek), label = 'GH(p=1, a=1, b=0, loc=0, ölçek=1) ', renk='siyah')
plt.plot(x, stats.genhyperabolik.pdf(x, p, a, b, loc, Scale),
renk = 'kırmızı', alfa = 0,5, etiket='GH(p=1, 0
[plt.plot(x, stats.genhyperabolik.pdf(x, p, a, b, loc, Scale),
renk = 'kırmızı', alfa = 0,2) a için np.linspace(1, 2, 10)]
plt.plot(x, stats.genhyperabolik.pdf(x, p,a,b,loc, Scale),
renk = 'mavi', alfa = 0,2, etiket='GH(p=1, a=1, -1
plt.plot(x, stats.genhyperabolik.pdf(x, p,a,b,loc, Scale),
renk = 'yeşil', alfa = 0,2, etiket='GH(p=1, a=1, 0
[plt.plot(x, stats.genhyperabolik.pdf(x, p, a, b, loc, Scale),
np.linspace(-10, 0, 100)]'de b için renk = 'mavi', alfa = .2)
[plt.plot(x, stats.genhyperabolik.pdf(x, p, a, b, loc, Scale),
renk = 'yeşil', alfa = .2) np.linspace(0, 10, 100)'de b için]
plt.plot(x, stats.norm.pdf(x, loc, Scale), label = 'Gaussian', color='mor', tireler=[3])
plt.plot(x, stats.laplace.pdf(x, loc, ölçek), label = 'Laplace(loc=0, ölçek=1)', color='siyah',tireler=[1])
plt.plot(x, stats.cauchy.pdf(x, loc, ölçek), label = 'Cauchy(loc=0, ölçek=1)', color='mavi',dashes=[1])
#Ağır kuyruk karışımı modeli
plt.plot(x, karışım, etiket = 'GH+Cauchy Karışımı(loc=0, ölçek=1)', color='kırmızı',tireler=[1])
plt.xlabel('Günlük Dönüşleri')
plt.ylabel('Günlük Yoğunluğu')
plt.ylim(1e-10, 1e0)
plt.xlim(1e-0,1e4)
plt.xscale('günlük')
plt.yscale('günlük')
plt.legend(loc = "sağ üst")
plt.subplots_adjust(sağ=1)
Tüm Yorumlar