English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Italiano
Ekonometrik EURUSD Bir Adım İlerisi Tahmini

Ekonometrik EURUSD Bir Adım İlerisi Tahmini

MetaTrader 4Ticaret sistemleri | 13 Ocak 2022, 16:59
100 0
СанСаныч Фоменко
СанСаныч Фоменко

Giriş

Makale, EViews yazılımının kullanılması ile EURUSD için bir adım ilerisi tahminine ve EViews'teki programlar ve MQL4'te geliştirilen bir Uzman Danışman aracılığıyla tahmin sonuçlarının daha fazla değerlendirilmesine odaklanır. Bu makale, önerileri herhangi bir ek açıklama yapılmaksızın kullanılacak "Gösterge İstatistiksel Parametrelerinin Analizi" makalesi üzerine kuruludur.


1. Bir Model Oluşturma

Önceki makale aşağıdaki regresyon denkleminin analizi ile sona ermiştir:

EURUSD = C(1)*EURUSD_HP(1) + C(2)*D(EURUSD_HP(1)) + C(3)*D(EURUSD_HP(2))

Bu denklem, ilk Kapanış fiyatı kotasyonlarının kademeli ayrıştırmasının uygulanmasının bir sonucudur. Bunun arkasındaki fikir, deterministik bir bileşenin ilk kotasyonlardan ayrılmasına ve ortaya çıkan artık değerin daha fazla analizine dayanmaktadır.

12 Eylül 2011'den 17 Eylül 2011'e kadar bir haftalık bir dönem boyunca çubuklarda EURUSD H1 için bir model oluşturmaya başlayalım.


1.1. İlk EURUSD kotasyonlarının analizi

Bir sonraki adımı planlamak için ilk EURUSD serisinin analiziyle başlıyoruz.

İlk olarak, EViews'te daha fazla analiz için kotasyonları içeren bir dosya oluşturalım. Bunun için, kotasyonları olan gerekli bir dosya oluşturmak için ilgili grafik üzerine yerleştirilmiş bir gösterge kullanıyorum.

Göstergenin betiği aşağıda gösterilmiştir ve bana göre yoruma gerek yoktur.

//+------------------------------------------------------------------+
//|                                                   Kotir_Out.mq4  |
//|   Quotes output indicator for EViews                             |
//|   Version of 29.08.2011                                          |
//+------------------------------------------------------------------+
//--- indicator in the main window
#property indicator_chart_window
//--- number of visible indicator buffers
#property indicator_buffers            1
//--- setting the indicator color
#property indicator_color1             Red      // Forecast      
//--- setting the line width
#property indicator_width1             2
//--- external parameters
extern   int      Number_Bars=100;     // Number of bars
extern   string   DateTime_begin    =  "2011.01.01 00:00";
extern   string   DateTime_end      =  "2011.01.01 00:00";
//--- global variables
//--- declaring buffers
double   Quotes[];         // Quotes not visible
int      Quotes_handle;    // Pointer to Quotes file
int      i;                // Counter in cycle
//--- names of files for exchange with EViews
string   fileQuotes;       // Quotes file name
//+------------------------------------------------------------------+
//|Indicator initialization function                                 |
//+------------------------------------------------------------------+
int init()
  {
//--- number of indicator buffers
   IndicatorBuffers(1);
//--- setting the drawing parameters
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,0);
   SetIndexDrawBegin(0,Number_Bars);

//--- binding the indicator number to the name
   SetIndexBuffer(0,Quotes);  // Index buffer

//--- initial buffer values
   SetIndexEmptyValue(0,0.0);
//--- indicator name
   IndicatorShortName("Forecast");
//--- generating names of files for exchange with EViews
   fileQuotes="kotir.txt";   // Quotes file name
   int       N_bars_begin   =  0;
   int       N_bars_end     =  0;

   datetime  var_DT_begin   =  0;
   datetime  var_DT_end     =  0;
   bool      exact          =  false;
//---
//--- creating quotes file for EViews operation
   Quotes_handle=FileOpen(fileQuotes,FILE_CSV|FILE_WRITE,',');
//--- abend exit
   if(Quotes_handle<1)
     {
      Print("Failed to create the file ",fileQuotes," Error #",GetLastError());
      return(0);
     }
   FileWrite(Quotes_handle,"DATE","kotir");  // Header
//---    
//--- calculating the number of bars for export
   var_DT_begin =  StrToTime(DateTime_begin);
   var_DT_end   =  StrToTime(DateTime_end);

   if(var_DT_begin!=var_DT_end)
     {
      N_bars_begin=iBarShift(NULL,Period(),var_DT_begin,exact);
      N_bars_end=iBarShift(NULL,Period(),var_DT_end,exact);
      Number_Bars=N_bars_begin-N_bars_end;

      Print("Number_Bars = ",Number_Bars,
            ", N_bars_end = ",N_bars_end,
            ", N_bars_begin = ",N_bars_begin);

      for(i=N_bars_begin; i>=N_bars_end; i--)
        {
         FileWrite(Quotes_handle,
                   TimeToStr(iTime(Symbol(),Period(),i)),
                   iOpen(Symbol(),Period(),i));
        }
     }
   else
     {
      for(i=Number_Bars-1; i>=0; i--)
        {
         FileWrite(Quotes_handle,
                   TimeToStr(iTime(Symbol(),Period(),i)),
                   iOpen(Symbol(),Period(),i));
        }
     }
// --- writing quotes
   FileWrite(Quotes_handle, "Forecast ", 0);   // Forecast area
   FileClose(Quotes_handle);                  // Close quotes file
   Comment("Created quotes file with the number of bars =",Number_Bars+1);
//--- end of Init() section
   return(0);
  }
//+------------------------------------------------------------------+
//| Indicator start function                                         |
//+------------------------------------------------------------------+
int start()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//--- remove the message from the display
   Comment("                                                     ");
//----
   return(0);
  }
//+------------------------------------------------------------------+

Yukarıda belirtilen tarihlerin belirlenmesinin ardından, 119 çizgiden oluşan kotasyonlar dosyasını elde ettim, son satır "Tahmin,0" вЂ, gelecek tahmininin olacağı yerdir. Açılış fiyatları kullandığımı unutmayın. Ayrıca, dosyadaki kotasyonların MQL4'ün tersi sırada, yani programlama dillerinde olduğu gibi, düzenlendiğine dikkat edin.

Gösterge, açık bir şekilde \expert\files\ terminal klasöründe quote.txt dosyasını oluşturur. Aşağıda incelenecek olan Uzman Danışman, DEMO veya REAL modlarında çalışırken kotasyon dosyasını belirtilen klasörden alacaktır; ancak test modunda kullanıldığında, bu dosya \tester\files\ klasöründe bulunacaktır, bu nedenle quotes.txt dosyasını terminalin \tester\files\ klasörüne manuel olarak yerleştiriyorum.

İşte grafik burada:


Şekil 1. EURUSD H1 kotasyonları grafiği


Bir veya çok sayıda trend gözlemleyebiliriz, ancak amacımız alım satım sisteminin gelecekteki kararlılığını tahmin etmektir. Bu nedenle, ilk EURUSD H1 kotasyonlarının sabitliği için bir analiz yapacağız.

Tanımlayıcı istatistikleri hesaplayalım:



Şekil 2. Tanımlayıcı istatistikler


Tanımlayıcı istatistikler aşağıdakileri belirtir:

  • Sağa bir çarpıklık vardır (0,244950'miz varken 0 olmalıdır);
  • İlk kotasyonlarımızın normal dağılma olasılığı %9,64'tür.

Görsel olarak, histogramın normal dağılımla kesinlikle hiçbir ilgisi yoktur, ancak %9,64 olasılığı bazı yanılsamalara neden olur.

Bunu teoriyle karşılaştırarak gösterelim:


Şekil 3. Teorik normal dağılım eğrisine göre EURUSD histogramı


EURUSD_Рќ1 kotasyonların normal dağılımdan uzak olduğunu görsel olarak tespit edebiliriz.

Bununla birlikte, kotasyonlarda deterministik bir bileşenin varlığını belirten trendi görebildiğimiz için, böyle bir bileşenin varlığı rastgele değişkenin (kotasyonlar) istatistiksel özelliklerini tamamen bozabildiğinden, bir sonuca varmak için henüz erkendir.

Kotasyonların otokorelasyon fonksiyonunu hesaplayalım.

Bu, aşağıdaki şekilde görünür:


Şekil 4. EURUSD_H1 kotasyonlarının otokorelasyon fonksiyonu


Grafiği çizerken, gecikmeler arasında korelasyon eksikliği olasılığını elde ettik; bu, ilk 16 gecikme için sıfırdan farklıdır. Grafik ve olasılık, EURUSD_H1'deki gecikmeler arasında bir korelasyon olduğunu açıkça göstermektedir, diğer bir deyişle söz konusu kotasyonlar deterministik bir bileşen içermektedir.

Deterministik bileşen ilk kotasyonlardan çıkarılırsa, artık değer hangi istatistiksel özelliklere sahip olacaktır?

Bunun için, ilk kotasyonların ilk farkıyla (kalan) çalışmanın daha ümit verici olup olmadığını görmek için bir birim kök testi uygulayacağız.


Tablo 1. Birim kök testi

Yukarıdaki test şunları gösterir:

  • İlk kotasyonların birim köke sahip olma olasılığı (ilk fark normal dağıtılır) %41'dir;
  • DW (Durbin-Watson) istatistiği 2,2'nin biraz üzerindedir; bu da, ilk farkın normal dağıtıldığını gösterir.
Sonuç: fiyat serisinin trendini düşürmek ve ardından trend düşüşünden kalanı analiz etmek mantıklı olacaktır.


1.2. Düzeltme

Hodrick-Prescott filtresi, önceki makaleye benzer şekilde, EURUSD kotasyonlarından deterministik bileşeni ayırmak için kullanılacaktır.

Seri adlarındaki "10" sayısı, Hodrick-Prescott filtresindeki lambda parametresini belirtir. Bu aracın temel aldığı teoriye dayanarak, lambda değeri aşağıdaki gibi görünen sonuç için büyük önem taşımaktadır:



Şekil 5. Hodrick-Prescott filtresi kullanılarak düzeltme sonucu

EViews notasyonlarında aşağıdaki gibi görünen önceki makaledeki denklemi kullanacağız:

kotasyonlar = C(1) * HP(-1) + C(2) * D(HP(-1)) + C(3)*D(HP(-2))

yani, bu denklemde, deterministik bileşeni ve gürültüyü değerlendirmeye alırız; gürültüden kastımız, ilk kotasyonlar ile bunların deterministik bileşeni arasındaki farktır.

İlk kotasyonların mevcut modelinin analizini takiben, aşağıdaki regresyon denklemi parametrelerini elde ederiz:


Tablo 2. Regresyon denklemi tahmini


РќР 1_D(-1) kesinlikle aşırı derecede rahatsız edici ise, katsayının sıfır olma olasılığı %39'dur. Vereceğimiz örnek gösterim amaçlı olduğu için her şeyi olduğu gibi bırakacağız.

Regresyon denklemi tahminlerini (denklem katsayılarının tahmini) elde ettikten sonra, bir adım ilerisi tahminine geçebiliriz.

Sonuç aşağıdaki gibidir:



Şekil 6. EURUSD bir adım ilerisi tahmini (Pazartesi ÖÖ 12'de)


1.3. Regresyon denkleminden artık değerleri tahmin etme

Regresyon denkleminden artık değerin sınırlı bir analizini yapalım. Bu artık değer, regresyon denklemi kullanılarak hesaplanan değerlerin ilk EURUSD kotasyonlarından çıkarılmasıyla elde edilmiştir.

Bu artık değerin özelliklerinin, alım satım sisteminin gelecekteki istikrarını tahmin etmemize yardımcı olacağını hatırlatmama izin verin.

İlk olarak, artık değerdeki gecikmeler arasındaki korelasyonların analizi için bir test çalıştıracağız:



Şekil 7. Artık değerin otokorelasyon fonksiyonu


Gecikmeler arasındaki korelasyonlar, ne yazık ki halen mevcuttur ve bunların varlığı istatistiksel analize dair şüphe uyandırmaktadır.

Yapacağımız bir sonraki test artık değerlerin normallik testidir.

Sonuç aşağıdaki şekilde görünür:


Şekil 8. Regresyon denkleminden artık değerin histogramı


Artık değerin normal dağılma olasılığı %25,57'dir ve bu oldukça büyük bir sayıdır.

Artık değerin değişen varyansı için testler yapalım.

Sonuçlar aşağıdaki gibidir:

  • GARCH türünde değişen varyans olasılığı %16,08'dir.
  • White'ın genel değişen varyansının bulunmaması olasılığı %0,0066'dır.
Sonuçlar: Farklılaşmayı takiben, normal dağılma olasılığı %25 ve korelasyonlardan arınmış olma olasılığı sıfıra yakın bir artık değer elde ettik ve bunun sonucunda White'ın genel değişen varyansının bulunmadığı hipotezini kesin olarak reddedebiliriz. Bu ise, modelimizin oldukça ham olduğunu ve daha sonra değişen varyans için test edilecek gecikmeler arasındaki korelasyonları bir kez daha ortadan kaldırmamız ve bu değişen varyansı mevcut olması durumunda modellememiz gerektiğini belirtir.

Amacım, tahmine dayalı alım satım sistemi gelişimini göstermek olduğundan, yatırımcıların ilgisini çeken özellikleri - kâr veya zarar - elde etmek için hesaplamalara devam edeceğim.


2. Tahmin Sonuçlarını Öngörme

Alım satım yaparken, farklı modellerin karşılaştırılması için yardımcı bir analiz aracı olarak değerlendirilmesi gereken tahmin hatasından ziyade kârla ilgileniriz, bundan daha fazlasıyla değil.

Tahmin sonuçlarını öngörmek için EViews dilinde bir program yazılmıştır. Bu, EURUSD kotasyonlarının fiili olarak artan hareketlerini tahmin edilenler ile karşılaştırır. Bu artışlar örtüşürse kâr vardır; örtüşmezse zarar vardır. Ayrıca, tahmin edilen artışlar ile örtüşen tüm artışların toplamını temsil eden kârı ve ilgili zararı hesaplarız.

Kâr-zarar oranı kâr faktörü olarak belirtilir. Daha sonra kârlı ve kârsız artışların oranını (kâr/zarar alım satım oranı) hesaplarız. Ardışık zarar alım satım sayısı ve ardışık zarar alım satımlarındaki zararın kâra oranı (kurtarma faktörü) da hesaplanır.

Alım satım sistemi açısından modelleme sonuçlarının tahmini için EViews dilindeki program, ana program ve iki alt yordamdan oluşur.

Ana (baş) program aşağıdaki gibidir:

' 
' One-step-ahead forecasting program
' Version of 26.09.2011 
'-----------------------------------------------
 include    sub_profit_factor
 include    sub_model_2
'
' 1. Create an EViews work file under the name МТ4 
'
 %path   = "C:\Program Files\BCS Trade Station\tester\files"
 cd      %path

 if @fileexist("work.wf1") = 0  then
  wfcreate(wf  = work)  u 510
 else
  wfopen   work
 endif
'
' Reads quotes from files
 read(t = txt)   kotir.txt date $ kotir
'
' Number of observations in the series without NA
 !number   = @obs(kotir)
 smpl     1  !number  - 1


 genr  trend    = NA        ' Trend = kotir_f(i) - kotir(i-1)
 genr  kotir_d  = d(kotir)  ' One-step increment in the price movement  - d(kotir)
'
 
' Calculate the model
 call  sub_model_2
'
' Calculate the profit table
 call sub_profit_factor

' Generate a file of results
 genr result   = 0
'
' Fill in the results
 result(1)  = kotir_f(!number)    ' One-step-ahead forecast
 result(2)  = kotir_f_se(!number) ' One-step-ahead forecast error
 result(3)  = trend(!number - 1)  ' Direction of the forecast
'-----------------------------------------------
' Return the result to МТ4
'
 smpl      1  10
 write(t=txt,na=0,d=c,dates)  EViewsForecast.txt   result

'-----------------End of program --------------
 smpl      1  !number
 save       work 
 close      @all
 exit
'
'-----------------------------------------------

Ana programların sayısının, modelleri içeren alt yordamların sayısına eşit olduğu varsayılır (aşağıya bakınız); bu, işin basitleştirilmesi amacıyla yapılır.

Modeldeki değişiklik, model için alt yordam adındaki değişiklik ile ilgili olarak ana programın iki satırında değişiklik yapılmasını gerektirir.

Modeli içeren alt yordam (regresyon denklemi):

subroutine  sub_model_2

  cd
  wfselect             work
  smpl          1    !number    -  1
' Smoothing the 1st level using НР filter quote with the first lambda
' and generating two files:  
'      hp1     -  smoothed file
'      p1_d    -   file of the residual
  hpf(lambda    =  10)   kotir hp1   @hp1_d
'
'  4. Estimating regression eq02 that uses the following series:
'        hp1  
'        hp1_d
  equation eq1.ls   kotir   hp1(-1)   hp1_d(-1) hp1_d(-2)


'  
'  Extending the sample to include the forecast area
  smpl              1 !number
'
'  Performing a one-step-ahead forecast and generating output series:
'    kotir_f     -  forecast
'    kotir_f_se  -  forecast error 
  fit(p)            kotir_f   kotir_f_se

  save              work

endsub

Alt yordamların sayısı modellerin sayısına eşit olacaktır.

Bir başka model için alt yordamın adı ve doğal olarak ana programdaki adlar değiştirilecektir.

Model için kâr/zarar parametrelerini hesaplayan alt yordam:

' Subroutine for estimation of the forecast results
' Version of 27.09.2011 
' ----------------------------------------------------------------------------
' Comparing the forecast increment with the quote increment,
' the program calculates: 
'  profit factor with regard to increments;
'   profitability of the equation in the number of observations
'  recovery factor as a ratio of profit in pips to maximal drawdown
' ----------------------------------------------------------------------------
subroutine sub_profit_factor

' Local variables
   !profit = 0          ' Accumulated profit
   !lost = 0            ' Accumulated loss 
   !profit_factor = 0   ' Profit factor
   !i = 1               ' Work index
   !n_profit = 0        ' Number of profit trades
   !n_lost = 0          ' Number of loss trades
   !n_p_l = 0           '
   !pr = 0              '  Absence of consecutive losses
   !prosadka = 0        ' Drawdown - accumulation of consecutive losses
   !tek_prosadka = 0    ' Current drawdown
   !tek_pr = 0          '  Current number of loss trades

 cd
 wfselect       work
 smpl        1   !number

' Calculate the trend on each bar
 for  !i  =  1  to  !number - 1
  trend(!i) = kotir_f(!i + 1) - kotir(!i)
 next

'  Calculate profit if the forecast has been reached
 for  !i      =  1   to  !number - 1
  if  trend(!i) * kotir_d(!i) > 0   then    ' Does the trend coincide with increment? - Yes
   !profit   = !profit + @abs(kotir_d(!i))  '  Profit accumulation
   !n_profit = !n_profit +1                 '  Profit trades accumulation
   !tek_pr   = 0                            '  Resetting the current consecutive losses at zero
   !tek_prosadka  =   0                     ' Resetting the current drawdown at zero
  endif
  if  trend(!i) * kotir_d(!i) <  0   then   ' Does the trend coincide with increment? - No
   !lost   = !lost + @abs(kotir_d(!i))      ' Loss accumulation
   !n_lost = !n_lost + 1                    ' Loss trades accumulation

   !tek_pr = !tek_pr + 1                              ' Increase the number of current loss trades
   !tek_prosadka = !tek_prosadka + @abs(kotir_d(!i))  ' Increase the current drawdown
  endif

  '  Select the maximum loss trades
  if  !tek_pr > !pr then
   !pr  = !tek_pr
  endif

  ' Select the maximal drawdown
  if  !tek_prosadka  > !prosadka  then
   !prosadka  = !tek_prosadka
  endif
 next

'   Blocking division by zero
 if !lost = 0 then                 ' No loss trades
  !profit_factor = 1000
 else
  !profit_factor = !profit / !lost  ' Profit factor
 endif 
 
 if !n_lost = 0  then
  !n_p_l = !number      '  if loss trades are zero, 
                        '  profit trades are equal to the number of observations
 else
  !n_p_l =  !n_profit / !n_lost
 endif

 if !prosadka = 0  then
  !factor_reset = 1000
 else
  !factor_reset = !profit / !prosadka
 endif

'  Create a table of results if it does not exist
 if @isobject("tab_profit") = 0    then
  table(3,12)    tab_profit
  tab_profit.title  One-step-ahead forecast after the end of sample with profitability beyond the sample

' Make the table heading
  tab_profit.setfillcolor(1) yellow 
  tab_profit.setfillcolor(2) yellow
 
' Set the column characteristics
' 1st column
  setcolwidth(tab_profit,1,15)
  tab_profit(1,1)   = "Sample"
  tab_profit(2,1)   = "beginning"

' 2nd column
  setcolwidth(tab_profit,2,15)
  tab_profit(1,2)   = "Sample"
  tab_profit(2,2)   = "end"

' 3rd column
  setcolwidth(tab_profit,3,7)
   tab_profit(1,3)   = "Fact as of"
  tab_profit(2,3)   = "end "

' 4th column
  setcolwidth(tab_profit,4,7)
  tab_profit(1,4)   = "One-step"
  tab_profit(2,4)   = "forecast"

' 5th column
  setcolwidth(tab_profit,5,10)
  tab_profit(1,5)   = "Forecast"
  tab_profit(2,5)   = "error"

' 6th column
  setcolwidth(tab_profit,6,8)
  tab_profit(1,6)    =  "Profit of the"
  tab_profit(2,6)    =  "sample"

' 7th column
  setcolwidth(tab_profit,7,8)
  tab_profit(1,7)    =  "Loss of the"
  tab_profit(2,7)    =  "sample"

' 8th column
  setcolwidth(tab_profit,8,10)
  tab_profit(1,8)   = "Maximal"
  tab_profit(2,8)   = "drawdown"

' 9th column
  setcolwidth(tab_profit,9,8)
  tab_profit(1,9)   = "Amount of"
  tab_profit(2,9)    =  "loss"

' 10th column
  setcolwidth(tab_profit,10,7)
  tab_profit(1,10)    =  "P / F in"
  tab_profit(2,10)    =  "pips"

' 11th column
  setcolwidth(tab_profit,11,8)
  tab_profit(1,11)    =  "P / F in"
  tab_profit(2,11)    =  "observations"


' 12th column
  setcolwidth(tab_profit,12,8)
  tab_profit(1,12)   = "Recovery"
  tab_profit(2,12)   = "factor"
  tab_profit.setlines(R1C1:R2C12) +o +v 
 endif

 tab_profit.insertrow(3) 1
 tab_profit.setlines(R3C1:R3C12) +a +v +i

' Set the table output format 
 tab_profit.setformat(R3C1:R3C1)   c.16
 tab_profit.setformat(R3C2:R3C2)   c.16
 tab_profit.setformat(R3C3:R3C3)   f.4
 tab_profit.setformat(R3C4:R3C4)   f.4
 tab_profit.setformat(R3C5:R3C5)   f.4
 tab_profit.setformat(R3C6:R3C6)   f.4
 tab_profit.setformat(R3C7:R3C7)   f.4
 tab_profit.setformat(R3C8:R3C8)   f.4
 tab_profit.setformat(R3C9:R3C9)   f.0
 tab_profit.setformat(R3C10:R3C10) f.2
 tab_profit.setformat(R3C11:R3C11)  f.2
 tab_profit.setformat(R3C12:R3C12) f.2

' Fill the table with the results
 tab_profit(3 ,1) = date(1)
 tab_profit(3 ,2) = date(!number - 1)
 tab_profit(3 ,3) = kotir(!number - 1) 
 tab_profit(3 ,4) = kotir_f(!number - 1) 
 tab_profit(3 ,5) = kotir_f_se(!number - 1) 

 tab_profit(3 ,6) =  !profit
 tab_profit(3 ,7) =  !lost
 tab_profit(3 ,8) = !prosadka
 tab_profit(3 ,9) = !pr
 tab_profit(3,10) =  !profit_factor
 tab_profit(3,11) = !n_p_l
 tab_profit(3,12) = !factor_reset


' Save the table in the work file
 save        work
 show        tab_profit
 
endsub

Denklemimiz için EViews'te yer alan yukarıdaki basit programların sonuçları aşağıdaki gibidir:


Tablo 3. EViews'teki kârlılık tahmin sonuçları

Sonuç talihsizdir: Zarar kârdan üç kat daha fazladır. Ve bu, 19 piplik iyimser tahmin hatası değerine rağmendir. Modelin iyileştirilmesi gerekmektedir, ancak bunu makalede yapmayacağım; bunun yerine kârlı bir modelin geliştirilmesinde yer almak isteyen herkesle birlikte forumda bu konuda çalışmaya devam edeceğim.

Şimdiye kadar EURUSD_H1 kotasyonları EViews araçları kullanılarak analiz edilmiştir.

Ancak, tahmin sonuçlarını MetaTrader 4 terminalinin bir Uzman Danışmanında uygulamak çok cazip görünmektedir.

Şimdi EViews ve MetaTrader 4 arasında veri alışverişini ele alalım ve ardından bir Uzman Danışman kullanarak sonuçları MetaTrader 4'te bir kez daha analiz edelim.


3. EViews ve MetaTrader 4 Arasında Veri Alışverişi


Bu makaledeki EViews ve MetaTrader 4 arasında veri alışverişi .txt dosyaları kullanılarak gerçekleştirilir.

Değişim algoritması aşağıdaki gibi görünür:

  1. MetaTrader 4 Uzman Danışman:

    • Kotasyon dosyasını oluşturur;
    • EViews'i başlatır.
  2. EViews:

    • Uzman Danışmandan gelen bir komuta yanıt olarak çalışmaya başlar;
    • Uzman Danışmandan elde edilen quotes.txt kotasyonlar dosyası için bir tahmin hesaplama programı çalıştırır;
    • Tahmin sonuçlarını EViewsForecast.txt dosyasına kaydeder.
  3. MetaTrader 4 Uzman Danışman:

    • EViews'te sonuçların oluşturulması tamamlandıktan sonra tahmin dosyasını okur;
    • Bir pozisyona girmeye veya pozisyondan çıkmaya karar verir.

Dosyaların konumu hakkında birkaç şey.

MetaTrader 4 terminalinin dosyaları standart klasörlerine yerleştirilir: bir Uzman Danışman \expert klasörüne ve gösterge \expert\indicators klasörüne (test için gerekli değildir). Bunların hepsi terminal dizininde bulunur. Uzman Danışman diğer Uzman Danışmanlar ile birlikte yüklenir.

Uzman Danışman ile EViews arasında değiş tokuş edilecek dosyalar, Uzman Danışmanın çalışması sırasında \expert\files içinde ve Uzman Danışman test edilirken \tester\files klasörü içinde bulunur.

Uzman Danışman tarafından EViews'e gönderilen dosya, seçilen sembol ve zaman aralığı ne olursa olsun quotes.txt olarak adlandırılır. Bu yüzden, Uzman Danışman herhangi bir sembole eklenebilirken tahmin adımı, Uzman Danışmanın parametrelerinde başlangıçta belirtilecektir.

EViews, EVIEWSFORECAST.txt adlı dosyayı döndürür. EViews çalışma dosyası worf.wf1 terminal dizinine yerleştirilir.

Makaleye eklenen EViews programlarında belirtilen dizinler, bilgisayarlarınızda bulunan dizinler ile büyük olasılıkla eşleşmeyecektir. Bu programları disk kök klasörüne kurdum. EViews'te, varsayılan dizini üzerinde bir işleyici elde etmeniz veya kendi dizinlerinizi belirtmeniz gerekecektir (EViews tarafından kullanılan varsayılan dizinleri kullanmadım).


4. MQL4 Uzman Danışman

Uzman Danışman çalışma algoritması azami ölçüde basitleştirilmiştir:

  • Uzman Danışman herhangi bir sembolün M1 zaman aralığına eklenir;
  • Uzman Danışmanın parametrelerinde dakika cinsinden bir tahmin adımı belirtilir. Varsayılan tahmin adımı 60 dakikadır (Рќ1). Test grafiği daha uzun bir zaman aralığına geçerken sıkıştırılabildiğinden, Uzman Danışmanı M1'e ekleyerek test sonuçlarını daha iyi görselleştirme imkanı elde edersiniz;
  • EViews'te tahminde bulunmak amacıyla, Uzman Danışman, Uzman Danışmanın parametrelerinde belirtilen çubuk sayısına (gözlemler) sahip quotes.txt dosyasını oluşturur;
  • Tahmin mevcut fiyattan büyükse, bir uzun (long) pozisyon açılır;
  • Tahmin, mevcut fiyattan düşükse, bir kısa (short) pozisyon açılır;
  • Uzman Danışman (bir pozisyon eklemeden) birden fazla pozisyon açmaz;
  • Tahminden bağımsız olarak önceki pozisyonu kapatır ve yenisini açar. Pozisyon açma algoritması EViews'te programdaki kâr/zarar hesaplama algoritması ile örtüşmektedir;
  • Açılacak pozisyonun hacmi 0,1 lottur;
  • Zarar durdur ve kâr al emirleri kullanılmaz (Uzman Danışmanın tahmin hata aralıklarına stop yerleştirmek için bir kodu olmasına rağmen bunlar 100 pip olarak ayarlanır);
  • Bir standart tahmin hatası aralığında tahmin değerini ve iki çizgiyi gösteren bir grafik çizilir. Test cihazından elde edilen grafiği Uzman Danışmanın eklendiği zamandan daha kısa zaman aralıklarında görüntülerken tahmin satırının geriye kaydırıldığını unutmayın, yani çizilen tahmin, mevcut fiyatın dönem sonunda ulaşacağı tahmindir.

Uzman Danışman test cihazındaki M1 zaman aralığına eklenir, grafik M5'te daha iyi görüntülenir.

EURUSD alım satımı için MQL4 Uzman Danışmanın kaynak kodu, hacmi nedeniyle (yaklaşık 600 satır) bu makalede verilmemiştir. Makaleye eklenmiş EViews_MetaTrader_4.zip arşivinde EvewsMT4.mq4 içinde bulunabilir.


5. Uzman Danışman Test Sonuçları

Test cihazındaki Uzman Danışmanı M1 zaman aralığında çalıştırın.

Giriş parametreleri aşağıda gösterilmiştir.



Şekil 9. Uzman Danışman için Giriş Parametreleri


Test grafiğinin bir kısmı aşağıda gösterilmiştir:



Şekil 10. Uzman Danışmanın görselleştirme modunda test edilmesi


Bir saatlik (adım) ilerisi tahminlerini kullanan Uzman Danışmanın test sonuçları aşağıda gösterilmiştir.

Strateji Test Cihazı Raporu

EvewsMT4

Real (Build 406)

Sembol

EURUSD (Euro ila ABD Doları)

Zaman Aralığı

1 Dakika (M1) 2011.09.12 00:00 - 2011.09.16 21:59 (2011.09.12 - 2011.09.17)

Model

Her tik (mevcut olan en kısa zaman aralıklarına dayalı en doğru mod)

Parametreler

StepForecast=60; NumberBars=101; MultSE=2;






Geçmişteki çubuklar

7948

Modellenen tikler

79777

Modelleme kalitesi

%25,00

Yanlış eşleştirilmiş grafik hataları

0






İlk para yatırma

10000,00





Net kâr

-202,10

Brüt kâr

940,72

Brüt zarar

-1142,82

Kâr faktörü

0,82

Beklenen kazanç

-1,73



Mutlak düşüş

326,15

Maksimum düşüş

456,15 (%4,50)

Göreceli düşüş

%4,50 (456,15)


Toplam alım satım

117

Kısa pozisyonlar (% kazanç)

58 (%51,72)

Uzun pozisyonlar (% kazanç)

59 (%45,76)


Kâr alım satımları (toplamın %'si)

57 (%48,72)

Zarar alım satımları (toplamın %'si)

60 (%51,28)

En büyük

kâr alım satımı

100,00

zarar alım satımı

-79,00

Ortalama

kâr alım satımı

16,50

zarar alım satımı

-19,05

Maksimum

ardışık kazançlar (para cinsinden kâr)

6 (105,00)

ardışık zararlar (para cinsinden zarar)

8 (-162,00)

Maksimum

ardışık kâr (sayı)

166,00 (5)

ardışık zarar (sayı)

-162,00 (8)

Ortalama

ardışık kazançlar

2

ardışık zararlar

2




Sayı

Zaman

Tür

Emir

Hacim

Fiyat

S / L

T / P

Kâr

Bakiye

1

2011.09.12 01:00

satış

1

0,10

1,3609

1,3711

1,3509


2

2011.09.12 02:00

kapanış

1

0,10

1,3584

1,3711

1,3509

25,00

10025,00


Şekil 11. Uzman Danışman Test Sonuçları


Sonuçlar EViews'te elde edilenlerden daha iyidir.

EViews ve test cihazındaki sonuçların hesaplanmasının giriş verileri yönünden farklı olduğunu unutmayın. EViews'te 118 çubuk kullanılır ve bir adım ilerisi tahmini zaman periyodunun sonuna kademeli olarak hareket ettiğinden tahmin, soldaki 3 çubuktan başlayarak hesaplanır ve regresyon denkleminin tahmininde kullanılan çubukların sayısı artırılır.

Uzman Danışman 118 çubukluk pencereyi kaydırır ve 119. çubuktaki tahmini hesaplar, yani EViews pencereyi örnek dahilinde genişlettiğinden ve Uzman Danışman sabit genişlikteki pencereyi kaydırdığından regresyon denklemi her zaman 118 çubuk olarak tahmin edilir.

Uzman Danışman, genişletilmiş bir model tahmin tablosu oluşturmamıza yardımcı olur. Yukarıdaki tablo tek çizgiden oluşsa da, tahminin üretildiği her tarih için artık 117 çizgi içermektedir.

Tablo aşağıdaki gibidir:

Örnek
başlangıcı
Örnek
bitişi
Sondaki
durum
Tek adımlı
tahmin
Tahmin
hatası
Örneğin
karı
Örneğin
zararı
Maksimum
düşüş
Zarar
tutarı
Pip'lerdeki
P/F
Gözlemlerdeki P/F
Kurtarma faktörü
12.09.2011 0:00 16.09.2011 21:00 1,3791 1,3788 0,0019 0,0581 0,1531 0,0245 7 0,38 0,67 2,37
12.09.2011 0:00 16.09.2011 21:00 1,3791 1,3788 0,0019 0,0581 0,1531 0,0245 7 0,38 0,67 2,37
09.09.2011 21:00 16.09.2011 20:00 1,3784 1,3793 0,0019 0,0569 0,1619 0,0245 7 0,35 0,64 2,32
09.09.2011 20:00 16.09.2011 19:00 1,3794 1,3796 0,002 0,0596 0,1609 0,0245 7 0,37 0,67 2,43
09.09.2011 19:00 16.09.2011 18:00 1,3783 1,3782 0,0021 0,0642 0,1554 0,0245 7 0,41 0,69 2,62
09.09.2011 18:00 16.09.2011 17:00 1,3783 1,3806 0,002 0,0616 0,1606 0,0245 7 0,38 0,68 2,51
09.09.2011 17:00 16.09.2011 16:00 1,3829 1,3806 0,002 0,0642 0,1586 0,0245 7 0,4 0,71 2,62
09.09.2011 16:00 16.09.2011 15:00 1,3788 1,3793 0,002 0,0626 0,1565 0,0245 7 0,4 0,71 2,56
09.09.2011 15:00 16.09.2011 14:00 1,3798 1,38 0,0021 0,063 0,1633 0,0245 7 0,39 0,73 2,57
09.09.2011 14:00 16.09.2011 13:00 1,3808 1,381 0,0022 0,062 0,1656 0,0318 9 0,37 0,71 1,95
09.09.2011 13:00 16.09.2011 12:00 1,3809 1,3813 0,0021 0,0602 0,1679 0,0318 9 0,36 0,66 1,89
09.09.2011 12:00 16.09.2011 11:00 1,3792 1,3808 0,0021 0,0666 0,1613 0,0245 7 0,41 0,73 2,72
09.09.2011 11:00 16.09.2011 10:00 1,3795 1,3826 0,0021 0,0666 0,167 0,0245 7 0,4 0,73 2,72
09.09.2011 10:00 16.09.2011 9:00 1,3838 1,3847 0,0022 0,0652 0,1668 0,0318 9 0,39 0,71 2,05
09.09.2011 9:00 16.09.2011 8:00 1,3856 1,3854 0,0022 0,0675 0,165 0,0318 9 0,41 0,73 2,12
09.09.2011 8:00 16.09.2011 7:00 1,386 1,3856 0,0022 0,0671 0,1652 0,0318 9 0,41 0,71 2,11
09.09.2011 7:00 16.09.2011 6:00 1,3861 1,3857 0,0022 0,067 0,1663 0,0318 9 0,4 0,68 2,11
09.09.2011 6:00 16.09.2011 5:00 1,3852 1,3855 0,0022 0,0655 0,1681 0,0318 9 0,39 0,63 2,06
09.09.2011 5:00 16.09.2011 4:00 1,3844 1,3851 0,0022 0,0662 0,1674 0,0318 9 0,4 0,66 2,08
09.09.2011 4:00 16.09.2011 3:00 1,3848 1,3869 0,0022 0,0654 0,1683 0,0318 9 0,39 0,68 2,06
09.09.2011 3:00 16.09.2011 2:00 1,3879 1,3875 0,0022 0,0694 0,1624 0,0318 9 0,43 0,73 2,18
09.09.2011 2:00 16.09.2011 1:00 1,3865 1,3879 0,0022 0,0698 0,1634 0,0318 9 0,43 0,71 2,19
09.09.2011 1:00 16.09.2011 0:00 1,3881 1,3883 0,0022 0,0726 0,1604 0,0245 7 0,45 0,76 2,96
09.09.2011 0:00 15.09.2011 23:00 1,3876 1,3882 0,0022 0,0721 0,162 0,0245 7 0,45 0,73 2,94
08.09.2011 23:00 15.09.2011 22:00 1,3885 1,3884 0,0022 0,0718 0,1614 0,0245 7 0,44 0,72 2,93
08.09.2011 22:00 15.09.2011 21:00 1,3888 1,3883 0,0022 0,0737 0,1597 0,0245 7 0,46 0,77 3,01
08.09.2011 21:00 15.09.2011 20:00 1,3885 1,3874 0,0022 0,0729 0,1604 0,0318 9 0,45 0,74 2,29
08.09.2011 20:00 15.09.2011 19:00 1,3867 1,386 0,0022 0,0721 0,1604 0,0318 9 0,45 0,74 2,27
08.09.2011 19:00 15.09.2011 18:00 1,3856 1,3834 0,0022 0,0721 0,1628 0,0318 9 0,44 0,72 2,27
08.09.2011 18:00 15.09.2011 17:00 1,385 1,3861 0,0023 0,0702 0,1651 0,0318 9 0,43 0,72 2,21
08.09.2011 17:00 15.09.2011 16:00 1,3885 1,3824 0,0023 0,0739 0,1638 0,0245 7 0,45 0,72 3,02
08.09.2011 16:00 15.09.2011 15:00 1,3773 1,3784 0,0021 0,0719 0,1556 0,0318 9 0,46 0,72 2,26
08.09.2011 15:00 15.09.2011 14:00 1,3795 1,3794 0,0021 0,0726 0,1537 0,0318 9 0,47 0,72 2,28
08.09.2011 14:00 15.09.2011 13:00 1,3814 1,3792 0,0021 0,0736 0,1564 0,0318 9 0,47 0,74 2,31
08.09.2011 13:00 15.09.2011 12:00 1,3802 1,3764 0,0021 0,0712 0,159 0,0318 9 0,45 0,74 2,24
08.09.2011 12:00 15.09.2011 11:00 1,3769 1,3753 0,0021 0,0719 0,1568 0,0318 9 0,46 0,72 2,26
08.09.2011 11:00 15.09.2011 10:00 1,3765 1,3732 0,0021 0,0721 0,1564 0,0318 9 0,46 0,74 2,27
08.09.2011 10:00 15.09.2011 9:00 1,3722 1,3718 0,0021 0,0716 0,1538 0,0318 9 0,47 0,72 2,25
08.09.2011 8:00 15.09.2011 7:00 1,371 1,3716 0,0021 0,0729 0,1542 0,0318 9 0,47 0,74 2,29
08.09.2011 8:00 15.09.2011 7:00 1,371 1,3716 0,0021 0,0729 0,1542 0,0318 9 0,47 0,74 2,29
08.09.2011 7:00 15.09.2011 6:00 1,3723 1,3727 0,0021 0,0716 0,1547 0,0318 9 0,46 0,72 2,25
08.09.2011 6:00 15.09.2011 5:00 1,3726 1,3725 0,0021 0,0711 0,1564 0,0318 9 0,45 0,69 2,24
08.09.2011 5:00 15.09.2011 4:00 1,3719 1,3731 0,0021 0,0711 0,1563 0,0318 9 0,45 0,69 2,24
08.09.2011 4:00 15.09.2011 3:00 1,374 1,3744 0,0021 0,0713 0,1547 0,0318 9 0,46 0,69 2,24
08.09.2011 3:00 15.09.2011 2:00 1,3748 1,3747 0,0021 0,0705 0,1547 0,0318 9 0,46 0,68 2,22
08.09.2011 2:00 15.09.2011 1:00 1,3743 1,3742 0,0021 0,0715 0,1544 0,0318 9 0,46 0,7 2,25
08.09.2011 1:00 15.09.2011 0:00 1,3738 1,3743 0,0021 0,0714 0,1544 0,0318 9 0,46 0,7 2,25
08.09.2011 0:00 14.09.2011 23:00 1,375 1,3743 0,0021 0,0724 0,1532 0,0318 9 0,47 0,73 2,28
07.09.2011 23:00 14.09.2011 22:00 1,375 1,3736 0,0021 0,0727 0,1532 0,0318 9 0,47 0,74 2,29
07.09.2011 22:00 14.09.2011 21:00 1,3751 1,3735 0,0021 0,0734 0,1532 0,0318 9 0,48 0,74 2,31
07.09.2011 21:00 14.09.2011 20:00 1,3748 1,3716 0,0021 0,0722 0,1555 0,0318 9 0,46 0,72 2,27
07.09.2011 20:00 14.09.2011 19:00 1,3714 1,3712 0,0021 0,0812 0,145 0,0189 6 0,56 0,74 4,3
07.09.2011 19:00 14.09.2011 18:00 1,371 1,3697 0,0021 0,0692 0,1577 0,0318 9 0,44 0,69 2,18
07.09.2011 18:00 14.09.2011 17:00 1,3673 1,369 0,0021 0,0695 0,154 0,0318 9 0,45 0,72 2,19
07.09.2011 17:00 14.09.2011 16:00 1,3687 1,3693 0,0021 0,0695 0,1548 0,0318 9 0,45 0,72 2,19
07.09.2011 16:00 14.09.2011 15:00 1,3704 1,3704 0,0021 0,066 0,1591 0,0318 11 0,41 0,69 2,08
07.09.2011 15:00 14.09.2011 14:00 1,373 1,37 0,002 0,066 0,1577 0,0318 10 0,42 0,69 2,08
07.09.2011 14:00 14.09.2011 13:00 1,3712 1,3681 0,002 0,066 0,1562 0,0318 9 0,42 0,69 2,08
07.09.2011 13:00 14.09.2011 12:00 1,3685 1,3653 0,002 0,0665 0,1534 0,0318 9 0,43 0,74 2,09
07.09.2011 12:00 14.09.2011 11:00 1,3655 1,3646 0,002 0,0673 0,1504 0,0318 9 0,45 0,77 2,12
07.09.2011 11:00 14.09.2011 10:00 1,3656 1,3634 0,002 0,0709 0,15 0,0318 9 0,47 0,77 2,23
07.09.2011 10:00 14.09.2011 9:00 1,3625 1,3625 0,002 0,0725 0,1461 0,0318 9 0,5 0,83 2,28
07.09.2011 9:00 14.09.2011 8:00 1,3631 1,3638 0,002 0,0719 0,1465 0,0318 9 0,49 0,8 2,26
07.09.2011 8:00 14.09.2011 7:00 1,3641 1,3643 0,002 0,0707 0,1481 0,0318 9 0,48 0,77 2,22
07.09.2011 7:00 14.09.2011 6:00 1,3635 1,3648 0,002 0,0724 0,1481 0,0318 9 0,49 0,8 2,28
07.09.2011 6:00 14.09.2011 5:00 1,3647 1,3656 0,002 0,0724 0,1476 0,0318 9 0,49 0,8 2,28
07.09.2011 5:00 14.09.2011 4:00 1,3665 1,3676 0,002 0,0667 0,1536 0,0318 9 0,43 0,72 2,1
07.09.2011 4:00 14.09.2011 3:00 1,3694 1,3683 0,002 0,0675 0,1504 0,0318 9 0,45 0,74 2,12
07.09.2011 3:00 14.09.2011 2:00 1,3682 1,3682 0,002 0,0672 0,1498 0,0318 9 0,45 0,74 2,11
07.09.2011 2:00 14.09.2011 1:00 1,3684 1,3686 0,002 0,067 0,1512 0,0318 9 0,44 0,72 2,11
07.09.2011 1:00 14.09.2011 0:00 1,3679 1,3686 0,002 0,067 0,1514 0,0318 9 0,44 0,72 2,11
07.09.2011 0:00 13.09.2011 23:00 1,3678 1,3691 0,002 0,0679 0,1507 0,0318 9 0,45 0,74 2,14
06.09.2011 23:00 13.09.2011 22:00 1,3692 1,3698 0,002 0,066 0,1517 0,0318 9 0,44 0,69 2,08
06.09.2011 22:00 13.09.2011 21:00 1,3708 1,3705 0,002 0,0652 0,1512 0,0318 9 0,43 0,69 2,05
06.09.2011 21:00 13.09.2011 20:00 1,3719 1,3709 0,002 0,0652 0,1512 0,0318 9 0,43 0,69 2,05
06.09.2011 20:00 13.09.2011 19:00 1,371 1,3691 0,002 0,0652 0,1517 0,0318 9 0,43 0,69 2,05
06.09.2011 19:00 13.09.2011 18:00 1,3677 1,3669 0,002 0,0666 0,1485 0,0318 9 0,45 0,72 2,09
06.09.2011 18:00 13.09.2011 17:00 1,3678 1,3677 0,002 0,0666 0,149 0,0318 9 0,45 0,72 2,09
06.09.2011 17:00 13.09.2011 16:00 1,3698 1,3659 0,002 0,0625 0,1555 0,0318 9 0,4 0,64 1,97
06.09.2011 16:00 13.09.2011 15:00 1,3658 1,3643 0,002 0,065 0,1513 0,0318 9 0,43 0,72 2,04
06.09.2011 15:00 13.09.2011 14:00 1,3665 1,3636 0,002 0,0643 0,1527 0,0318 9 0,42 0,69 2,02
06.09.2011 14:00 13.09.2011 13:00 1,3639 1,3619 0,002 0,0659 0,1552 0,0318 9 0,42 0,74 2,07
06.09.2011 13:00 13.09.2011 12:00 1,3617 1,3628 0,0021 0,0824 0,1432 0,0189 6 0,58 0,8 4,36
06.09.2011 12:00 13.09.2011 11:00 1,3616 1,361 0,0021 0,0824 0,1435 0,0189 6 0,57 0,8 4,36
06.09.2011 11:00 13.09.2011 10:00 1,3582 1,3631 0,002 0,0795 0,1435 0,0189 6 0,55 0,8 4,21
06.09.2011 10:00 13.09.2011 9:00 1,3654 1,3656 0,002 0,077 0,146 0,0189 6 0,53 0,74 4,07
06.09.2011 9:00 13.09.2011 8:00 1,3655 1,3664 0,0021 0,0813 0,1442 0,0189 6 0,56 0,77 4,3
06.09.2011 8:00 13.09.2011 7:00 1,3679 1,3673 0,0022 0,0834 0,1435 0,0189 6 0,58 0,77 4,41
06.09.2011 7:00 13.09.2011 6:00 1,3685 1,3668 0,0022 0,0828 0,1448 0,0189 6 0,57 0,74 4,38
06.09.2011 6:00 13.09.2011 5:00 1,3676 1,3669 0,0022 0,0879 0,1406 0,0189 6 0,63 0,85 4,65
06.09.2011 5:00 13.09.2011 4:00 1,3669 1,3653 0,0022 0,0821 0,1458 0,0189 6 0,56 0,8 4,34
06.09.2011 4:00 13.09.2011 3:00 1,3635 1,3639 0,0022 0,0821 0,1428 0,0189 6 0,57 0,8 4,34
06.09.2011 3:00 13.09.2011 2:00 1,3637 1,3646 0,0022 0,0821 0,1428 0,0189 6 0,57 0,8 4,34
06.09.2011 2:00 13.09.2011 1:00 1,3657 1,364 0,0022 0,0825 0,1407 0,0189 6 0,59 0,8 4,37
06.09.2011 1:00 13.09.2011 0:00 1,366 1,3639 0,0022 0,085 0,1384 0,0141 6 0,61 0,83 6,03
06.09.2011 0:00 12.09.2011 23:00 1,3678 1,3655 0,0022 0,083 0,1416 0,0141 6 0,59 0,8 5,89
05.09.2011 23:00 12.09.2011 22:00 1,366 1,3613 0,0022 0,0806 0,1424 0,0123 6 0,57 0,8 6,55
05.09.2011 22:00 12.09.2011 21:00 1,3572 1,3585 0,002 0,0731 0,1414 0,0152 6 0,52 0,77 4,81
05.09.2011 21:00 12.09.2011 20:00 1,3576 1,3601 0,002 0,0714 0,1432 0,0152 6 0,5 0,74 4,7
05.09.2011 20:00 12.09.2011 19:00 1,3607 1,3637 0,0021 0,0712 0,1406 0,0129 6 0,51 0,74 5,52
05.09.2011 19:00 12.09.2011 18:00 1,3632 1,3619 0,0021 0,0712 0,1405 0,0129 6 0,51 0,74 5,52
05.09.2011 18:00 12.09.2011 17:00 1,3609 1,3641 0,0021 0,073 0,1378 0,0129 6 0,53 0,77 5,66
05.09.2011 17:00 12.09.2011 16:00 1,3684 1,3659 0,002 0,0713 0,1334 0,0083 6 0,53 0,74 8,59
05.09.2011 16:00 12.09.2011 15:00 1,3665 1,3636 0,002 0,0727 0,1343 0,0083 6 0,54 0,77 8,76
05.09.2011 15:00 12.09.2011 14:00 1,363 1,3601 0,002 0,072 0,1348 0,0083 6 0,53 0,77 8,67
05.09.2011 14:00 12.09.2011 13:00 1,3603 1,3594 0,002 0,0752 0,1304 0,0083 6 0,58 0,83 9,06
05.09.2011 13:00 12.09.2011 12:00 1,3623 1,3589 0,002 0,0742 0,1304 0,0083 6 0,57 0,83 8,94
05.09.2011 12:00 12.09.2011 11:00 1,3597 1,3561 0,0019 0,0737 0,1291 0,0083 6 0,57 0,8 8,88
05.09.2011 11:00 12.09.2011 10:00 1,3561 1,3551 0,0019 0,0729 0,1275 0,0083 6 0,57 0,8 8,78
05.09.2011 10:00 12.09.2011 9:00 1,3556 1,3552 0,002 0,072 0,1283 0,0083 6 0,56 0,77 8,67
05.09.2011 9:00 12.09.2011 8:00 1,3536 1,3532 0,002 0,072 0,1271 0,0083 6 0,57 0,77 8,67
05.09.2011 8:00 12.09.2011 7:00 1,3519 1,3554 0,0019 0,0703 0,1288 0,0083 6 0,55 0,74 8,47
05.09.2011 7:00 12.09.2011 6:00 1,3583 1,3579 0,0019 0,072 0,1224 0,0083 6 0,59 0,77 8,67
05.09.2011 6:00 12.09.2011 5:00 1,3591 1,3582 0,0019 0,0715 0,1224 0,0083 6 0,58 0,77 8,61
05.09.2011 5:00 12.09.2011 4:00 1,3593 1,3589 0,0019 0,0713 0,1224 0,0083 6 0,58 0,75 8,59
05.09.2011 3:00 12.09.2011 2:00 1,3583 1,361 0,0019 0,0746 0,1192 0,0083 6 0,63 0,78 8,99


Tablo 4. EViews'teki test sonuçları


Tablo, modelimizin (çok ilkel ve bitmemiş) neredeyse ümitsiz olduğunu gösteriyor. İyileştirilmesi gerekiyor.

İki sütunun grafiklerini çizelim: Piplerdeki P/F ve gözlemlerdeki P/F.


Şekil 12. 118 çubukluk örnekte kâr faktörü grafiklerini modelleme


Bu grafik, kâr faktörlerinin analizdeki çubuk sayısına bağımlılığını temsil eder. Açık bir yukarı trendi vardır.

Sonuçları 238 çubukluk örnek üzerinde kontrol edelim. Çizilen grafik aşağıdaki gibidir:


Şekil 13. 236 çubukluk örnekte kâr faktörü grafiklerini modelleme


Kâr faktörü grafiklerinin farklılık göstermesi modelin kararsız olduğunu belirtir.


Sonuç

Makale, MetaTrader 4'te Uzman Danışmanın geliştirilmesi için EViews tarafından oluşturulan bir adım ilerisi tahminlerin kullanımını ele almıştır.

Elde ettiğimiz olumsuz sonuç, EViews'te bir model oluşturmanın oldukça karmaşık bir iş olduğunu ve buna rağmen Uzman Danışmanların sezgisel gelişimine göre potansiyel olarak daha verimli olduğunu belirtir.


MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal makale: https://www.mql5.com/ru/articles/1345

Ekli dosyalar |
EViewsMT4.zip (10.25 KB)
MQL5 Programlama Temelleri: Listeler MQL5 Programlama Temelleri: Listeler
Alım satım stratejisi geliştirme için programlama dilinin yeni sürümü olan MQL [MQL5], önceki versiyona [MQL4] kıyasla daha güçlü ve etkili özellikler sunar. Avantaj, esasen nesne yönelimli programlama özelliklerinde yatmaktadır. Bu makale, düğümler ve listeler gibi karmaşık özel veri türleri kullanma olasılığını inceler. Ayrıca MQL5'te pratik programlamada listelerin kullanımına bir örnek sağlar.
Kagi Grafik Göstergesi Kagi Grafik Göstergesi
Makale, çeşitli grafik seçenekleri ve ek fonksiyonlar içeren Kagi grafik göstergesini önermektedir. Ayrıca, gösterge grafik oluşturma ilkesi ve MQL5 uygulama özellikleri de göz önünde bulundurulmuştur. Alım satımda uygulanmasının en popüler örnekleri - Yin/Yang değişim stratejisi, trend çizgisinden uzaklaşan ve sürekli olarak artan "omuzlar"/azalan "beller" görüntülenir.
MQL5 Cookbook: Fiyat Farklılığını Analiz Etmek İçin Çoklu Sembollü Bir Göstergenin Geliştirilmesi MQL5 Cookbook: Fiyat Farklılığını Analiz Etmek İçin Çoklu Sembollü Bir Göstergenin Geliştirilmesi
Bu yazıda, belirli bir zaman diliminde fiyat farklılaşmasını analiz etmek için çoklu sembollü bir göstergenin geliştirilmesini ele alacağız. Temel konular, çoklu para birimi göstergelerinin programlanmasıyla ilgili bir önceki makalede tartışılmıştı "MQL5 Yemek Kitabı: MQL5'te Çok Sembollü Bir Volatilite Göstergesi Geliştirme". Bu sefer sadece çarpıcı biçimde değiştirilmiş olan yeni özellikler ve işlevler üzerinde duracağız. Çoklu para birimi göstergelerinin programlanmasında yeniyseniz, önce bir önceki makaleyi okumanızı tavsiye ederim.
Çok Para Birimli, Çok Sistemli bir Uzman Danışman Oluşturma Çok Para Birimli, Çok Sistemli bir Uzman Danışman Oluşturma
Makale, eş zamanlı olarak birçok sembolün alım satımını yapan veya birkaç alım satım sistemini kullanan bir Uzman Danışman yapısını tanıtmaktadır. Tüm EA'larınız için optimum giriş parametrelerini zaten tanımladıysanız ve ayrı olarak bunlardan her biri için iyi geri dönük test sonuçları elde ettiyseniz, kendinize sorun: Tüm stratejilerinizin bir araya getirildiği tüm EA'larınız eş zamanlı olarak test edilseydi sonuçları ne olurdu?