ライブラリ: カレンダー - ページ 13

 

取引、自動取引システム、取引戦略のテストに関するフォーラム

ライブラリ: カレンダー

トレーディングプロFX, 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が表示されるのはなぜですか?

To-パラメータが0です。

 
MT5のみのSet()メソッド。MT4のニュースを初期化してダウンロードする方法は?
 
mbjen #:
MT5のみのSet()メソッド。MT4でニュースを初期化してダウンロードする方法を教えてください。

MT5テスターではどのように行うのですか。

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

ロード後、次のようになる: CALENDAR{ Events:[197684] }。

そして、FilterByCurrencyの後: CALENDAR{ Events:[] }が得られます。


シンボル() =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.444EURUSD,H1: size: 0
2025.04.02 21:59:56.772 EURUSD,H1: size: 197684

 
mbjen #:

FilterByCurrency() を呼び出すと、空の配列が返されます。

これは通貨によるフィルターであり、記号によるフィルターではありません。


MEでCalendar.mqhを開き、ALT+Mを押す。


 
>

これは通貨によるフィルターであり、文字によるフィルターではない。


了解

 

こんにちは。カレンダーを特定の時間にずらすことは可能ですか?

カレンダーは1つのターミナル(1つのタイムゾーン)でダウンロードされますが、異なるタイムゾーンのターミナルで使用されます(MT4)。どうにかしてカレンダーの時間を修正する必要があることがわかりました。