Identifiant   Mot de passe       Oublie mot de passe?  Oublie login?  Creer un compte

Trading Automatique

Coder plus... pour gagner plus!

Forum Trading Auto

by nvitale
Mar.15.10 12:48:02
by madjes
Mar.14.10 21:16:57
by pensera
Mar.14.10 10:33:33
by nvitale
Mar.11.10 21:08:44
by nvitale
Mar.10.10 17:08:38
by nvitale
Mar.08.10 23:27:41
Animé par JoomlaMe
Extraire les données historiques de Metatrader Envoyer

 

Voici la traduction d'un article intéressant d'Andrew du site TheGeneticTrader dont vous pouvez trouver la VO en anglais ici : Extracting Data From Metatrader.

Si vous avez regardé le planning de mon projet, vous savez que ma première étape est de créer un EA qui récupère les données historiques de Metatrader pour les placer dans un fichier CSV que j'utiliserai par la suite pour mon algorithme génétique.

Voici donc le code de cet EA nommé DataDumper.mq4 qui réalise cette tâche :

//+---------------------------+

//| Historic Data Dumping EA  |

//+---------------------------+

#property copyright "Andrew Whaley"

extern int min_year = 2008;
extern int max_year = 2009;

// Global scope

int handle;

int init()

{

int p = Period();

string pd;

if (p == 1) pd = "M1";

else if (p == 5) pd = "M5";

else if (p == 15) pd = "M15";

else if (p == 30) pd = "M30";

else if (p == 60) pd = "H1";

else if (p == 240) pd = "H4";

else pd = "D1";

string filename = StringConcatenate(Symbol(), "_", pd, ".csv");

handle = FileOpen(filename, FILE_CSV|FILE_WRITE, ',');

FileWrite(handle, "Date", "Time", "Volume", "Low", "Open", "Close", "High", "Bid", "Ask");

return(0);

}

int deinit()

{

FileClose(handle);

return(0);

}

int start()

{
string d,m,y,h,mi;
double open,close,high,low;
double vol;

if ((Year() >= min_year) && (Year() <= max_year))
{
if (Day() < 10) d = StringConcatenate("0", DoubleToStr(Day(),0));
else d = DoubleToStr(Day(),0);

if (Month() < 10) m = StringConcatenate("0", DoubleToStr(Month(),0));
else m = DoubleToStr(Month(),0);

y = DoubleToStr(Year(),0);

if (TimeHour(TimeCurrent()) < 10) h = StringConcatenate("0", DoubleToStr(TimeHour(TimeCurrent()),0));
else h = DoubleToStr(TimeHour(TimeCurrent()),0);

if (TimeMinute(TimeCurrent()) < 10) mi = StringConcatenate("0", DoubleToStr(TimeMinute(TimeCurrent()),0));
else mi = DoubleToStr(TimeMinute(TimeCurrent()),0);

string ds = StringConcatenate("\"", d, "-", m, "-", y, "\"");

string ts = StringConcatenate("\"", h, ":", mi, "\"");

open = iOpen(NULL, 0, 1);
close = iClose(NULL, 0, 1);
high = iHigh(NULL, 0, 1);
low = iLow(NULL, 0, 1);
vol = iVolume(NULL, 0, 1);

FileWrite(handle, ds, ts, vol, low, open, close, high, Bid, Ask);
}

return(0);

}

Voilà comment on l'utilise :

  1. Ouvrez le graphique que vous voulez utiliser et attachez y l'EA DataDumper,
  2. Pressez F6 pour le Testeur
  3. Sélectionnez le symbole et la pèriode
  4. Sélectionnez le champs ‘Open prices only’
  5. Configurez les propriété de pour l'année de départ et de fin
  6. Lancez le backtest

Quand le test est fini, allez chercher le fichier CSV résultant dans le répertoire <METATRADER>/tester/files.

 

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Articles en rapport :

 
Joomla 1.5 Templates by Joomlashack