English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
Econometrics - Prévisions à un stade précoce de l’EURUSD

Econometrics - Prévisions à un stade précoce de l’EURUSD

MetaTrader 4Systèmes de trading | 13 janvier 2022, 09:01
153 0
СанСаныч Фоменко
СанСаныч Фоменко

Introduction

L'article se concentre sur la prévision d'une longueur d'avance pour l'EURUSD à l'aide du logiciel EViews et sur une évaluation plus approfondie des résultats des prévisions au moyen du programme dans EViews et d'un Expert Advisor développé dans MQL4. Il s'appuie sur l'article "Analyse des paramètres statistiques des indicateurs" dont les propositions seront exploitées sans précisions supplémentaires.


1. Construire un modèle

L'article précédent se termine par l'analyse de l'équation de régression suivante :

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

Cette équation était le résultat de la mise en œuvre de la décomposition progressive des cotations initiales du prix de clôture. L'idée sous-jacente est basée sur la séparation d'un composant déterministe des cotations initiales et une analyse plus approfondie du résidu qui en résulte.

Commençons à construire un modèle pour l'EURUSD H1 sur les barres sur une période d'une semaine du 12 septembre 2011 au 17 septembre 2011.


1.1. Analyse des cotations initiales EURUSD

Nous commençons par l'analyse de la série EURUSD initiale afin de planifier la prochaine étape.

Tout d'abord, créons un fichier contenant des cotations pour une analyse plus approfondie dans EViews. À cette fin, j'utilise un indicateur superposé à un graphique pertinent pour générer un fichier requis avec des cotations.

Le script de l'indicateur est présenté ci-dessous et, à mon avis, ne nécessite aucun commentaire.

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

Après avoir fixé les dates spécifiées ci-dessus, j'ai obtenu le fichier de cotations composé de 119 lignes, la dernière ligne étant "Forecast,0" – c'est là que seront les prévisions futures. Gardez à l'esprit que j'utilise les prix Open. Notez également que les cotations dans le fichier sont disposées dans l'ordre inverse de celui de MQL4, c'est-à-dire comme dans les langages de programmation.

L'indicateur génère évidemment le fichier de cotations quotes.txt dans le dossier du terminal \expert\files\. L'Expert Advisor qui va être examiné ci-dessous prendra le fichier de devis du dossier spécifié lorsqu'il fonctionne en modes DEMO ou REAL ; Cependant, lorsqu'il est utilisé en mode test, ce fichier doit être situé dans le dossier \tester\files\ donc je place manuellement quotes.txt dans le dossier \tester\files\ du terminal.

Voici le graphique :


Fig. 1. Graphique des cotations EURUSD H1


Nous pouvons observer une ou plusieurs tendances, mais notre objectif est de prédire la stabilité future du système de trading. Par conséquent, nous effectuerons une analyse de la stationnarité des cotations initiales de l'EURUSD H1.

Calculons les statistiques descriptives :



Fig. 2. Statistiques descriptives


Les statistiques descriptives suggèrent que :

  • Il y a un biais vers la droite (il devrait être de 0 alors que nous avons 0,244950) ;
  • La probabilité que nos cotations initiales soient distribuées normalement est de 9,64 %.

Visuellement, l'histogramme n'a certes rien à voir avec la distribution normale mais la probabilité de 9,64 % donne lieu à certaines illusions.

Démontrons-le par rapport à la théorie :


Fig. 3. Histogramme EURUSD par rapport à la courbe de distribution normale théorique


Nous pouvons constater visuellement que les cotations EURUSD_Рќ1 sont loin d'être distribuées normalement.

Cependant, il est encore tôt pour tirer une conclusion car on peut voir la tendance suggérant la présence d'une composante déterministe dans les cotations alors que la présence d'une telle composante peut complètement fausser les caractéristiques statistiques de la variable aléatoire (cotations).

Calculons la fonction d'autocorrélation des cotations.

Elle apparaît comme suit :


Fig. 4. Fonction d'autocorrélation des cotations EURUSD_H1


Lors du tracé du graphique, nous avons obtenu une probabilité d'absence de corrélation entre les retards - elle est non nulle pour les 16 premiers retards. Le graphique et la probabilité suggèrent clairement qu'il existe une corrélation entre les retards de l'EURUSD_H1, c'est-à-dire que les cotations considérées contiennent une composante déterministe.

Si la composante déterministe est soustraite des cotations initiales, quelles caractéristiques statistiques le résidu aura-t-il ?

Pour cela, nous appliquerons un test de racine unitaire pour voir s'il est plus prospectif de travailler avec la différence première (résiduelle) des cotations initiales.


Tableau 1. Test de racine unitaire

Le test ci-dessus montre que :

  • La probabilité que les cotations initiales aient une racine unitaire (la première différence a une distribution normale) est de 41 % ;
  • La statistique DW (Durbin-Watson) est légèrement supérieure à 2,2, ce qui suggère également que la première différence a une distribution normale.
Conclusion : il serait raisonnable de détendre la série de prix et ensuite d'analyser le résidu de la détendance.


1.2. Lissage

Le filtre Hodrick-Prescott sera utilisé pour séparer la composante déterministe des cotations EURUSD, par analogie avec l'article précédent.

Le chiffre "10" dans les noms de séries indique le paramètre lambda dans le filtre de Hodrick-Prescott. Sur la base de la théorie derrière cet outil, la valeur lambda est d'une grande importance pour le résultat qui semble être le suivant :



Fig. 5. Le résultat du lissage à l'aide du filtre Hodrick-Prescott

Nous utiliserons l'équation de l'article précédent qui, dans les notations EViews, apparaît comme suit :

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

c'est-à-dire que dans cette équation, nous prenons en compte la composante déterministe et le bruit, par lequel nous entendons la différence entre les cotations initiales et leur composante déterministe.

Suite à l'analyse du modèle actuel des cotations initiales, on obtient les paramètres d'équation de régression suivants :


Tableau 2. Estimation de l'équation de régression


La probabilité de 39% que le coefficient soit nul si РќР 1_D(-1) est certainement extrêmement déplaisante. Nous laisserons tout tel quel puisque l'exemple que nous allons fournir est à des fins de démonstration.

Après avoir obtenu les estimations de l'équation de régression (estimation des coefficients de l'équation), nous pouvons procéder à la prévision avec une longueur d'avance.

Le résultat est le suivant :



Fig. 6. Prévisions EURUSD avec une longueur d'avance (lundi à 12 heures)


1.3. Estimation des résidus à partir de l'équation de régression

Exécutons une analyse limitée du résidu de l'équation de régression. Ce résidu a été obtenu en soustrayant les valeurs calculées à l'aide de l'équation de régression des cotations initiales de l'EURUSD.

Permettez-moi de vous rappeler que les caractéristiques de ce résidu nous aideront à estimer la stabilité future du système de trading.

Dans un premier temps, nous allons effectuer un test pour l'analyse des corrélations entre les retards dans le résidu :



Fig. 7. Fonction d'autocorrélation du résidu


Malheureusement, les corrélations entre les retards sont toujours là et leur présence remet en cause l'analyse statistique.

Le prochain test que nous allons effectuer est le test de normalité du résidu.

Le résultat apparaît comme suit :


Fig. 8. Histogramme du résidu de l'équation de régression


La probabilité que le résidu soit distribué normalement est de 25,57 %, ce qui est un chiffre assez élevé.

Réalisons des tests d'hétéroscédasticité du résidu.

Les résultats sont les suivants :

  • La probabilité que l'hétéroscédasticité de type GARCH soit absente est de 16,08 %
  • La probabilité que l'hétéroscédasticité générale de White soit absente est de 0,0066 %
Conclusions : suite à la différenciation, nous avons obtenu un résidu avec une probabilité de 25 % d'être distribué normalement et une probabilité proche de zéro d'être exempt de corrélations et nous pouvons rejeter strictement l'hypothèse d'absence d'hétéroscédasticité générale de White. Cela implique que notre modèle est plutôt brut et nécessite que nous éliminions les corrélations entre les retards pour être ensuite testés à nouveau pour l'hétéroscédasticité et modélisons cette hétéroscédasticité au cas où elle serait présente.

Étant donné que mon objectif est de démontrer le développement du système de trading basé sur les prévisions, je vais continuer les calculs afin d'obtenir les caractéristiques qui intéressent les traders - bénéfice ou perte.


2. Estimation des résultats des prévisions

Lors du trading, nous sommes intéressés par le bénéfice plutôt que par l'erreur de prévision, qui doit être considérée comme un outil d'analyse auxiliaire pour la comparaison de différents modèles, mais pas plus que cela.

Pour estimer les résultats des prévisions, un programme en langage EViews a été écrit. Il compare les mouvements incrémentiels réels des cotations EURUSD avec ceux prévus. Si ces incréments coïncident, il y a un bénéfice ; s'ils ne coïncident pas, il y a une perte. De plus, nous calculons le bénéfice qui représente la somme de tous les incréments coïncidant avec les incréments prédits, et la perte respective.

Le rapport entre le bénéfice et la perte est désigné comme un facteur de bénéfice. Nous calculons ensuite le ratio des incréments rentables et non rentables (rapport entre les trades rentables et les trades non rentables). Le nombre de trades perdus consécutifs et le rapport entre la perte dans les trades perdus consécutifs et le profit (facteur de récupération) sont également calculés.

Le programme dans le langage EViews pour l'estimation des résultats de modélisation en termes de système de trading se compose du programme principal et de deux sous-programmes.

Le programme principal (chef) est le suivant :

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

On suppose que le nombre de programmes principaux est égal au nombre de sous-programmes contenant des modèles (voir ci-dessous) ; ceci est fait pour la simplification du travail.

Le changement de modèle nécessite un changement de deux lignes du programme principal relatives au changement de nom du sous-programme pour le modèle.

Le sous-programme contenant le modèle (équation de régression) :

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

Le nombre de sous-programmes doit être égal au nombre de modèles.

Pour un autre modèle, le nom du sous-programme et, bien entendu, les noms dans le programme principal doivent être modifiés.

Sous-programme qui calcule les paramètres de bénéfice/perte pour le modèle :

' 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

Les résultats des programmes simples ci-dessus dans EViews pour notre équation sont les suivants :


Tableau 3. Résultats de l'estimation de la rentabilité dans EViews

Le résultat est malheureux : la perte est trois fois plus élevée que le bénéfice. Et ceci malgré la valeur d'erreur de prévision optimiste de 19 pips. Le modèle a besoin d'être amélioré mais je ne le ferai pas ici dans l'article ; Je continuerai à y travailler dans le forum avec tous ceux qui souhaitent participer à l'élaboration d'un modèle rentable.

Jusqu'à présent, les cotations EURUSD_H1 étaient analysées à l'aide des outils EViews.

Cependant, il semble être très tentant d'appliquer les résultats des prévisions dans un Expert Advisor du terminal MetaTrader 4.

Considérons maintenant l'échange de données entre EViews et MetaTrader 4, puis analysons à nouveau les résultats à l'aide d'un Expert Advisor dans MetaTrader 4.


3. Échange de données entre EViews et MetaTrader 4


L'échange de données entre EViews et MetaTrader 4 dans cet article est implémenté à l'aide de fichiers .txt.

L'algorithme d'échange semble être le suivant :

  1. Expert Advisor de MetaTrader 4 :

    • Génère le fichier des cotations ;
    • Démarre EViews.
  2. EViews :

    • Commence à fonctionner en réponse à une commande de l'Expert Advisor ;
    • Exécute un programme de calcul de prévision pour le fichier de cotations quotes.txt obtenu auprès de l'Expert Advisor ;
    • Enregistre les résultats des prévisions dans le fichier EViewsForecast.txt.
  3. Expert Advisor de MetaTrader 4 :

    • À la fin de la génération des résultats dans EViews, lit le fichier de prévision ;
    • Décide d'entrer ou de sortir d'une position.

Quelques mots sur l'emplacement des fichiers.

Les fichiers du terminal MetaTrader 4 sont placés dans leurs dossiers standard : un Expert Advisor dans le dossier \expert et un indicateur (qui n'est pas requis pour le test) dans le dossier \expert\indicators. Tout cela se trouve dans le répertoire du terminal. L'Expert Advisor est installé avec d'autres Expert Advisors.

Les fichiers à échanger entre l'Expert Advisor et EViews se trouvent dans \expert\files pendant le fonctionnement de l'Expert Advisor et dans le dossier \tester\files lors du test de l'Expert Advisor.

Le fichier envoyé par l'Expert Advisor à EViews est nommé quotes.txt quels que soient le symbole et la période sélectionnés. Par conséquent, l'Expert Advisor peut être attaché à n'importe quel symbole tandis que l'étape de prévision doit être spécifiée dans les paramètres de l'Expert Advisor à son démarrage.

EViews renvoie le fichier nommé EVIEWSFORECAST.txt. Le fichier de travail EViews worf.wf1 est placé dans le répertoire du terminal.

Les répertoires spécifiés dans les programmes EViews qui sont attachés à l'article ne correspondront probablement pas aux répertoires disponibles sur vos ordinateurs. J'ai installé ces programmes dans le dossier racine du disque. Dans EViews, vous devrez maîtriser le répertoire par défaut ou spécifier vos propres répertoires (je n'ai pas utilisé les répertoires par défaut utilisés par EViews lui-même).


4. Expert Advisor de MQL4

L'algorithme de fonctionnement de l'Expert Advisor est simplifié au maximum :

  • L'Expert Advisor est rattaché à l'horizon temporel M1 de tout symbole ;
  • Un pas de prévision en minutes est précisé dans les paramètres de l'Expert Advisor. Le pas de prévision par défaut est de 60 minutes (Рќ1). En attachant l'Expert Advisor à M1, vous avez la possibilité de mieux visualiser les résultats des tests, car le graphique de test peut être compressé lors du passage à une période plus longue ;
  • À des fins de prévision dans EViews, l'Expert Advisor génère le fichier quotes.txt avec le nombre de barres (observations) tel que spécifié dans les paramètres de l'Expert Advisor ;
  • Si la prévision est supérieure au prix actuel, une position longue s'ouvre ;
  • Si la prévision est inférieure au prix actuel, une position courte s'ouvre ;
  • L'Expert Advisor n'ouvre pas plus d'une position (sans ajouter à une position) ;
  • Quelle que soit la prévision, il ferme la position précédente et ouvre la nouvelle. L'algorithme d'ouverture des positions coïncide avec l'algorithme de calcul du bénéfice/perte dans le programme dans EViews ;
  • Le volume de la position à ouvrir est de 0,1 lot ;
  • Les ordres stop loss et take profit ne sont pas utilisés (ils sont fixés à 100 pips bien que l'Expert Advisor dispose d'un code pour placer des stops à des intervalles d'erreur de prévision) ;
  • Un graphique est dessiné montrant la valeur de prévision et deux lignes à un intervalle d'erreur de prévision standard. Lorsque vous visualisez le graphique du testeur sur des délais plus courts que celui auquel l'Expert Advisor était attaché, gardez à l'esprit que la ligne de prévision est décalée, c'est-à-dire que la prévision dessinée est la prévision à laquelle le prix actuel devrait arriver à la fin de la période.

L'Expert Advisor est attaché à la période M1 tandis que dans le testeur, le graphique est mieux visualisé sur M5.

Le code source du MQL4 Expert Advisor pour le trading de l'EURUSD n'est pas fourni dans cet article en raison de son volume (environ 600 lignes). Il se trouve dans EvewsMT4.mq4 dans l'archive EViews_MetaTrader_4.zip jointe à l'article.


5. Résultats des tests d’Expert Advisor

Exécutez l'Expert Advisor dans le testeur sur la période M1.

Les paramètres d'entrée sont indiqués ci-dessous.



Fig. 9. Paramètres d'entrée de l'Expert Advisor


Un fragment du graphique de test est illustré ci-dessous :



Fig. 10. Test de l'Expert Advisor en mode visualisation


Les résultats du test de l'Expert Advisor qui utilise des prévisions à une heure (pas) d'avance sont présentés ci-dessous.

Rapport du testeur de stratégie

EvewsMT4

Réel (Build 406)

Symbole

EURUSD (Euro contre dollar américain)

Délai

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

Modèle

Chaque tick (le mode le plus précis basé sur les délais disponibles les plus courts)

Paramètres

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






Les bars dans l'histoire

7948

Tiques modélisées

79777

Qualité de la modélisation

25.00 %

Erreurs de graphique incompatibles

0






Dépôt initial

10000.00





Bénéfice net

-202.10

Bénéfice brut

940.72

Perte brute

-1142.82

Facteur de profit

0.82

Rendement attendu

-1.73



Retrait absolu

326.15

Retrait maximal

456.15 (4.50 %)

Retrait relatif

4.50% (456.15)


Total de trades

117

Positions courtes (% gagné)

58 (51.72 %)

Positions longues (% gagné)

59 (45.76 %)


Bénéfice des trades (% du total)

57 (48.72 %)

Perte des trades (% du total)

60 (51.28 %)

Plus grand

Bénéfice de trade

100.00

Perte de trade

-79.00

Moyen

Bénéfice de trade

16.50

Perte de trade

-19.05

Maximum

gains consécutifs (bénéfice en argent)

6 (105.00)

pertes consécutives (perte en argent)

8 (-162.00)

Maximal

bénéfice consécutif (compte)

166.00 (5)

perte consécutive (compte)

-162.00 (8)

Moyen

gains consécutives

2

pertes consécutives

2




No.

Temps

Type

Ordre

Volume

Prix

S / L

T / P

Bénéfice

Solde

1

2011.09.12 01:00

Vente

1

0.10

1.3609

1.3711

1.3509


2

2011.09.12 02:00

Fermer

1

0.10

1.3584

1.3711

1.3509

25.00

10025.00


Fig. 11. Résultats des tests de l’Expert Advisor


Les résultats sont meilleurs que ceux obtenus dans EViews.

Notez que le calcul des résultats dans EViews et le testeur est différent en termes de données d'entrée. EViews utilise 118 barres et calcule la prévision à partir de la barre 3 sur la gauche alors que la prévision d'un pas en avant se déplace progressivement vers la fin de la période, augmentant le nombre de barres utilisées dans l'estimation de l'équation de régression.

L'Expert Advisor décale la fenêtre de 118 barres et calcule la prévision sur la barre 119, c'est-à-dire que l'équation de régression est toujours estimée sur 118 barres puisque EViews agrandit la fenêtre au sein de l'échantillon et l'Expert Advisor décale la fenêtre de largeur fixe.

L'Expert Advisor nous aide à produire un tableau d'estimation de modèle étendu. Alors que le tableau ci-dessus consistait en une seule ligne, il contient maintenant 117 lignes - pour chaque date pour laquelle la prévision a été produite.

Le tableau est le suivant :

Début
de l'échantillon
Fin
de l'échantillon
Fait en date du
fin
Un pas
Prévision
Prévision
Erreur
Bénéfice
de l'échantillon
Perte
de l'échantillon
Maximal
retrait
Montant
de pertes
P/F dans
pips
P/F en observations
Facteur de récupération
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


Tableau Résultats des tests dans EViews


Le tableau suggère que notre modèle (si primitif et inachevé) est pratiquement sans espoir. Il a besoin d'être amélioré.

Traçons les graphiques des deux colonnes : P/F en pips et P/F en observations.


Fig. 12. Graphiques du facteur de bénéfice du modèle sur l'échantillon de 118 bars


Ce graphique représente la dépendance des facteurs de bénéfice sur le nombre de barres dans l'analyse. Il y a une tendance haussière évidente.

Vérifions les résultats sur l'échantillon de 238 barres. Le graphique dessiné est le suivant :


Fig. 13. Graphiques du facteur de bénéfice du modèle sur l'échantillon de 236 barres


Le fait que les graphiques des facteurs de bénéfice diffèrent suggère que le modèle est instable.


Conclusion

L'article a traité de l'utilisation des prévisions à un pas à l'avance produites par EViews pour le développement de l'Expert Advisor dans MetaTrader 4.

Le résultat négatif que nous avons obtenu indique que la construction d'un modèle dans EViews est une tâche assez compliquée qui semble néanmoins être plus potentiellement productive que le développement intuitif des Expert Advisors.


Traduit du russe par MetaQuotes Ltd.
Article original : https://www.mql5.com/ru/articles/1345

Fichiers joints |
EViewsMT4.zip (10.25 KB)
L’algorithme de génération de ticks dans le testeur de stratégie du terminal MetaTrader 5 L’algorithme de génération de ticks dans le testeur de stratégie du terminal MetaTrader 5
MetaTrader 5 nous permet de simuler le trading automatique, au sein d’un testeur de stratégie intégré, en utilisant l’Expert Advisors et le MQL5 language. Ce type de simulation est appelé test d’Expert Advisors, et peut être mis en œuvre en utilisant l’optimisation multithread, ainsi que simultanément sur un certain nombre d’instruments. Afin de fournir un test approfondi, une génération de ticks basée sur l’historique des minutes disponibles doit être effectuée. Cet article fournit une description détaillée de l’algorithme, par lequel les ticks sont générés pour les tests historiques dans le terminal client MetaTrader 5.
Indicateur pour la cartographie Kagi Indicateur pour la cartographie Kagi
L'article propose un indicateur de graphique Kagi avec diverses options de cartographie et des fonctions supplémentaires. En outre, le principe de cartographie des indicateurs et ses fonctionnalités de mise en œuvre MQL5 sont pris en compte. Les cas les plus populaires de sa mise en œuvre dans le trading sont affichés - stratégie d'échange Yin/Yang, s'éloignant de la ligne de tendance et augmentant constamment les "épaules" / diminuant la "taille".
Comment copier le trading depuis MetaTrader 5 vers MetaTrader 4 Comment copier le trading depuis MetaTrader 5 vers MetaTrader 4
Est-il possible de trader sur un vrai compte MetaTrader 5 aujourd'hui ? Comment organiser un tel trading ? L'article contient la théorie de ces questions et les codes de travail utilisés pour copier les trades depuis le terminal MetaTrader 5 vers MetaTrader 4. L'article sera utile à la fois pour les développeurs d'Expert Advisors et pour les traders pratiquants.
Création d'un Expert Advisor multi-devises multi-systèmes Création d'un Expert Advisor multi-devises multi-systèmes
L'article présente une structure pour un Expert Advisor qui trade plusieurs symboles et utilise plusieurs systèmes de trading simultanément. Si vous avez déjà identifié les paramètres d'entrée optimaux pour tous vos EA et obtenu de bons résultats de backtesting pour chacun d'eux séparément, demandez-vous quels résultats vous obtiendriez si vous testiez tous les EA simultanément, avec toutes vos stratégies réunies.