MetaTrader 5 herunterladen

Ökonometrie EURUSD Ein-Schritt-Voraus Prognose

20 April 2016, 15:47
СанСаныч Фоменко
0
328

Einführung

Der Artikel konzentriert sich auf die Ein-Schritt-Voraus Prognose für EURUSD mit EViews Software und weiterer Bewertung der Prognoseergebnisse mit den Mitteln des Programms in EViews und einem in MQL 4 entwickelten Expert Advisor. Er ist aufgebaut auf den Artikel "Analyzing the Indicators Statistical Parameters", dessen Aussagen ohne weitere Erklärungen verwendet werden.



1. Erstellen eines Modells

Der vorherige Artikel endete mit der Analyse der folgenden Regressionsgleichung:

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

Diese Gleichung war ein Ergebnis aus der Umsetzung der schrittweisen Zerlegung des ursprünglichen Schlusskurses. Der Gedanke dahinter basiert auf der Trennung einer deterministischen Komponente des ursprünglichen Kurses und einer weiteren Analyse des resultierenden Rests.

Beginnen wir ein Modell zu erstellen für EURUSD H1 auf den Balken über einen Zeitraum von einer Woche vom 12. September bis zu 17. September 2011.

1.1. Analyse der ursprünglichen EURUSD Kurse

Wir beginnen mit der ursprünglichen EURUSD Reihe, um den nächsten Schritt zu planen

Zuerst erstellen wir eine Datei mit den Kursen zur weiteren Analyse in EViews. Zu diesem Zweck verwende ich einen das Chart überlagernden Indikator, um die erforderliche Datei mit Kursen zu erzeugen.

Das Skript des Indikators ist im Folgenden aufgeführt und bedarf meiner Meinung nach keines Kommentars.

//+------------------------------------------------------------------+
//|                                                   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);
  }
//+------------------------------------------------------------------+

Nachdem ich die obigen Datumsangaben gemacht haben, erhielt ich die aus 119 Zeilen bestehende Kurs-Datei, die letzte Zeile ist "Forecast,0" EUR", das ist, wo die zukünftige Prognose sein wird. Bedenken Sie, das ich Eröffnungskurse verwende. Beachten Sie außerdem, dass die Kurse in der Datei in der Reihenfolge entgegengesetzt zu der in MQL4 angeordnet sind, das heißt, wie in Programmiersprachen.

Der Indikator erzeugt offenkundig die Datei quotes.txt in dem Terminal-Ordner \expert\files\. Der Expert Advisor, der im Folgenden besprochen wird, nimmt die Kurs-Datei aus dem angegebenen Ordner, wenn er im DEMO- oder im REAL-Modus arbeitet, im Testmodus jedoch, muss die Datei sich in dem Ordner \tester\files\ befinden. Also platziere ich die Datei quotes.txt manuell in dem \tester\files\ Ordner des Terminals.

Hier ist das Chart:


Abb. 1. EURUSD H1 Kurs-Chart


Wir können entweder einen oder mehrere Trends beobachten, aber unser Ziel ist es, die künftige Stabilität unseres Handelssystems zu prognostizieren. Deshalb werden wir eine Analyse über die Stationarität der ursprünglichen EURUSD H1 Kurse durchführen.

Berechnen wir die beschreibende Statistik:


Abb. 2. Beschreibende Statistik

Die beschreibende Statistik deutet darauf hin, dass:

  • Es gibt einen Schräglauf nach rechts (es sollte 0 sein, wobei wir 0.244950 haben),
  • Die Wahrscheinlichkeit, dass unsere ursprünglichen Kurse normal verteilt sind ist 9,64%.

Optisch hat das Histogramm sicherlich nichts mit der Normalverteilung zu tun, aber die Wahrscheinlichkeit von 9,64% führt zu gewissen Illusionen.

Demonstrieren wir es im Vergleich zu Theorie:


Abb. 3. EURUSD Histogramm verglichen mit der theoretischen Normalverteilungskurve

Wir können optisch feststellen, dass die EURUSD_H1 Kurse weit davon entfernt sind, normal verteilt zu sein.

Es ist allerdings noch zu früh um einen Schluss zu ziehen, da der Trend auf das Vorhandensein einer deterministischen Komponente in den Kursen hindeutet, wobei das Vorhandensein einer solchen Komponente die statistischen Eigenschaften der Zufallsvariable (Kurse) vollständig verzerren könnte.

Berechnen wir die Autokorrelationsfunktion der Kurse.

Es sieht wie folgt aus:


Abb. 4. Autokorrelationsfunktion der EURUSD_H1 Kurse

Beim Aufzeichnen des Charts, haben wir die Wahrscheinlichkeit des Fehlens an Korrelation zwischen den Verzögerungen erhalten - es ist nicht-null für die ersten 16 Tage. Das Chart und die Wahrscheinlichkeit legen deutlich nahe, dass es eine Korrelation zwischen den Verzögerungen in EURUSD_H1 gibt, das heißt, die berücksichtigten Kurse enthalten eine deterministische Komponente.

Wenn die deterministische Komponente von den ursprünglichen Kursen abgezogen wird, welche statistischen Eigenschaften wird der Rest haben?

Zu diesem Zweck wenn den wir einen Einheitswurzeltest an, um zu sehen, ob es interessanter ist mit der Differenz (Rest) der ursprünglichen Kurse zu arbeiten.


Tabelle 1. Einheitswurzeltest

Der obige Test zeigt, dass:

  • Die Wahrscheinlichkeit, dass die ursprünglichen Kurse eine Einheitswurzel haben (die erste Differenz ist normal verteilt) 41% ist,
  • Die DW (Durbin-Watson) Statistik ist knapp über 2.2, was auch andeutet, dass die erste Differenz normal verteilt ist.
Fazit: Es wäre sinnvoll den Trend der Kurs-Reihen zu bereinigen und danach den Rest des bereinigten Trends zu analysieren.

1.2. Glättung

Der Hodrick-Prescott Filter wird verwendet, um die deterministische Komponente von den EURUSD Kursen zu trennen, analog zu den vorherigen Artikel.

Nummer "10" in den Reihennamen bezeichnet den Lambda-Parameter in dem Hodrick-Prescott Filter. Basierend auf der Theorie hinter diesem Werkzeug, ist der Lambdawert von großer Bedeutung für das Ergebnis, das wie folgt aussieht:


Abb. 5. Das Glättungsergebnis mit dem Hodrick-Prescott Filter

Wir werden die Gleichung aus dem vorherigen Artikel verwenden, die in EViews Notationen wie folgt aussieht:

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

das heißt in dieser Gleichung, wir berücksichtigen die deterministische Komponente und Rauschen, womit wir die Differenz zwischen dem ursprünglichen Kurs und der deterministischen Komponente meinen.

Im Anschluss an die Analyse des aktuellen Modells der ursprünglichen Kurse, erhalten wir die folgenden Regressionsgleichung-Parameter:


Tabelle 2. Regressionsgleichung Prognose

Die 39% Wahrscheinlichkeit des Koeffizienten Null, wenn HP1_D(-1) missfällt sicher extrem. Wir lassen alles wie es ist, da das Beispiel, das wir bereitstellen, nur zu Demonstrationszwecken dient.

Nachdem wie wir die Regressionsgleichung Schätzung (Schätzung des Gleichung-Koeffizienten) erhalten haben, können wir zu der Ein-Schritt-Voraus Prognose weitergehen.

Das Ergebnis ist wie folgt:


Abb. 6. EURUSD Ein-Schritt-Voraus Prognose (wie umd 12:00 Uhr am Montag)


1.3. Geschätzte Reste von der Regressionsgleichung

Führen wir eine Analyse der Reste von der Regressionsgleichung durch. Dieser Rest wurde erhalten, durch Abziehen der mit der Regressionsgleichung von den EURUSD Kursen berechneten Werte.

Lassen Sie mich daran erinnern, dass die Eigenschaften dieses Rests uns helfen werden die künftige Stabilität des Handelssystems einzuschätzen.

Zunächst führen wir einen Test aus für die Analyse der Korrelationen zwischen den Verzögerungen in dem Rest:



Abb. 7. Autokorrelationsfunktion des Rests

Leider sind die Korrelationen zwischen den Verzögerungen noch immer vorhanden, und ihre Präsenz lässt Zweifel an der statistischen Analyse aufkommen.

Der nächste Test, den wir ausführen werden, ist der Normalitätstest des Rests.

Das Ergebnis sieht aus wie folgt:


Abb. 8. Histogramm des Rest der Regressionsgleichung


Die Wahrscheinlichkeit, dass der Rest normal verteilt ist, ist 25,57%, was eine ziemlich große Zahl ist.

Führen wir einen Test durch für Heteroskedastizität des Rests.

Das Ergebnis ist wie folgt:

  • Die Wahrscheinlichkeit, das GARCH-Typ Heteroskedastizität fehlt, ist 16.08%
  • Die Wahrscheinlichkeit, das Whites allgemeine Heteroskedastizität fehlt, ist 0.0066%
Schlussfolgerungen: Nach der Differenzierung haben wir einen Rest, der mit einer 25% Wahrscheinlichkeit normal verteilt ist, und nahezu Null Wahrscheinlichkeit frei von Korrelationen zu sein und wir können die Hypothese, dass Whites Heteroskedastizität fehlt, streng zurückweisen. Dies besagt, dass unser Modell eher grob ist und erfordert, dass wir die Korrelationen zwischen den Verzögerungen beseitigen und danach wieder auf Heteroskedastizität testen und eine solche Heteroskedastizität modellieren, für den Fall, dass sie vorhanden ist.

Da es mein Ziel ist die Entwicklung von auf Prognose basierenden Handelssystemen zu demonstrieren, werde ich die Berechnungen fortsetzen, um die Eigenschaften zu erhalten, die für Trader von Interesse sind - Gewinn oder Verlust.

2. Einschätzung der Prognose-Ergebnisse

Im Trading sind wir eher an Gewinn anstelle von Prognosefehlern interessiert, die als zusätzliches Analyse-Tool zum Vergleich verschiedener Modelle genommen werden können, aber nicht für mehr.

Zum Einschätzen der Prognoseergebnisse, wurde ein Programm in der EView-Sprache geschrieben. Ex vergleicht die tatsächliche schrittweise Bewegung der EURUSD Kurse mit den prognostizierten. Wenn diese Schritte übereinstimmen, gibt es Gewinn, wenn nicht, gibt es Verlust. Darüber hinaus berechnen wir den Gewinn, der die Summe aller Gewinne der zusammenfallenden Schritte darstellt, und den entsprechenden Verlust.

Das Gewinn zu Verlust Verhältnis wird als Profit-Faktor bezeichnet. Wir berechnen dann das Verhältnis von rentablen zu unrentablen Schritten (Gewinn/Verlust Handelsverhältnis). Die Anzahl der aufeinander folgenden Verlusttrades und das Verhältnis von Verlust aus aufeinander folgenden Trades zum Gewinn (Erholungsfaktor) wird auch berechnet.

Das Programm in der EViews Sprache zur Einschätzung der Modellierungsergebnisse in Bezug auf ein Handelssystem besteht auf den Hauptprogramm und zwei Subroutinen.

Das Haupt- (Kopf) Programm ist wie folgt:

' 
' 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
'
'-----------------------------------------------

Es wird angenommen, dass die Anzahl der Hauptprogramme gleich ist zu der Anzahl der Modelle enthaltenen Subroutinen (siehe unten), dies wurde zur Vereinfachung der Arbeit gemacht.

Die Änderung in dem Modell erfordert eine Änderung in zwei Zeilen des Hauptprogramms, bezogen auf die Änderung in dem Namen der Subroutine für das Modell.

Die Subroutine mit dem Modell (Regressionsgleichung):

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

Die Anzahl der Subroutinen muss gleich der Anzahl der Modelle sein.

Für ein anderen Modell, muss der Name der Subroutine und, natürlich, die Namen in dem Hauptprogramm geändert werden.

Subroutine, die Gewinn/Verlust Parameter für das Modell berechnet:

' 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

Die Ergebnisse der obigen einfachen Programme in EViews für unsere Gleichung sind wie folgt:


Tabelle 3. Rentabilitätsschätzung Ergebnisse in EViews

Das Ergebnis ist bedauernswert: Der Verlust ist drei Mal höher als der Gewinn, und das trotz dem optimistischen Prognose-Fehlerwert von 19 Pips. Das Modell muss verbessert werden, aber ich werde dies nicht hier im Artikel machen. Ich werde die Arbeit daran im Forum fortsetzen, zusammen mit all denen, die wünschen an der Entwicklung eines rentablen Modells teilzunehmen.

Bis jetzt wurden die EURUSD_H1 Kurse mit EViews Werkzeugen analysiert.

Allerdings scheint es sehr verlockend zu sein, die Prognoseergebnisse in einem Expert Advisor des MetaTrader 4 Terminals anzuwenden.

Betrachten wir den Austausch der Daten zwischen EViews und MetaTrader 4, und analysieren dann erneut die Ergebnisse mit einem Expert Advisor in MetaTrader 4.

3. Datenaustausch zwischen EViews und MetaTrader 4


Der Austausch von Daten zwischen EViews und MetaTrader 4 wird in diesem Artikel mit .txt Dateien umgesetzt.

Der Austauschalgorithmus sieht aus wie folgt:

  1. MetaTrader 4 Expert Advisor:

    • Erzeugt die Kurs-Dateien,
    • Startet EViews.
  2. EViews:

    • Beginnt zu arbeiten als Reaktion auf ein Kommando des Expert Advisors,
    • Führt ein Prognose-Berechnungsprogramm für die von de Expert Advisor erhaltene Kurs- Datei quotes.txt aus,
    • Speichert die Prognoseergebnisse in der EViewsForecast.txt Datei.
  3. MetaTrader 4 Expert Advisor:

    • Nach Abschluss der Erzeugung der Ergebnisse in EViews, liest er die Prognosedatei,
    • Entscheidet über Einstieg oder Ausstieg einer Position.

Ein paar Worte über den Speicherort der Dateien.

Dateien des MetaTrader 4 Terminals werden in ihren Standard-Ordner platziert: ein Expert Advisor in den \experts Ordner und ein Indikator, der zum Testen nicht benötigt wird) in dem \experts\indicators Ordner. Alle diese befinden sich in dem Terminal-Verzeichnis. Der Expert Advisor wird zusammen mit anderen Expert Advisors installiert.

Dateien für den Austausch zwischen dem Expert Advisor und EViews während des Betriebs des Expert Advisors im \expert\files, und während dem Testen des Expert Advisor in dem \tester\files Ordner.

Die von dem Expert Advisor an EViews gesendete Datei wird quotes.txt genannt, unabhängig von dem gewählten Symbol und Zeitrahmen. Daher kann der Expert Advisor an jedes Symbol angehangen werden, während der Prognose-Schritt in den Parametern des Expert Advisors bei seinem Start angegeben werden muss.

EViews gibt die Datei mit dem Namen EVIEWSFORECAST.txt zurück. Die EViews Arbeitsdatei worf.wf1 wird in das Terminal-Verzeichnis platziert.

In EViews Programmen festgelegte Verzeichnisse, die an den Artikel angehangen sind, werden sehr wahrscheinlich nicht zu den Verzeichnissen passen, die auf Ihrem Computer verfügbar sind. Ich habe diese Programme in das Festplatten-Hauptverzeichnis installiert. In EViews müssen Sie Zugriff auf das Standardverzeichnis erhalten oder Ihre eigenen Verzeichnisse angeben (ich habe nicht die von EViews verwendeten Standardverzeichnisse verwendet).

4. MQL4 Expert Advisor

Der Expert Advisor Betriebsalgorithmus ist maximal vereinfacht:

  • Der Expert Advisor wird an den M1 Zeitrahmen von jedem Symbol angehangen,
  • Ein Prognose-Schritt in Minuten wird in den Parametern des Expert Advisors festgelegt. Der Standard-Prognose-Schritt ist 60 Minuten (H1). Durch Anhängen des Expert Advisors an das M1 Chart erhalten Sie die Möglichkeit die Testergebnisse besser zu visualisieren, da das Tast-Chart komprimiert werden kann, wenn zu einem größeren Zeitrahmen gewechselt wird,
  • Für die Zwecke der Prognosen in EViews, erzeugt der Expert Advisor die quotes.txt Datei mit der Anzahl der Balken (Beobachtungen), wie in den Parametern des Expert Advisor festgelegt,
  • Wenn die Prognose höher ist als der aktuelle Kurs, wird eine Long-Position eröffnet,
  • Ist die Prognose niedriger als der aktuelle Kurs, wird eine Short-Position eröffnet,
  • Der Expert Advisor öffnet nicht mehr als eine Position (ohne zu einer Position hinzuzufügen),
  • Unabhängig von der Prognose, schließt er die vorherige Position und öffnet eine neue. Der Algorithmus für das Öffnen von Positionen stimmt überein mit dem Algorithmus zur Berechnung von Gewinn/Verlust in EViews,
  • Das Volumen der zu öffnenden Position ist 0,1 Lot,
  • Stop Loss und Take Profit Ordern werden nicht verwendet (sie sind auf 100 Pips festgelegt, obwohl der Expert Advisor einen Code hat zum Platzieren von Stops bei Prognose-Fehlerintervallen),
  • Ein Chart wird gezeichnet, das den Prognosewert und zwei Linien bei einem Standard Prognose-Fehlerintervall. Bei der Anzeige des Charts des Testers auf kürzeren Zeitrahmen, als dem, an den der Expert Advisor angehangen wurde, denken Sie daran, dass die Prognoselinie rückwärts verschoben wird, das heißt, die gezeichnete Prognose ist die Prognose, an der der Kurs am Ende der Periode ankommen sollte.

Der Expert Advisor wird an das M1 Chart im Tester angehangen, während das Chart besser in M5 angezeigt wird.

Der Quellcode des MQL4 Expert Advisor zum Handel mit EURUSD wird aufgrund seines Umfangs (rund 600 Zeilen) nicht in diesem Artikel breitgestellt. Er befindet sich in EvewsMT4.mq4 in dem EViews_MetaTrader_4.zip Archiv, das an den Artikel angehangen ist.

5. Expert Advisor Testergebnisse

Führen Sie den Expert Advisor im Tester auf den M1 Zeitrahmen aus.

Die Eingabeparameter sind unten angegeben.



Abb. 9. Eingabeparameter des Expert Advisor


Ein Ausschnitt des Test-Charts wird unten gezeigt:


Abb. 10. Test des Expert Advisor im visuellen Modus


Die Ergebnisse von dem Test des Expert Advisor, der eine-Stunde (Schritt) Voraus-Prognose verwendet, wird unten gezeigt.

Strategietester Bericht

EvewsMT4

Real (Build 406)

Symbol

EURUSD (Euro vs US Dollar)

Zeitrahmen

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

Modell

Jeder Tick (präziseste Methode die auf allen verfügbaren kleinsten Zeitrahmen basiert zur Generierung jedes Ticksignals)

Parameter

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






Getestete Balken

7948

Modellierte Ticks

79777

Modellierungsqualität

25.00%

Fehler in Chartanpassung

0






Ursprüngliche Einzahlung

10000.00





Nettoprofit gesamt

-202.10

Bruttoprofit

940.72

Bruttoverlust

-1142.82

Profitfaktor

0.82

Erwartetes Ergebnis

-1.73



Absoluter Rückgang

326.15

Maximaler Rückgang

456.15 (4.50%)

Relativer Rückgang

4.50% (456.15)


Anzahl an Trades

117

Sell-Positionen (davon gewonnen %)

58 (51.72%)

Buy-Positionen (davon gewonnen %)

59 (45.76%)


Gewonnene Trades (in % von Gesamt)

57 (48.72%)

Verlorene Trades (in % von Gesamt)

60 (51.28%)

Größter

Gewinntrade

100.00

Verlusttrade

-79.00

Durchschnitt

Gewinntrade

16.50

Verlusttrade

-19.05

Maximum

Gewinntrades in Folge (Profit in Geld)

6 (105.00)

Verlusttrades in Folge(Verlust in Geld)

8 (-162.00)

Maximum

Gewinn aufeinanderfolgender Gewinntrades (Anzahl)

166.00 (5)

Verlust aufeinanderfolgender Verlusttrades (Anzahl)

-162.00 (8)

Durchnschnitt

Gewinntrades in Folge

2

Verlusttrades in Folge

2



Nr.

Zeit

Typ

Order

Volumen

Kurs

S / L

T / P

Gewinn

Kontostand

1

2011.09.12 01:00

sell

1

0.10

1.3609

1.3711

1.3509


2

2011.09.12 02:00

close

1

0.10

1.3584

1.3711

1.3509

25.00

10025.00


Abb. 11. Expert Advisor Testergebnisse


Die Ergebnisse sind besser als die in EViews erhaltenen.

Beachten Sie, dass die Berechnung der Ergebnisse sich in EViews und dem Tester in Bezug auf die Eingabedaten unterscheiden. EViews verwendet 118 Balken und berechnet die Prognose beginnend bei dem dritten Balken von links, da die Ein-Schritt-Voraus Prognose sich schrittweise in Richtung des Endes des Zeitraums bewegt, die Anzahl in der Schätzung der Regressionsgleichung verwendeten Balken erhöhend.

Der Expert Advisor verschiebt das Fenster von 118 Balken und berechnet die Prognose auf Balken 119, das heißt, die Regressionsgleichung ist immer auf 118 Balken geschätzt, da EViews das Fenster innerhalb der Probe erweitert und der Expert Advisor das Fenster mit fester Breite verschiebt.

Der Expert Advisor hilft uns eine erweiterte Modellschätztabelle zu erzeugen. Während die obige Tabelle aus einer einzelnen Zeile besteht, enthält sie nun 117 Zeilen - für jedes Datum, für das eine Prognose erzeugt wurde.

Die Tabelle sieht aus wie folgt:

Anfang
der Probe
Ende
der Probe
Tatsache ab
Ende
Ein-Schritt
Prognose
Prognose
Fehler
Gewinn
der Probe
Verlust
der Probe
Maximaler
Rückgang
Anzahl
der Verluste
P/F in
Pips
P/F in Beobachtungen
Erholungsfoktor
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

Tabelle 4. Testergebnisse in EViews

Die Tabelle legt nahe, dass unser Modell (so primitiv und unfertig) praktisch hoffnungslos ist. Es muss verbessert werden.

Zeichnen wir die Charts der beiden Spalten: P/F in Pips und P/F in Beobachtungen.


Abb. 12. Modell Profitfaktor Charts auf dem Beispiel mit 118 Balken

Dieses Chart stellt die Abhängigkeit des Profitfaktors von der Anzahl der Balken in der Analyse dar. Es gibt einen offensichtlichen Aufwärtstrend.

Prüfen wir die Ergebnisse der Probe mit 238 Balken. Das Chart wird wie folgt gezeichnet:


Abb. 13. Modell Profitfaktor-Charts zu der Probe mit 236 Balken

Die Tatsache, dass die Profitfaktor-Charts sich unterscheiden deutet an, dass das Modell instabil ist.


Fazit

Der Artikel befasste sich mit der Verwendung der Ein-Schritt-VorausPrognose, erzeugt durch EViews für die Entwicklung des Expert Advisors in MetaTrader 4.

Das erhaltene negative Ergebnis zeigt, dass der Aufbau eines Modells in EViews eine recht komplizierte Aufgabe ist, welche dennoch potentiell produktiver erscheint, als die intuitive Entwicklung von Expert Advisors.


Übersetzt aus dem Russischen von MetaQuotes Software Corp.
Originalartikel: https://www.mql5.com/ru/articles/1345

Beigefügte Dateien |
EViewsMT4.zip (10.25 KB)
Die Übertragung eines Indikatorcodes in einen Expertcode. Die Struktur eines Indikators Die Übertragung eines Indikatorcodes in einen Expertcode. Die Struktur eines Indikators

Im Beitrag geht es um die Übertragung eines Indikatorcodes in den EA-Code und dem Schreiben der Experten, in denen keinen Aufruf zu benutzerdefinierten Indikatoren gibt. Und der gesamte Programmcode für die Berechnung der nötigen Indikatorwerte wird innerhalb des Expertes sein. Dieser Artikel stellt eine allgemeine Darstellung der Struktur des Indikators, die Emulation der Indikatorpuffer im EA und die Ersetzung der Funktion IndicatorCounted(). Der Artikel baut auf einen Leser, der die Programierungserfahrung mit dem MQL4 hat.

ABC Trading im Forex ABC Trading im Forex

Die Arbeit auf den Finanzmärkten besteht vor allem aus Handelsoperationen. Wir haben alle von der Kindheit eine intuitive Vorstellung vor den Operationen, bei denen es um Kaufen und Verkaufen geht. Aber das Trading im Forex hat seine eigene Besonderheit. In diesem Artikel werden wir die notwendigen Begriffe betrachten, die einige Fachausdrücke erklären. Wir werden auch die MQL4-Funktionen berücksichtigen, die mit diesen Begriffen entsprechen.

Test (Optimirung) Technik und Einige Kriterien für die Auswahl der Expert Adviosor Parameter Test (Optimirung) Technik und Einige Kriterien für die Auswahl der Expert Adviosor Parameter

Es ist kein Problem den Heiligen Gral des Testens zu finden, es ist jedoch viel schwieriger ihn loszuwerden. Dieser Artikel befasst sich mit der Auswahl der Expert Advisor Betriebsparameter mit automatisierter Gruppenverarbeitung von Optimierung und Testergebnissen auf eine maximale Nutzung der Terminal-Leistungsfähigkeit und minimaler Endnutzer-Belastung.

Die Goldene Regel für Trader Die Goldene Regel für Trader

Um Gewinne basierend auf hohen Erwartungen zu machen, müssen wir drei grundlegende Prinzipien von gutem Trading verstehen: 1) kenne dein Risiko, wenn du in den Markt einsteigst, 2) begrenze Verluste frühzeitig und erlaube deinen Gewinnen zu laufen, 3) kenne die Erwartung von deinem System - teste es regelmäßig und passe es an. Dieser Artikel stellt einen Programm-Code bereit für Trailing Positionseröffnung bereit und die Verwirklichung des zweiten goldenen Prinzips, weil er den Gewinnen ermöglicht auf die höchstmögliche Ebene zu laufen.