Bibliotecas: Calendário - página 13

 

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Bibliotecas: Calendário

TradingProFX, 2024.10.30 13:12

if (MQLInfoInteger(MQL_TESTER)) // Se estiver trabalhando no Tester
{
      Res = Calendar.Load(CALENDAR_FILENAME);
      Print ("SIZE = ", Calendar.Set(NULL,CALENDAR_IMPORTANCE_NONE, 0, 0));
...

Por que obtenho 0 no testador?

Zero To-parameter.

 
Método Set() somente para MT5. Como inicializar e baixar notícias para o MT4?
 
mbjen #:
Método Set() somente para MT5. Como inicializar e fazer download de notícias para o MT4?

Como isso é feito no testador do MT5.

 
Calendar.Load(CALENDAR_FILENAME);
Calendar.FilterByCurrency(Symbol());

Depois de Load, obtenho: CALENDAR{ Events:[197684] }

E depois de FilterByCurrency: CALENDAR{ Events:[] }


Symbol() = EURUSD

 
mbjen EURUSD

Não estou entendendo nada. Anexe o mq4/5 compilado.

 
fxsaber #:

Não estou entendendo nada. Anexe o mq4/5 compilado.

FilterByCurrency não funciona. Uma matriz vazia é recebida após a chamada de FilterByCurrency().

O código é simples

#include <Calendar\Calendar.mqh>

#define CALENDAR_FILENAME "Calendar.bin"

CALENDAR                   Calendar;

if(DownloadCalendar())
        {
         Calendar.Load(CALENDAR_FILENAME);
         Calendar.FilterByCurrency(Symbol());
        }

Após Calendar.Load no depurador, vejo CALENDAR{ Events:[197684] }
E após Calendar.FilterByCurrency(Symbol()): CALENDAR{ Events:[] }

 
if(DownloadCalendar())
        {
         Calendar.Load(CALENDAR_FILENAME);
         int size=Calendar.GetAmount();
         Print("size: ", size);
         Calendar.FilterByCurrency(Symbol());
         size=Calendar.GetAmount();
         Print("size: ", size);
        }

2025.04.02 21:59:59.444 EURUSD,H1: tamanho: 0
2025.04.02 21:59:56.772 EURUSD,H1: tamanho: 197684

 
mbjen #:

Uma matriz vazia é obtida após a chamada de FilterByCurrency().

Esse é um filtro por moeda, não por símbolo.


Abra o Calendar.mqh no ME e pressione ALT+M.


 
>

Esse é um filtro por moeda, não por caractere.


Entendi

 

Olá. É possível mudar o calendário para um determinado horário?

O calendário foi baixado em um terminal (com um fuso horário), mas será usado (MT4) em um terminal com um fuso horário diferente. Acontece que é necessário corrigir a hora no calendário de alguma forma.