程序库: 日历 - 页 7 123456789101112131415 新评论 eapricorn 2023.02.01 12:14 #61 谢谢 fxsaber、 脚本很棒。我是 MT5 的新手,正在使用您的日历脚本。对于历史数据,如何添加经济数据所属的时期?(例如,1 月份的发布数据属于 1 月份)? 谢谢,并致以最崇高的敬意、 埃德温 fxsaber 2023.02.01 19:25 #62 eapricorn 时期?(例如,1 月份的发布数据属于 1 月份)? #include <fxsaber\Calendar\Calendar.mqh> //https://www.mql5.com/zh/code/32430 void OnStart() { CALENDAR Calendar; Calendar.Set(NULL, CALENDAR_IMPORTANCE_HIGH, D'2023.01.01', D'2023.02.01'); Print(Calendar.ToString()); } eapricorn 2023.02.02 10:10 #63 fxsaber # : 你好 fxsaber、 感谢您的留言。很抱歉,我可能以错误的方式解释了我的问题。实际上,我指的是 MT5 中的 "日历窗口",该窗口的 "期间 "栏中通常有 "1 月",表示今天 "2023 年 2 月 2 日 "发布的经济数据实际上指的是 1 月份的经济数据(如附图)。但从脚本中,我看到只有数据发布日期,而没有指定 "期间"。(如附图)。 我试着搜索MqlCalendarValue,并使用 Value.period 来指定 "期间 "日期,但得到的值非常奇怪,是 1970.01.01(如附图)。 衷心希望知道是否可以使用周期,以及如何将其添加到您的脚本中?谢谢。 附加的文件: Calendar.jpg 298 kb MT5_calendar.jpg 414 kb MetaEditor.jpg 465 kb fxsaber 2023.02.02 14:55 #64 eapricorn #:实际上,我指的是 MT5 中的 "日历窗口",该窗口的周期栏中通常有 "1 月",表示今天发布的经济数据 "2023 年 2 月 2 日 "实际上指的是 1 月份的经济数据(如附图)。 #include <fxsaber\Calendar\Calendar.mqh> //https://www.mql5.com/zh/code/32430 struct CALENDAR_EVENT : public EVENT { string ToString() const { struct CALENDAR_VALUE : public MqlCalendarValue { string ToString( void ) const { static const string Month[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; static const string Quarter[] = {"Q1", "Q2", "Q3", "Q4"}; MqlDateTime Time; return((this.period && ::TimeToStruct(this.period, Time) ? (this.revision ? Quarter[(Time.mon - 1) / 3] : Month[Time.mon - 1] + ((Time.day != 1) ? " " + (string)Time.day : NULL)) : NULL)); } } Value; return(this.EVENT::ToString() + (::CalendarValueById(this.id, Value) ? Value.ToString() : NULL)); } }; void OnStart() { CALENDAR Calendar; Calendar.Set(); const int Size = Calendar.GetAmount(); for (int i = 0; i < Size; i++) { const CALENDAR_EVENT Event = Calendar[i]; Print(Event.ToString()); } } 2023.02.02 16:15 GBP 3 BoE Governor Bailey Speech (boe-governor-bailey-speech), United Kingdom (GB) | | | | 2023.02.02 17:15 EUR 3 ECB President Lagarde Speech (ecb-president-lagarde-speech), European Union (EU) | | | | 2023.02.02 20:30 EUR 3 ECB President Lagarde Speech (ecb-president-lagarde-speech), European Union (EU) | | | | 2023.02.03 15:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | | 16 K | 223 K | Jan 2023.02.03 17:00 USD 3 ISM Non-Manufacturing PMI (ism-non-manufacturing-pmi), United States (US) | | 53 | 49.6 | Jan 2023.02.06 12:00 EUR 3 Retail Sales m/m (retail-sales-mm), European Union (EU) | | 0.3% | 0.8% | Dec 2023.02.06 17:00 CAD 3 Ivey PMI (ivey-pmi), Canada (CA) | | 55.2 | 33.4 | Jan 2023.02.07 05:30 AUD 3 RBA Interest Rate Decision (rba-interest-rate-decision), Australia (AU) | | | 3.1% | 2023.02.07 19:30 CAD 3 BoC Governor Macklem Speech (boc-governor-macklem-speech), Canada (CA) | | | | 2023.02.08 06:30 INR 3 RBI Interest Rate Decision (rbi-interest-rate-decision), India (IN) | | | 6.25% | 2023.02.08 17:30 USD 3 EIA Crude Oil Stocks Change (eia-crude-oil-stocks-change), United States (US) | | -0.012 M | 4.140 M | Feb 3 2023.02.09 AllDay EUR 3 EU Leaders Summit (eu-leaders-summit), European Union (EU) | | | | 2023.02.09 10:30 SEK 3 Riksbank Interest Rate Decision (riksbank-interest-rate-decision), Sweden (SE) | | | 2.5% | AdrianR007 2023.02.16 21:17 #65 因为当前新闻值不是即时生成的?您的示例使用了 (Event.Actual!=LONG_MIN) && (Event.Forecast!= LONG_MIN) 方法,但这些值不被接受。 我需要做些什么,才能在实际测试中接受这个精确值,并执行您示例中的逻辑? 谢谢 fxsaber 2023.02.16 21:21 #66 AdrianR007 LONG_MIN) && (Event.Forecast!= LONG_MIN) 方法,但数值不被接受 我该怎么做才能在实际测试中接受该值,并执行您示例中的逻辑? 我不明白对话的上下文。 AdrianR007 2023.02.23 02:30 #67 新闻的当前值没有更新,因此代码 (Event.Actual!=LONG_MIN) && (Event.Forecast!= LONG_MIN) 不起作用。有没有其他方法可以在事件发生时读取事件? fxsaber 2023.02.23 07:43 #68 AdrianR007 LONG_MIN) && (Event.Forecast!= LONG_MIN) 不起作用。有没有其他方法可以在事件发生时读取事件? 您说得太简洁了,我无法理解您的意思。请提供简洁的代码,您可以运行这些代码并看到您想讨论的问题。 AdrianR007 2023.02.23 14:43 #69 fxsaber #:你说得太简洁了,让人无法明确理解你的意思。请提供简洁的代码,您可以运行这些代码并看到您想讨论的问题。 我正在使用您示例中的代码,但事件发生时当前值没有更新。 谢谢 附加的文件: Capture.PNG 124 kb BillionerClub 2023.02.23 19:35 #70 AdrianR007 #: 我正在使用您示例中的代码,但事件发生时当前值没有更新。对此有什么建议吗? 谢谢 这不是自刷新库,使用日历中的 id 从 mql5 获取新数据。 123456789101112131415 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢 fxsaber、
脚本很棒。我是 MT5 的新手,正在使用您的日历脚本。对于历史数据,如何添加经济数据所属的时期?(例如,1 月份的发布数据属于 1 月份)?
谢谢,并致以最崇高的敬意、
埃德温
你好 fxsaber、
感谢您的留言。很抱歉,我可能以错误的方式解释了我的问题。实际上,我指的是 MT5 中的 "日历窗口",该窗口的 "期间 "栏中通常有 "1 月",表示今天 "2023 年 2 月 2 日 "发布的经济数据实际上指的是 1 月份的经济数据(如附图)。但从脚本中,我看到只有数据发布日期,而没有指定 "期间"。(如附图)。
我试着搜索MqlCalendarValue,并使用 Value.period 来指定 "期间 "日期,但得到的值非常奇怪,是 1970.01.01(如附图)。
衷心希望知道是否可以使用周期,以及如何将其添加到您的脚本中?谢谢。
实际上,我指的是 MT5 中的 "日历窗口",该窗口的周期栏中通常有 "1 月",表示今天发布的经济数据 "2023 年 2 月 2 日 "实际上指的是 1 月份的经济数据(如附图)。
因为当前新闻值不是即时生成的?您的示例使用了 (Event.Actual!=LONG_MIN) && (Event.Forecast!= LONG_MIN) 方法,但这些值不被接受。
我需要做些什么,才能在实际测试中接受这个精确值,并执行您示例中的逻辑?
谢谢
我该怎么做才能在实际测试中接受该值,并执行您示例中的逻辑?
我不明白对话的上下文。
您说得太简洁了,我无法理解您的意思。请提供简洁的代码,您可以运行这些代码并看到您想讨论的问题。
你说得太简洁了,让人无法明确理解你的意思。请提供简洁的代码,您可以运行这些代码并看到您想讨论的问题。
谢谢
我正在使用您示例中的代码,但事件发生时当前值没有更新。对此有什么建议吗? 谢谢
这不是自刷新库,使用日历中的 id 从 mql5 获取新数据。