Bibliothèque: MultiTester - page 56

 

Il est parfois nécessaire de visualiser un élément de l'historique des prix sous la forme d'un tableau. Cela peut se faire via CTRL+U, en sélectionnant l'onglet Bars/Ticks. Il faut ensuite saisir à la main l'intervalle nécessaire. C'est fastidieux.


C'est pourquoi j'ai créé une fonctionnalité supplémentaire, qui est démontrée par l'Expert Advisor suivant.

#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/fr/code/26132
#include <fxsaber\Keyboard\Keyboard.mqh> // https://www.mql5.com/fr/code/48393

input bool inTicks = true; // true - Ticks, false - Bars
input int inBefore = -60; // Avant en secondes
input int inAfter = 60;   // Après en secondes
input ENUM_TIMEFRAMES inPeriod = PERIOD_CURRENT; // Période (mode Bars)

datetime GetTime( const int X )
{
  int Window;
  datetime Res;
  double Price;
    
  return(ChartXYToTimePrice(0, X, 0, Window, Res, Price) ? Res : 0);
}

void OnChartEvent( const int32_t id, const long &lparam, const double&, const string& )
{
  if ((id == CHARTEVENT_CLICK) && KEYBOARD::IsControl())
  {
    const datetime Time = GetTime((int)lparam);

    if (Time)
    {
      if (inTicks)
        MTTESTER::CopyTicks(_Symbol, Time + inBefore, Time + inAfter);
      else
        MTTESTER::CopyRates(_Symbol, inPeriod, Time + inBefore, Time + inAfter);      
    }    
  }
}


Vous cliquez (avec la touche CTRL enfoncée) à l'endroit voulu du graphique et vous obtenez automatiquement et immédiatement les données tabulaires correspondantes.

Les fonctions sélectionnées remplissent simplement certains champs de données et les interrogent. L'interface graphique vous permet ensuite de voir ce qui vous intéresse. L'automatisation, en général.

 
L'idée d'écrire un outil d'EA qui combine plusieurs fonctions pratiques serait peut-être une bonne idée.