No es frecuente, pero al fusionar matrices, la matriz final presenta errores en forma de falta de ordenación, ya que los elementos más recientes de la matriz deberían tener un período de tiempo más largo.
No he notado algo así. Intenta crear un script para reproducirlo.
2022.11.0417:00 USD 2 Baker Hughes US Oil Rig Count(baker-hughes-us-oil-rig-count), United States(US) | | | 610 |
2022.11.0417:00 USD 2 Baker Hughes US Total Rig Count(baker-hughes-us-total-rig-count), United States(US) | | | 768 |
2022.11.08 AllDay EUR 2 Economic and Financial Affairs Council Meeting(economic-financial-affairs-council-meeting), European Union(EU) | | | |
2022.11.07 ≈02:00 CNY 2 Trade Balance USD(trade-balance-usd), China(CN) | | $83.12 B | $84.74 B |
2022.11.07 ≈02:00 CNY 2 Trade Balance(trade-balance), China(CN) | | ¥565.34 B | ¥573.57 B |
La razón es la siguiente. La ordenación por fusión sólo funcionará si ambos calendarios están ordenados. Aquí el calendario original no está ordenado por tiempo.
La razón es la siguiente. La ordenación combinada sólo funcionará si ambos calendarios están ordenados. En este caso, el calendario de origen no está ordenado por hora.
Gracias. Sin ti nunca lo hubiera averiguado )) todo parece demasiado correcto y ha pasado todas las comprobaciones.
Por favor, ayuda a entender si los calendarios son correctos o no.
Tomé nóminas conocidas y comparé varios calendarios. Parecen coincidir en el momento de la publicación de las noticias.
// Salida de datos de nóminas no agrícolas.#include <fxsaber\Calendar\Calendar.mqh> // https://www.mql5.com/es/code/32430voidOnStart()
{
CALENDAR Calendar;
Calendar.Set(840030016); // Nóminas no agrícolas (nonfarm-payrolls), Estados Unidos (US)
Calendar.FilterByTime(D'2019.01.01', D'2023.01.01');
for (int i = Calendar.GetAmount() - 1; i >= 0; i--)
Print(Calendar[i].ToString());
}
2022.12.0215:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 263 K | -30 K | 261 K | 284 K
2022.11.0414:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 261 K | -97 K | 263 K | 315 K
2022.10.0714:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 263 K | 33 K | 315 K |
2022.09.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 315 K | 156 K | 528 K | 526 K
2022.08.0514:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 528 K | -19 K | 372 K | 398 K
2022.07.0814:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 372 K | -229 K | 390 K | 384 K
2022.06.0314:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 390 K | -19 K | 428 K | 436 K
2022.05.0614:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 428 K | 317 K | 431 K | 428 K
2022.04.0114:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 431 K | 80 K | 678 K | 750 K
2022.03.0415:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 678 K | -413 K | 467 K | 481 K
2022.02.0415:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 467 K | -192 K | 199 K | 510 K
2022.01.0715:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 199 K | 379 K | 210 K | 249 K
2021.12.0315:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 210 K | 330 K | 531 K | 546 K
2021.11.0514:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 531 K | -54 K | 194 K | 312 K
2021.10.0814:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 194 K | -302 K | 235 K | 366 K
2021.09.0314:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 235 K | 23 K | 943 K | 1053 K
2021.08.0614:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 943 K | 381 K | 850 K | 938 K
2021.07.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 850 K | 3 K | 559 K | 583 K
2021.06.0414:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 559 K | -396 K | 266 K | 278 K
2021.05.0714:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 266 K | -1 K | 916 K | 770 K
2021.04.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 916 K | 409 K | 379 K | 468 K
2021.03.0515:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 379 K | -137 K | 49 K | 166 K
2021.02.0515:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 49 K | -497 K | -140 K | -227 K
2021.01.0815:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | -140 K | 207 K | 245 K | 336 K
2020.12.0415:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 245 K | 528 K | 638 K | 610 K
2020.11.0615:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 638 K | -76324 K | 661 K | 672 K
2020.10.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 661 K | 78356 K | 1371 K | 1489 K
2020.09.0414:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 1371 K | -74433 K | 1763 K | 1734 K
2020.08.0714:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 1763 K | 4511 K | 4800 K | 4791 K
2020.07.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 4800 K | -12034 K | 2509 K | 2699 K
2020.06.0514:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 2509 K | -10000 K | -20500 K | -20687 K
2020.05.0814:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | -20500 K | 139 K | -701 K | -870 K
2020.04.0314:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | -701 K | 163 K | 273 K | 275 K
2020.03.0615:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 273 K | 161 K | 225 K | 273 K
2020.02.0715:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 225 K | 161 K | 145 K | 147 K
2020.01.1015:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 145 K | 168 K | 266 K | 256 K
2019.12.0615:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 266 K | 168 K | 128 K | 156 K
2019.11.0114:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 128 K | 172 K | 136 K | 180 K
2019.10.0414:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 136 K | 174 K | 130 K | 168 K
2019.09.0614:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 130 K | 177 K | 164 K | 159 K
2019.08.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 164 K | 178 K | 224 K | 193 K
2019.07.0514:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 224 K | 176 K | 75 K | 72 K
2019.06.0714:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 75 K | 170 K | 263 K | 224 K
2019.05.0314:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 263 K | 167 K | 196 K | 189 K
2019.04.0514:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 196 K | 176 K | 20 K | 33 K
2019.03.0815:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 20 K | 173 K | 304 K | 311 K
2019.02.0115:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 304 K | 168 K | 312 K | 222 K
2019.01.0415:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 312 K | 170 K | 155 K | 176 K
Los datos del calendario tabular no coinciden con los datos de precios. El script muestra los datos en la zona horaria del broker, por lo que se puede comparar en cualquier servidor de trading.
Parece que los calendarios de forexfactori e investing muestran los mismos datos que MQL5.
Quién más tiene datos de precios que no coincidan con las fechas del calendario?
ZЫ Si los calendarios mienten, entonces ¿cómo los Asesores de Mercado omiten las noticias en los backtests?
Изменение числа занятых в несельскохозяйственном секторе (Nonfarm Payrolls) — показатель, отражающий количество новых рабочих мест, созданных в отчетном месяце, во всех отраслях экономики США, кроме
ZЫ Si los calendarios mienten, ¿cómo sortean los asesores de mercado las noticias en las pruebas retrospectivas?
Parece que sí mienten. Automatización de encontrar discrepancias.
// Compara las fechas de Nonfarm Payrolls en el calendario y en el historial de precios. Ejecutado en pares USD.#include <fxsaber\Calendar\Calendar.mqh> // https://www.mql5.com/es/code/32430// Tamaño de la barra de tiempo.double GetBarSize( constdatetime Time )
{
MqlRates Rates[];
return(CopyRates(_Symbol, PERIOD_M1, iBarShift(_Symbol, PERIOD_M1, Time), 1, Rates) != 1 ? 0 : Rates[0].high - Rates[0].low);
}
// Tiempo de la barra más grande por tamaño (por tiempo del array).datetime GetMaxBarSizeTime( constdatetime &Times[] )
{
double Values[];
for (int i = ArrayResize(Values, ArraySize(Times)) - 1; i >= 0; i--)
Values[i] = GetBarSize(Times[i]);
return(Times[ArrayMaximum(Values)]);
}
// Momento más probable de noticias sobre datos de precios (reacción fuerte).datetime ChartNewsTime( constdatetime &Time )
{
datetime Times[3];
Times[0] = Time;
Times[1] = Times[0] - 3600;
Times[2] = Times[0] + 3600;
return(GetMaxBarSizeTime(Times));
}
voidOnStart()
{
CALENDAR Calendar;
Calendar.Set(840030016); // Nóminas no agrícolas (nonfarm-payrolls), Estados Unidos (US)
Calendar.FilterByTime(D'2019.01.01', D'2023.01.01');
for (int i = Calendar.GetAmount() - 1; i >= 0; i--)
{
const EVENT Event = Calendar[i];
constdatetime ChartNews = ChartNewsTime(Event.time);
if (Event.time != ChartNews)
Print(TimeToString(ChartNews) + " != " + Event.ToString());
}
}
Las discrepancias en cada fila de abajo.
2022.10.0715:30 != 2022.10.0714:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 263 K | 33 K | 315 K |
2022.09.0215:30 != 2022.09.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 315 K | 156 K | 528 K | 526 K
2022.08.0515:30 != 2022.08.0514:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 528 K | -19 K | 372 K | 398 K
2022.07.0815:30 != 2022.07.0814:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 372 K | -229 K | 390 K | 384 K
2022.06.0315:30 != 2022.06.0314:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 390 K | -19 K | 428 K | 436 K
2022.05.0615:30 != 2022.05.0614:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 428 K | 317 K | 431 K | 428 K
2022.04.0115:30 != 2022.04.0114:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 431 K | 80 K | 678 K | 750 K
2021.10.0815:30 != 2021.10.0814:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 194 K | -302 K | 235 K | 366 K
2021.09.0315:30 != 2021.09.0314:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 235 K | 23 K | 943 K | 1053 K
2021.08.0615:30 != 2021.08.0614:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 943 K | 381 K | 850 K | 938 K
2021.07.0215:30 != 2021.07.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 850 K | 3 K | 559 K | 583 K
2021.06.0415:30 != 2021.06.0414:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 559 K | -396 K | 266 K | 278 K
2021.05.0715:30 != 2021.05.0714:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 266 K | -1 K | 916 K | 770 K
2021.04.0215:30 != 2021.04.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 916 K | 409 K | 379 K | 468 K
2020.10.0215:30 != 2020.10.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 661 K | 78356 K | 1371 K | 1489 K
2020.09.0415:30 != 2020.09.0414:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 1371 K | -74433 K | 1763 K | 1734 K
2020.08.0715:30 != 2020.08.0714:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 1763 K | 4511 K | 4800 K | 4791 K
2020.07.0215:30 != 2020.07.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 4800 K | -12034 K | 2509 K | 2699 K
2020.06.0515:30 != 2020.06.0514:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 2509 K | -10000 K | -20500 K | -20687 K
2020.05.0815:30 != 2020.05.0814:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | -20500 K | 139 K | -701 K | -870 K
2020.04.0315:30 != 2020.04.0314:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | -701 K | 163 K | 273 K | 275 K
2019.10.0415:30 != 2019.10.0414:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 136 K | 174 K | 130 K | 168 K
2019.09.0615:30 != 2019.09.0614:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 130 K | 177 K | 164 K | 159 K
2019.08.0215:30 != 2019.08.0214:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 164 K | 178 K | 224 K | 193 K
2019.07.0515:30 != 2019.07.0514:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 224 K | 176 K | 75 K | 72 K
2019.06.0715:30 != 2019.06.0714:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 75 K | 170 K | 263 K | 224 K
2019.05.0315:30 != 2019.05.0314:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 263 K | 167 K | 196 K | 189 K
2019.04.0515:30 != 2019.04.0514:30 USD 3 Nonfarm Payrolls (nonfarm-payrolls), United States (US) | 196 K | 176 K | 20 K | 33 K
A la izquierda está el momento de la noticia en la reacción del precio, a la derecha está el calendario.
Parece que deberíamos hacer un corrector automático en las fechas del calendario.
No es frecuente, pero al fusionar matrices, la matriz final presenta errores en forma de falta de ordenación, ya que los elementos más recientes de la matriz deberían tener un período de tiempo más largo.
No he notado algo así. Intenta crear un script para reproducirlo.
Foro sobre trading, sistemas automatizados de trading y prueba de estrategias de trading
Bibliotecas: Calendario
BillionerClub, 2022.11.04 07:43 pm.
Y adjunta los archivos bin generados. Así podré replicarlo.
Y adjuntar los archivos bin generados. Entonces puedo hacerlo de nuevo.
Enlace al archivo adjunto
No se podrá reproducir sin añadir a la clase EVENTO
Enlace al archivo adjunto
La razón es la siguiente. La ordenación por fusión sólo funcionará si ambos calendarios están ordenados. Aquí el calendario original no está ordenado por tiempo.
el calendario original no está ordenado por horas.
La razón es la siguiente.
ZY Informe de errores. @BillionerClub, ¡gracias por el aviso!el calendario original no está ordenado por horas.
Opción para arreglarlo.
En el ámbito global, escríbalo.
ArraySortStruct2_Define(time) // https://www.mql5.com/ru/forum/170952/page222#comment_40289584La razón es la siguiente. La ordenación combinada sólo funcionará si ambos calendarios están ordenados. En este caso, el calendario de origen no está ordenado por hora.
Gracias. Sin ti nunca lo hubiera averiguado )) todo parece demasiado correcto y ha pasado todas las comprobaciones.
Por favor, ayuda a entender si los calendarios son correctos o no.
Tomé nóminas conocidas y comparé varios calendarios. Parecen coincidir en el momento de la publicación de las noticias.
Los datos del calendario tabular no coinciden con los datos de precios. El script muestra los datos en la zona horaria del broker, por lo que se puede comparar en cualquier servidor de trading.
Parece que los calendarios de forexfactori e investing muestran los mismos datos que MQL5.
Quién más tiene datos de precios que no coincidan con las fechas del calendario?
ZЫ Si los calendarios mienten, entonces ¿cómo los Asesores de Mercado omiten las noticias en los backtests?
ZЫ Si los calendarios mienten, ¿cómo sortean los asesores de mercado las noticias en las pruebas retrospectivas?
Parece que sí mienten. Automatización de encontrar discrepancias.
Las discrepancias en cada fila de abajo.
A la izquierda está el momento de la noticia en la reacción del precio, a la derecha está el calendario.
Parece que deberíamos hacer un corrector automático en las fechas del calendario.