라이브러리: 캘린더 - 페이지 13

 

트레이딩, 자동매매 시스템 및 트레이딩 전략 테스트 포럼

라이브러리: 캘린더

TradingProFX, 2024.10.30 13:12

if (MQLInfoInteger(MQL_TESTER)) // 테스터에서 작업하는 경우
{
      Res = Calendar.Load(CALENDAR_FILENAME);
      Print ("SIZE = ", Calendar.Set(NULL,CALENDAR_IMPORTANCE_NONE, 0, 0));
...

테스터에서 0이 나오는 이유는 무엇인가요?

제로 투 파라미터.

 
Set() 메서드는 MT5 전용입니다. MT4용 뉴스를 초기화하고 다운로드하는 방법은 무엇인가요?
 
mbjen #:
Set() 메서드는 MT5 전용입니다. MT4용 뉴스를 초기화하고 다운로드하는 방법은 무엇인가요?

MT5 테스터는 어떻게 하나요?

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

로드 후 다음과 같이 표시됩니다: CALENDAR{ Events:[197684] }

그리고 FilterByCurrency 이후: CALENDAR{ Events:[] }


Symbol() = EURUSD

 
mbjen EURUSD

아무것도 이해하지 못합니다. 컴파일된 mq4/5를 첨부합니다.

 
fxsaber #:

아무것도 이해가 되지 않습니다. 컴파일된 mq4/5를 첨부하세요.

FilterByCurrency가 작동하지 않습니다. FilterByCurrency()를 호출한 후 빈 배열이 수신됩니다.

코드는 간단합니다.

#include <Calendar\Calendar.mqh>

#define CALENDAR_FILENAME "Calendar.bin"

CALENDAR                   Calendar;

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

디버거에서 Calendar.Load 뒤에 CALENDAR{ Events:[197684] }
그리고 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: size: 0
2025.04.02 21:59:56.772 EURUSD,H1: size: 197684

 
mbjen #:

FilterByCurrency()를 호출한 후 빈 배열을 얻습니다.

이것은 기호가 아닌 통화를 기준으로 필터링하는 것입니다.


ME에서 Calendar.mqh를 열고 ALT+M을 누릅니다.


 
>

이것은 문자가 아닌 통화별 필터입니다.


알겠습니다.

 

안녕하세요. 캘린더를 특정 시간으로 변경할 수 있나요?

캘린더는 하나의 단말기(하나의 시간대)에서 다운로드되지만 다른 시간대의 단말기에서 사용(MT4)됩니다. 어떻게든 캘린더의 시간을 수정해야 한다는 것이 밝혀졌습니다.