2026-11-03 17:10:00 -05:00 | | | //+------------------------------------------------------------------+
|
| | | //| Test2.mq5 |
|
| | | //| Copyright 2025, Leo. |
|
| | | //| https://www.mql5.com/es/users/nique_372/news |
|
| | | //+------------------------------------------------------------------+
|
| | | #property copyright "Copyright 2025, Leo."
|
| | | #property link "https://www.mql5.com/es/users/nique_372/news"
|
| | | #property version "1.00"
|
| | | #property strict
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | //#define RELEASE_VERSION
|
| | | #include "..\\..\\Secrets.mqh"
|
| | | #include <TSN\\FastNL\\Main.mqh>
|
2026-11-05 12:09:22 -05:00 | | | #include <TSN\\Std\\Basics\\Try.mqh>
|
2026-11-03 17:10:00 -05:00 | | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| |
|
| | | //+------------------------------------------------------------------+
|
| | | input string InpUsEventList = "ism-prices-paid,building-permits,pce-price-index-mm,markit-services-pmi"; // USA Events
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | //| Script program start function |
|
| | | //+------------------------------------------------------------------+
|
| | | void OnStart()
|
| | | {
|
| | | //---
|
| | | const datetime d = D'2018.01.01 00:00:00';
|
| | | const datetime h = (iTime(_Symbol, PERIOD_D1, 0) + 86400 * 2);
|
| | | //---
|
| | | #ifdef TSN_FASTNL_FUNC_CTS
|
| | | TSN_FASTNL_FUNC_CTS(THE_BOT_PLACE_USER_ID);
|
| | | #else
|
| | | CiNewsLeo_CalendarInit(THE_BOT_PLACE_USER_ID);
|
| | | #endif // TSN_MCPSERVER_FUNC_CTS
|
| | |
|
| | | //---
|
| | | TSN::ICalendarByLeo* calendar = CiNewsLeo_CreateEconomicCalendar();
|
| | |
|
2026-11-05 12:09:22 -05:00 | | | //---
|
| | | string _what = NULL;
|
| | | TSNSTD_TRY_INI
|
| | | {
|
| | | //---
|
| | | ulong events[];
|
| | | TSN:: CalendarByLeo_ParseStrEvents(CALENDAR_COUNTRY_CODE_HASH_US, InpUsEventList, ',', events);
|
| | |
|
| | | //---
|
| | | TSNSTD_TRY_EF(calendar.AddCountryByEventList(COUNTRY_ID_USA, events), true, CiNewsLeo_FormatTraceFirst(_what))
|
| | | TSNSTD_TRY_EF(calendar.SetCalendar(d, h), true, CiNewsLeo_FormatTraceFirst(_what))
|
| | | TSNSTD_TRY_EF(calendar.GetDataPredifinied(true), true, CiNewsLeo_FormatTraceFirst(_what))
|
| | |
|
| | | //---
|
| | | TSN::CEconomicEvents container[];
|
2026-11-03 17:10:00 -05:00 | | |
|
2026-11-05 12:09:22 -05:00 | | | //--- Obtener los eventos de USA (ID = 840)
|
| | | const int t = ArrayResize(container, calendar.ContainerGetEventsSizeByCountryId(COUNTRY_ID_USA));
|
| | | calendar.ContainerGetDataByCountryId(COUNTRY_ID_USA, container);
|
2026-11-03 17:10:00 -05:00 | | |
|
2026-11-05 12:09:22 -05:00 | | | //--- Imprimimo todos los event_codes
|
| | | for(int i = 0; i < t; i++)
|
| | | {
|
| | | const int last = ArraySize(container[i].Porcentage_Array);
|
| | | EconomicEventLogFull(container[i].Porcentage_Array[last - 1], container[i]);
|
| | | }
|
| | | }
|
| | | TSNSTD_TRY_END
|
| | |
|
| | | //---
|
| | | if(_what != NULL)
|
2026-11-03 17:10:00 -05:00 | | | {
|
2026-11-05 12:09:22 -05:00 | | | FastLog(FUNCION_ACTUAL, FATAL_ERROR_TEXT, _what);
|
2026-11-03 17:10:00 -05:00 | | | }
|
| | |
|
2026-11-05 12:09:22 -05:00 | | | //---
|
2026-11-03 17:10:00 -05:00 | | | delete calendar;
|
| | | }
|
| | |
|
| | | //+------------------------------------------------------------------+
|
| | | void EconomicEventLogFull(const TSN::EconomicEventData &evento, const MqlCalendarEvent& ev)
|
| | | {
|
| | | //---
|
| | | string mul = ev.unit == CALENDAR_UNIT_PERCENT ? "%" : MultiplicadorCaledarioToString(ev.multiplier);
|
| | | string forecast = evento.forecast_value == ERROR_VARIABLE ? "no defined" : StringFormat("%.5f %s", evento.forecast_value, mul);
|
| | | string actual = evento.actual_value == ERROR_VARIABLE ? "no defined" : StringFormat("%.5f %s", evento.actual_value, mul);
|
| | | string prev = evento.prev_value == ERROR_VARIABLE ? "no defined" : StringFormat("%.5f %s", evento.prev_value, mul);
|
| | |
|
| | |
|
| | | //---
|
| | | printf("------- Event name: %s", ev.name);
|
| | | printf("Importance = %s\nType = %s\nActual value = %s\nPrev value = %s\nForecast value = %s\nImpact = %s\nUnit = %s\nCountry Id = %I64u\nId = %I64d\nTime = %s",
|
| | | ImportanciaEventToString(ev.importance),
|
| | | EnumToString(ev.type),
|
| | | actual,
|
| | | prev,
|
| | | forecast,
|
| | | EnumToString(evento.impact),
|
| | | EnumToString(ev.unit),
|
| | | ev.country_id,
|
| | | ev.id,
|
| | | TimeToString(evento.time));
|
| | | }
|
| | | //+------------------------------------------------------------------+
|