Örüntü Tanıma Teknikleri ile FOREX Değer Tahmini

FOREX piyasaları ülkelerin ekonomik, siyasi, kültürel, askeri veya teknolojik gibi farklı ve birçok gelişmelerine, doğal afetler gibi öngörülemez olaylara ve hatta spekülatif bazı haberlere de bağlı olarak değişebilen kur değerleri üzerinden alım satım yapılır. Bu işlemler sırasında, alımı veya satışı yapılan dövizin parite değerindeki değişimler üzerinden kâr edilmesi amaçlanır. Ancak FOREX verisinin karmaşık ve gürültülü yapısı, zaman serisi olarak yorumlanan bu verinin gelecek değerleri hakkındaki tahminleri oldukça güç bir hale getirmektedir.

FOREX verisini tahmin etmek adına, literatürde ve piyasada halihazırda kullanıma açık olan, Moving Average (MA), Exchange Rate Return (ERR) veya Bollinger bantları gibi çeşitli teknik analiz indikatörleri veya Stochastic Oscillator (STOCH) gibi modelleme yapıları kullanılmaktadır. Bu yapılar sayesinde FOREX verisinin yönelimi (trend) ve değeri hakkında tahminler yürütülebilmektedir. Ayrıca, bu alanda elde edilen teknik indikatör sonuçlarının çok katmanlı perceptron (MLP) yapısındaki yapay sinir ağları (Neural Network, NN) veya destek vektör makineleri (Support Vector Machines, SVM) gibi makine öğrenmesi teknikleri ile birleştirilmesi ile kapsamlı ve başarılı çalışmalar yapılabilmektedir.

Bu çalışmada ise en tercih edilen teknik analiz indikatörlerinden 13 tanesi kullanılarak farklı 26 öznitelik elde edilmesi ile oluşturulan geri beslemeli zaman serisi yapay sinir ağı modeli kullanılarak, EUR/USD döviz paritesi için değer tahmini yapılmıştır.

KULLANILAN TEKNİK ANALİZ İNDİKATÖRLER ve MODELLER

Teknik indikatörler ve çeşitli modeller ile modellenen FOREX verileri genellikle trend ve değer bilgisinden ayırılmış bir yapıda olur. Bu yapıda olmayan, destek bilgisi oluşturan indikatörler de mevcuttur. Bu dönüşümler sayesinde veri modellemesi daha basit ve karmaşıklığı daha düşük bir yapıya dönüştürülmektedir. Bu çalışmada takip eden bölümde detaylandırılmış olan 13 farklı indikatör ve model grubu kullanılmıştır. Bu bölümde kullanılan kısaltmalar Tablo 1’de verilmiştir. Bu indikatörlerin açılış, kapanış, yüksek ve alçak değerlere uygulanması ile 26 farklı öznitelik elde edilmiştir. Bu analiz sırasında kullanılan veriler ile verilen kaynaktan alınmıştır.

Tablo 1 – Teknik indikatör formülasyonunda kullanılan terimler.

lowN N günlük geçmişteki en düşük fiyat
highN N günlük geçmişteki en yüksek fiyat
cN N gün önceki kapanış fiyatı
ct Bugün için kapanış fiyatı
lowt Gün içerisindeki en düşük fiyat
hight Gün içerisindeki en yüksek fiyat

1. Bollinger Bands

Bollinger bantları bir basit yürüyen ortalama (SMA) etrafına çizilen iki standart sapma eğrisinden oluşan bir grafiktir. Piyasanın öngörülemezliğinin bir ölçütü olan volatilite değerinin artması veya azalması, Bollinger bantlarının merkezde bulunan SMA’dan uzaklaşması veya yakınlaşmasına neden olur.

2. Stochastic Oscillator (STOCH, %K)

STOCH, bir kapanış fiyatının verilen zaman aralığındaki fiyat aralığına göre güvenirliğini ölçen, buna aşırı alım veya aşırı satış işlemi yapıldığını gösteren bir teknik moment intikatörüdür.

%K = 100[(ct – lowN)/(highN – lowN)]

3. Momentum

Momentum, fiyatın artış veya azalış miktarının bir ölçütüdür. Aynı yönde trend gösteren veriler için anlamlı bilgi ifade eder.

M = ct – cN

4. Williams %R

Bir çeşit momentum ölçütü olan Williams %R operatörü, tercihen 14 günlük periyod içerisindeki bir stokun kapanış fiyatını yüksek ve alçak değer aralığına göre kıyaslar. Bu sayede, STOCH gibi aşırı alım ve aşırı satış işlemleri için sinyaller oluşturabilir.

%R = -100 * (highN – ct) / (highN – lowN)

5. Price Rate of Change (ROC)

ROC, güncel fiyat ile “N” günlük periyod içindeki fiyat değişimini ölçer.

R = (ct – cN) / cN

6. Weighted Closing Price (WCP)

WCP, belli bir aralıktaki kapanış fiyatlarının toplamları 1 olacak şekilde farklı ağırlık katsayıları ile çarpılarak ortalanması işlemidir.

WPC = [(c*2) + (highN + lowN)] / 4

7. Williams Accumulation/Distribution Line (WADL)

WADL, günlük fiyat değişiminin momentumu ile ilgili bir ölçüttür. WADL ile kapanış fiyatı arasındaki fark, trendde bir değişikliği işaret eder. Trend eğrisi WADL eğrisini takip edecek şekilde değişim gösterir.

WADL = Today’s A/D + Yesterday’s A/D

  • Today’s A/D:
    • if c > c1 = c – TRL
    • else if c < c1 = c – TRH
    • else 0
  • TRH = max(c1, hight)
  • TRL = max(c1, lowt)

8. Accumulation/Distribution Oscillator (ADO, A/D)

A/D çizgisi, bir alım satım işlemi üzerindeki baskıyı ölçen bir indikatördür. Eğer fiyat artış eğiliminde ise sinyal alım baskısını arttırırken, azalım eğiliminde tersini oluşturur.

A/D = ((ct – lowN) – (highN – ct)) / (highN – lowN) * N

9. Moving Average Convergence / Divergence (MACD)

MACD, trend takibi için kullanılmakta olan, fiyatların kapanış değerlerine göre iki farklı exponential MA (EMA) hesaplanması ile elde edilen bir momentum indikatörüdür. 9 günlük EMA üzerine çizilen MACD sinyallerine göre al veya sat sinyalleri oluşturulur.

  • MACD = EWMA(12) – EWMA(26)
  • signal = EWMA(MACD,9)
  • divergence = MACD – signal

10. Commodity Channel Index (CCI)

Aşırı alım veya satış işlemlerinin ölçümü için kullanılan bir teknik indikatör olan CCI, bir MA ile sapmalar (σ) arasında bir ilişki kurar.

CCI = (1/0.015) * (pt – SMA(pt)) / σ(pt)

  • pt = (hight + lowt + c) / 3,

11. Exchange Rate Return (ERR)

ERR, döviz kurunun kapanış farkına göre günlük getirisinin bir ölçütüdür.

ERR = ct – c(t-1)

12. Differencing

ERR işlemine çok benzer olan türev alma işlemi, döviz kurunun kapanış fiyatına göre değişimini ölçmek için kullanılabilecek alternatif bir indikatör olarak tercih edilmiştir.

13. Relative Strength Index (RSI)

RSI, en son elde edilen kazançların, en son kaybedilen miktarlara oranına göre aşırı alım veya aşırı satış yapıldığını belirlemekte kullanılan bir teknik indikatördür.

RSI = 100 – 100/(1 + RS)

RS = Yukarı yönlü kapanış ortalamasının aşağı yönlü kapanış ortalamasına oranı

KULLANILAN MAKİNE ÖĞRENMESİ YÖNTEMLERİ

Bu çalışmada geri beslemeli zaman serisi yapay sinir ağı modeli olan nonlinear autoregressive network with exogenous inputs (NARX) yapısı ve bu modelden elde edilebilecek varyasyonlar olan Close-Loop ve Step-Ahead Prediction Network yapıları kullanılmıştır. Kullanılan NARX modeli tüm verinin %70’i ile eğitim seti olarak ayırılmış, geri kalan %30’u ile test edilmiştir. Eğitim seti olarak ayrılan %70’lik verinin %70’i ile NARX modeli eğitilirken, %15 ile doğrulama, kalan %15 ile model testi yapılmaktadır. Model parametrelerinin istenilen miktarda hata oranına sahip olması durumunda test için ayrılmış olan %30’luk veri kullanılmaktadır.

NARX yapısı tekrar eden dinamik bir yapıya sahip, katmanları çevreleyen bir geri besleme bağlantısı olan, çok katmanlı bir yapay sinir ağı mimarisidir. Bu yapıda çıktının değeri, girdilerin geçmiş değerlerinin ve önceki çıktıların değerlerine bağlı, (1) ile verilen fonksiyon olarak elde edilir.

 narx_equation (1)

Burada y(t) çıktı fonksiyonunu, u(t) ise girdi fonksiyonunu temsil etmektedir. Bu çalışmada kullanılan NARX ağı yapısı Şekil 1’deki gibidir.

narx

Şekil 1 – NARX ağı katman yapısının şematik gösterimi.

NARX ağı gürültü filtresi olarak kullanılabileceği gibi, girdi sinyallerinin geçmiş verilerine göre bir sonraki değerini tahmin eden yapısından ötürü gelecek verileri de tahmin edebilmektedir. Bu yapı, Step-Ahead Prediction (SAP) Network olarak adlandırılmaktadır. Bir SAP ağının çıktısının sisteme girdi olarak geri besleme yapılması durumunda ise, Close-Loop Network yapısı elde edilir. Bu yapıların şematik gösterimleri sırasıyla Şekil 2 ve Şekil 3’de verilmiştir.

sap

Şekil 2 – SAP ağı katman yapısının şematik gösterimi.

close_loop

Şekil 3 – Close-Loop NARX ağı katman yapısının şematik gösterimi.

  1. SONUÇLAR

Bu çalışmada, EUR/USD döviz paritesinin 2.1.2001 – 4.8.2014 tarihleri arasındaki açılış, kapanış, yüksek ve alçak değerleri kullanılarak, bahsi geçen teknik indikatörler ile elde edilen öznitelik uzayı ile NARX yapısındaki bir yapay sinir ağı sistemi eğitilmiş ve test edilmiştir.

Yapılan testler sonucunda SAP ağı ile %49.843, Close-Loop NARX ağı ile %49.134 doğru trend tahmini yapılabilmiştir. Sonuçlardan görüldüğü üzere oluşturulan ağlar trend tahmini için istenilen başarımı sağlayamamaktadır. Ancak, oluşturulan ağların trend tahmininden çok değer tahmini konusunda yapılan hatalar incelendiğinde, SAP ağı için gerçek değere göre sırasıyla ortalama ve standart sapma miktarları [5.7535e-05, 0.0079], Close-Loop NARX ağı için ise [-6.2047e-05, 0.0073] olarak bulunmuştur. Bu dağılımların histogramları ve uygun Gaussian fitting fonksiyonları sırasıyla Şekil 4 ve Şekil 5’de gösterilmiştir. Bu ağlar için elde edilen kapanış değer sonuçları ise Şekil 6,Şekil 7 ve Şekil 8 ile verilmiştir.

12-Aug-2014_out_dist

Şekil 4 – SAP ağı için çıktı hata dağılımı.

12-Aug-2014_out_cloop_dist

Şekil 5 – Close-Loop NARX için çıktı hata dağılımı.

12-Aug-2014_outs

Şekil 6 – 2.1.2001 – 4.8.2014 tarihleri arası EUR/USD döviz verisi ve oluşturulan yapay sinir ağlarının tahmin sonuçları. Burada yeşil renkli veri SAP ağının eğitim seti için verdiği sonuçları gösterirken, mor renkli veri ise test verisi için verdiği sonuçları göstermektedir.

12-Aug-2014_outs_end

Şekil 7 – SAP ağı tahmin verisinin (mor) test verileri (açık mavi) ile karşılaştırılması. Dikkat edilirse, NARX sistemi y(t+1) tahmini yaptığı için en son noktada gerçek kur verisi (kırmızı) görülmektedir.

12-Aug-2014_outs_cloop_endŞekil 8 – Close-Loop NARX ağı tahmin verisinin (yeşil) gerçek veriler (kırmızı) ile karşılaştırılması.