Teknik Analiz Dünyasına Hoşgeldiniz. Paylaşmak Güzeldir.

Yayından kaldırmak istediğiniz formüller için algoritmabul@gmail.com ile iletişime geçebilirsiniz... 

  • DİKKAT: Formüller, Sistemler sadece eğitim amaçlıdır. Alım satım, olası anapara kaybı ve diğer kayıplar dahil olmak üzere "YÜKSEK RİSK" içerir.

Makine Öğrenimi - Python Autoregressive Conditional Heteroskedasticity (ARCH)

Machine Learning Algorithms - Makine Öğrenimi Algoritmaları BORSA

algoritma

eiπ + 1 = 0
Algorithmist
Algoritma
Katılım
23 Eki 2020
Mesajlar
1,797
ARCH (Autoregressive Conditional Heteroskedasticity)
modeli, finansal zaman serilerindeki değişen varyansı modellerlemek için kullanılan bir ekonometrik model türüdür. Bu model, zaman serisinin volatilitesinin geçmiş hata terimlerine bağlı olduğunu kabul eder. ARCH modeli, özellikle finansal piyasalarda volatilite modellenmesi gerektiğinde kullanışlıdır çünkü finansal verilerde volatilite genellikle zaman içinde değişkenlik gösterir.

ARCH modelinin temel özellikleri şunlardır:

  1. Varyansın Koşullu Olarak Değişkenliği: ARCH modeli, bir zaman serisinin varyansının geçmiş hata terimlerine bağlı olarak değişebileceğini ifade eder. Yani, geçmiş dönemlerdeki fiyat dalgalanmaları gelecekteki volatiliteye etki eder.
  2. ARCH(p) Modeli: ARCH modeli, ARCH(p) şeklinde ifade edilir, burada "p" geçmiş dönemlerin hata terimlerinin kullanılacağı dönem sayısını temsil eder. Bu, modelin karmaşıklığını ve esnekliğini kontrol eder.
  3. Model Tahminleri: ARCH modeli ile, gelecekteki volatilite tahminleri yapılabilir. Bu, risk yönetimi ve finansal türev ürünlerin fiyatlaması gibi uygulamalarda önemlidir.
ARCH modeli, zaman serilerindeki değişken volatilitenin modellenmesi gereken birçok finansal uygulama için kullanılır. Bu model, finansal piyasalardaki risk analizi ve portföy yönetimi için de önemlidir. ARCH'nin daha gelişmiş sürümleri, GARCH (Generalized Autoregressive Conditional Heteroskedasticity) ve EGARCH (Exponential GARCH) gibi modeller, finansal verilerin volatilitesini daha hassas bir şekilde modellerler.
 

algoritma

eiπ + 1 = 0
Algorithmist
Algoritma
Katılım
23 Eki 2020
Mesajlar
1,797
GARCH (Generalized Autoregressive Conditional Heteroskedasticity)
Otoregresif Koşullu Değişen Varyans

Finansal zaman serilerindeki volatilitenin değişkenliğini modellerlemek ve tahmin etmek için kullanılan bir ekonometrik model türüdür. GARCH modeli, ARCH (Autoregressive Conditional Heteroskedasticity) modelinin genelleştirilmiş bir versiyonudur ve daha fazla esneklik sunar.
GARCH modelinin temel özellikleri şunlardır:
Varyansın Değişkenliği:
GARCH modeli, zaman serisi verilerindeki varyansın koşullu olarak değişken olduğunu kabul eder. Yani, bir dönemdeki volatilite, geçmiş dönemlerdeki fiyat dalgalanmalarına dayalı olarak değişebilir.
  1. GARCH(p, q) Modeli: GARCH modeli, GARCH(p, q) şeklinde ifade edilir. "p" geçmiş dönemlerin hata terimlerinin varyansını modellerken kullanılan dönem sayısını, "q" ise geçmiş dönemlerin gözlemleriyle ilgili olan varyansı modellerken kullanılan dönem sayısını ifade eder.
  2. Model Tahminleri: GARCH modeli ile gelecekteki volatilite tahminleri yapılabilir. Bu, risk yönetimi, opsiyon fiyatlandırması ve portföy yönetimi gibi finansal uygulamalarda önemlidir.
  3. Varyansın Koşullu Olarak Modeli: GARCH modeli, volatilitenin geçmiş verilere bağlı olarak belirlendiği bir koşullu varyans modelidir. Bu, finansal piyasalardaki volatilite patlamalarını ve durgunluklarını yakalamak için kullanışlıdır.
GARCH modeli, finansal zaman serilerindeki volatilitenin modellenmesi ve analiz edilmesi gereken birçok uygulama için kullanılır. Ayrıca, finansal türev ürünlerin risk yönetimi ve fiyatlandırması gibi alanlarda önemli bir rol oynar.

EGARCH (Exponential Generalized Autoregressive Conditional Heteroskedasticity)

finansal zaman serilerindeki volatilitenin modellenmesi ve tahmin edilmesi için kullanılan bir ekonometrik model türüdür. EGARCH modeli, GARCH (Generalized Autoregressive Conditional Heteroskedasticity) modeline benzer, ancak bazı önemli farklılıkları vardır. EGARCH, volatilitenin koşullu olarak değişen ve pozitifliği daha iyi yakalayan bir model olmasıyla bilinir.
EGARCH modelinin temel özellikleri şunlardır:
  1. Varyansın Değişkenliği: EGARCH modeli, zaman serisi verilerindeki volatilitenin koşullu olarak değişken olduğunu kabul eder, yani bir dönemdeki volatilite, geçmiş dönemlerdeki fiyat dalgalanmalarına ve hata terimlerine bağlı olarak değişebilir.
  2. EGARCH(p, q) Modeli: EGARCH modeli, EGARCH(p, q) şeklinde ifade edilir. "p" ve "q" parametreleri, modelde kullanılan geçmiş dönemlerin hata terimleri ve varyans terimleri sayısını belirtir. Modelin karmaşıklığı ve esnekliği bu parametrelerin seçimine bağlıdır.
  3. Exponential Formülasyonu: EGARCH, varyansı bir üs olarak ifade eder. Bu, volatilitenin pozitif olması gerektiği ve fiyat hareketlerinin yüksek veya düşük volatiliteye tepkisini daha iyi ifade etmek için kullanışlıdır.
  4. Asimetriyi Modeller: EGARCH, volatilitenin pozitif ve negatif fiyat hareketlerine karşı asimetrik tepkisini modeller. Bu, finansal piyasalardaki gerçek durumu daha iyi yansıtabilir.
EGARCH modeli, finansal zaman serilerinin analizi ve volatilitenin tahmini için özellikle finansal risk yönetimi ve opsiyon fiyatlandırması gibi uygulamalarda kullanışlıdır. EGARCH modeli, GARCH modelinden daha esnek bir yapıya sahip olduğu için volatilite modellenmesinde daha fazla kullanılır.

TGARCH (Threshold GARCH veya Eşikli GARCH)= Generalized Autoregressive Conditional Heteroskedasticity

finansal zaman serilerinde volatilite tahmin etmek için kullanılan bir modeldir. Bu model, volatilitenin bazı eşik değerlerin üzerine çıkması durumunda farklı bir GARCH yapısının kullanılmasını içerir. TGARCH, finansal piyasalardaki farklı koşullar altında volatilitenin farklı şekilde davranabileceğini varsayar.

TGARCH modelinin temel özellikleri şunlardır:
  1. Volatilite Eşik Değerleri: Model, volatilitenin belirli bir eşik değerini aşması veya altına düşmesi durumunda farklı GARCH yapısının kullanılmasını kabul eder. Bu, piyasada ani değişiklikler veya olağanüstü durumlar sırasında volatilitenin farklı davranabileceğini göz önüne alır.
  2. Asimetrik Volatilite Modelleri: TGARCH, asimetrik volatilite modelleri ile uyumlu olabilir. Bu, fiyat düşüşleri ile yükselişleri farklı şekillerde ele alabilir ve daha gerçekçi sonuçlar üretebilir.
  3. Olağanüstü Durumlar İçin Uygundur: TGARCH modeli, finansal krizler veya olağanüstü piyasa koşulları gibi durumlar için uygundur. Bu tür koşullarda, volatilite aniden artabilir veya düşebilir, ve TGARCH bu tür durumları modellemek için kullanışlı olabilir.
TGARCH modeli, analistlere ve yatırımcılara finansal piyasalardaki volatiliteyi daha iyi anlama ve tahmin etme imkanı sunar. Ancak, bu modelin kullanımı, eşik değerlerin ne zaman ve nasıl belirleneceği gibi bazı özelleştirme ve parametre tahmin zorluklarına yol açabilir. Bu nedenle TGARCH'ı kullanmadan önce dikkatlice analiz etmek ve uygun parametreleri ayarlamak önemlidir.
 

algoritma

eiπ + 1 = 0
Algorithmist
Algoritma
Katılım
23 Eki 2020
Mesajlar
1,797
ARCH modülünde vol parametresi olarak kullanabileceğiniz başka seçenekler de vardır. Bu seçenekler, volatilite modelinin türünü belirler. İşte bazı popüler volatilite modelleri ve vol parametresi ile kullanılan seçenekler:
  1. GARCH (Genel ARCH): GARCH modeli, varsayılan olarak "Garch" olarak ayarlanır.
  2. EGARCH (Exponential GARCH): EGARCH modelini kullanmak için "vol='EGarch'" olarak belirtebilirsiniz.
  3. TGARCH (Threshold GARCH): TGARCH modelini kullanmak için "vol='TGarch'" olarak belirtebilirsiniz.
  4. CGARCH (Component GARCH): CGARCH modelini kullanmak için "vol='CGarch'" olarak belirtebilirsiniz.
  5. HARCH (Heteroskedasticity ARCH): HARCH modelini kullanmak için "vol='Harch'" olarak belirtebilirsiniz.
  6. RiskMetrics: RiskMetrics modelini kullanmak için "vol='RiskMetrics'" olarak belirtebilirsiniz.
  7. Constant Mean: Constant Mean modelini kullanmak için "vol='ConstantMean'" olarak belirtebilirsiniz.
  8. Asymmetrical GARCH (AGARCH): AGARCH modelini kullanmak için "vol='AGarch'" olarak belirtebilirsiniz.
  9. GJR-GARCH: GJR-GARCH modelini kullanmak için "vol='Garch'" olarak belirtebilirsiniz.
Her bir model, farklı volatilite yapısını temsil eder ve verilerinize en uygun modeli seçmek için denemeler yapmanız gerekebilir. Modelinizi ve uygun parametreleri seçerken dikkatli olmanız önemlidir.

bazı volatilite modellerinin kısa açıklamalarını bulabilirsiniz:
  1. GARCH (Genel ARCH): Genel oto-regresif koşullu heteroskedastisite modeli, verinin varyansını açıklamak için kullanılır. Temel olarak, geçmiş verilerin varyansının bugünkü veri üzerindeki etkisini modellemektedir.
  2. EGARCH (Exponential GARCH): EGARCH modeli, volatilitenin pozitif ve negatif getirilere farklı şekilde tepki verdiği durumları ele alır. Bu, fiyatların yükseldiği ve düştüğü durumlarda farklı tepkiler sağlar.
  3. TGARCH (Threshold GARCH): Eşik değerli GARCH modeli, volatilitenin bir eşik değeri altında ve üstünde farklı davrandığı durumları modellemek için kullanılır. Bu, belirli bir eşik değeri aşıldığında volatilitenin artmasını açıklar.
  4. CGARCH (Component GARCH): Bileşenli GARCH modeli, volatiliteyi bileşenlere ayırarak her bir bileşenin farklı faktörlere nasıl tepki verdiğini incelemek için kullanılır.
  5. HARCH (Heteroskedasticity ARCH): Heteroskedastik ARCH modeli, veri setindeki heteroskedastisiteyi modellemek için kullanılır. Yani, verinin varyansının zamanla değiştiği durumları ele alır.
  6. RiskMetrics: RiskMetrics modeli, finansal risk yönetimi için kullanılır. Volatilitenin gelecekteki risk tahminlerini yapmak için kullanılır.
  7. Constant Mean: Sabit ortalama modeli, verinin ortalama getiriye nasıl yakınsadığını incelemek için kullanılır. Volatilitenin ortalama getiriye nasıl yakınsadığını modellemek için kullanılır.
  8. Asymmetrical GARCH (AGARCH): Asimetrik GARCH modeli, volatilitenin yukarı ve aşağı yönlü fiyat hareketlerine farklı tepkiler verdiği durumları incelemek için kullanılır.
  9. GJR-GARCH: Glosten-Jagannathan-Runkle GARCH (GJR-GARCH) modeli, volatilitenin artışlar ve düşüşler arasındaki farkları nasıl ele aldığını incelemek için kullanılır.
Her bir model, veri setinizin özelliklerine ve analiz hedeflerinize bağlı olarak uygun olabilir. Hangi modelin en iyi sonuçları vereceğini belirlemek için denemeler yapmanız ve analizler gerçekleştirmeniz gerekebilir.
 

algoritma

eiπ + 1 = 0
Algorithmist
Algoritma
Katılım
23 Eki 2020
Mesajlar
1,797
daha sonra vol=gelebilecek değerlerin en iyisini bulacağız bunun için aic ve bic değerlerine göre hareket edeceğiz
aic ve bic
AIC (Akaike Bilgi Kriteri) ve BIC (Bayesian Bilgi Kriteri) her ikisi de model seçimi ve karşılaştırılması için kullanılan iki farklı bilgi kriteridir. İşte her biri hakkında daha fazla bilgi:
  1. AIC (Akaike Bilgi Kriteri): AIC, bir istatistiksel modelin uygunluğunu ve karmaşıklığını değerlendirmek için kullanılır. Daha düşük AIC değerleri, modelin daha iyi uyum sağladığını gösterir. AIC, aşağıdaki formülle hesaplanır:
    AIC = -2 * ln(L) + 2 * k
    Burada:
    • "ln(L)" modelin olasılık yoğunluğunun (likelihood) doğal logaritmasıdır.
    • "k" modelin serbest parametre sayısını temsil eder.
    • AIC, hem modelin uygunluğunu artırmaya hem de aşırı uydurmayı engellemeye çalışır. Model seçiminde daha düşük AIC değerine sahip olan model tercih edilir.
  2. BIC (Bayesian Bilgi Kriteri): BIC, aynı şekilde model uygunluğunu ve karmaşıklığını değerlendirmek için kullanılır. BIC, AIC gibi düşük değerlere sahip olan modelleri tercih eder, ancak BIC, modelin karmaşıklığını daha fazla cezalandırır. BIC, aşağıdaki formülle hesaplanır:
    BIC = -2 * ln(L) + k * ln(n)
    Burada:
    • "ln(L)" modelin olasılık yoğunluğunun doğal logaritmasıdır.
    • "k" modelin serbest parametre sayısını temsil eder.
    • "n" veri noktalarının sayısını temsil eder.
    • BIC, daha fazla veri içeren veri setlerinde daha basit modelleri teşvik eder ve aşırı uyum riskini azaltır.
Her iki kriter de model seçimi için kullanışlıdır, ancak hangi kriterin tercih edildiği, analizin bağlamına ve verinin özelliklerine bağlı olarak değişebilir. Daha düşük AIC veya BIC değerine sahip olan model, genellikle daha iyi bir uyum sağlayan ve daha az karmaşık olan modeldir.
 

algoritma

eiπ + 1 = 0
Algorithmist
Algoritma
Katılım
23 Eki 2020
Mesajlar
1,797
p ,q ve en iyi volatilite metodunu seçip model_selection_results.txt dosyasına kaydeder
Kod:
import pandas as pd
from arch import arch_model

# Veriyi yükleyin ve 'Close' sütununu kullanın
data_filename = 'xu100/petkm.IS.CSV'
data = pd.read_csv(data_filename)
returns = data['Close']

best_aic = float('inf')
best_bic = float('inf')
best_p = 0
best_q = 0
best_vol = ''

# p ve q değerlerini ara
for p in range(5):
    for q in range(5):
        for vol_type in ['Garch', 'EGarch', 'TGarch', 'CGarch', 'Harch', 'RiskMetrics', 'ConstantMean', 'AGarch']:
            try:
                model = arch_model(returns, vol=vol_type, p=p, q=q)
                model_fit = model.fit()
                aic = model_fit.aic
                bic = model_fit.bic
                if aic < best_aic:
                    best_aic = aic
                    best_bic = bic
                    best_p = p
                    best_q = q
                    best_vol = vol_type
            except Exception as e:
                pass

# En iyi p, q ve volatilite modeli ile modeli oluşturun ve eğitin
best_model = arch_model(returns, vol=best_vol, p=best_p, q=best_q)
best_model_fit = best_model.fit()

# Tahminleri yapın
forecast_volatility = best_model_fit.conditional_volatility

# Sonuçları bir dosyaya yazdırma
result_filename = 'model_selection_results.txt'  # Sonuç dosyasının adı

# Hisse adını ve belirtilen sonuçları çıktı dosyasına yazın
with open(result_filename, 'a') as f:
    f.write(f"Analiz edilen veri dosyası: {data_filename}\n")
    f.write(f"En iyi AIC değeri: {best_aic}\n")
    f.write(f"En iyi BIC değeri: {best_bic}\n")
    f.write(f"En iyi p değeri: {best_p}\n")
    f.write(f"En iyi q değeri: {best_q}\n")
    f.write(f"En iyi volatilite modeli: {best_vol}\n")
    
    # Tahmin sonuçlarını yazın
    f.write("Tahmin Sonuçları:\n")
    f.write(forecast_volatility.tail().to_string() + "\n")

print(f"Analiz sonuçları '{result_filename}' adlı dosyaya kaydedildi.")

garch.jpg
 

algoritma

eiπ + 1 = 0
Algorithmist
Algoritma
Katılım
23 Eki 2020
Mesajlar
1,797
arch dizilimi şöyledir
best_model = arch_model(returns, vol='Garch', p=1, q=1)
burada p ve q parametredir öncelikle her hissenin vol = garch için p ve q sunu tespit edeceğiz

Kod:
import pandas as pd
from arch import arch_model

# Veriyi yükleyin ve 'Close' sütununu kullanın
data_filename = 'xu100/TAVHL.IS.CSV'
data = pd.read_csv(data_filename)
returns = data['Close']

best_aic = float('inf')
best_bic = float('inf')
best_p = 0
best_q = 0

# p ve q değerlerini ara
for p in range(5):
    for q in range(5):
        try:
            model = arch_model(returns, vol='Garch', p=p, q=q)
            model_fit = model.fit()
            aic = model_fit.aic
            bic = model_fit.bic
            if aic < best_aic:
                best_aic = aic
                best_bic = bic
                best_p = p
                best_q = q
        except Exception as e:
            pass

print(f"En iyi AIC değeri: {best_aic}")
print(f"En iyi BIC değeri: {best_bic}")
print(f"En iyi p değeri: {best_p}")
print(f"En iyi q değeri: {best_q}")

# En iyi p ve q değerleriyle EGARCH modelini oluşturun ve eğitin
best_model = arch_model(returns, vol='Garch', p=best_p, q=best_q)
best_model_fit = best_model.fit()

# Model sonuçlarını görüntüleyin
print(best_model_fit.summary())

# Tahminleri yapın
forecast_volatility = model_fit.conditional_volatility
print(forecast_volatility.tail())

# En iyi p ve q değerlerini bir dosyaya yazdırma
result_filename = 'best_p_q_values.txt'  # Sonuç dosyasının adı

# En iyi p ve q değerlerini bir dosyaya yazdırma
with open(result_filename, 'a') as f:
    f.write(f"Analiz edilen veri dosyası: {data_filename}\n")
    f.write(f"En iyi p değeri: {best_p}\n")
    f.write(f"En iyi q değeri: {best_q}\n")

print(f"Analiz edilen veri dosyası adı ve en iyi p ve q değerleri '{result_filename}' adlı dosyaya yazıldı.")

bilgisayarınıza best_p_q_values.txt dosyasını kaydeder ve en iyi değerleri yazar
 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap
Başlatan Benzer Konular Forum Cevap Tarih
algoritma A 5