Bibliotecas: MultiTester - página 56

 

Às vezes, é necessário visualizar uma parte do histórico de preços na forma de uma tabela. Isso pode ser feito por meio de CTRL+U, selecionando a guia Bars/Ticks. Inserir o intervalo necessário manualmente. Isso é tedioso.


Por isso, criei uma funcionalidade adicional, que é demonstrada pelo Expert Advisor a seguir.

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

input bool inTicks = true; // true - Ticks, false - Bars
input int inBefore = -60; // Antes em segundos
input int inAfter = 60;   // Após em segundos
input ENUM_TIMEFRAMES inPeriod = PERIOD_CURRENT; // Período (modo Barras)

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


Você clica (com a tecla CTRL pressionada) no local necessário do gráfico e obtém automaticamente os dados tabulares correspondentes de uma só vez.

As funções selecionadas simplesmente preenchem determinados campos de dados e os consultam. Em seguida, por meio da GUI, você vê o que estava interessado. Automação, em geral.

 
Talvez a ideia de escrever uma ferramenta de EA que combine vários recursos úteis seja uma boa ideia.