Alcune domande sono cadute. Il tempo è stato risolto. Si è rivelato semplice. L'ora è GMT, e il sito era rappresentato da GMT+3, quindi tutti i miei malintesi si sono sommati.
Ecco il primo risultato: descrizione dell'evento ricevuto, prima riga dell'immagine
2019.07.24 11:29:03.972 !00 (EURUSD,H1) время и дата события - 2019.07.24 13:45:00 2019.07.24 11:29:03.972 !00 (EURUSD,H1) идентификатор события - 840500001 2019.07.24 11:29:03.972 !00 (EURUSD,H1) тип события из перечисления ENUM_CALENDAR_EVENT_TYPE - CALENDAR_TYPE_INDICATOR 2019.07.24 11:29:03.972 !00 (EURUSD,H1) сектор, к которому относится событие - CALENDAR_SECTOR_BUSINESS 2019.07.24 11:29:03.972 !00 (EURUSD,H1) частота (периодичность) события - CALENDAR_FREQUENCY_MONTH 2019.07.24 11:29:03.972 !00 (EURUSD,H1) режим времени события - CALENDAR_TIMEMODE_DATETIME 2019.07.24 11:29:03.972 !00 (EURUSD,H1) идентификатор страны - 840 2019.07.24 11:29:03.972 !00 (EURUSD,H1) текстовое имя страны (в текущей кодировке терминала) - Соединенные Штаты 2019.07.24 11:29:03.972 !00 (EURUSD,H1) единица измерения значения экономического индикатора - CALENDAR_UNIT_NONE 2019.07.24 11:29:03.972 !00 (EURUSD,H1) важность события - CALENDAR_IMPORTANCE_MODERATE 2019.07.24 11:29:03.972 !00 (EURUSD,H1) множитель значения экономического индикатора - CALENDAR_MULTIPLIER_NONE 2019.07.24 11:29:03.972 !00 (EURUSD,H1) количество знаков после запятой - 1 2019.07.24 11:29:03.972 !00 (EURUSD,H1) URL источника, где публикуется событие - https://www.markiteconomics.com 2019.07.24 11:29:03.972 !00 (EURUSD,H1) код события - markit-manufacturing-pmi 2019.07.24 11:29:03.972 !00 (EURUSD,H1) текстовое имя события на языке терминала (в текущей кодировке терминала) - Индекс менеджеров по закупкам в производственном секторе от Markit
Domanda per gli sviluppatori:
Perché questo codice dalla documentazione, con piccole modifiche
void OnStart() { MqlCalendarValue values[]; //--- запросим историю событий от текущего времени до конца сегодняшнего дня. if(CalendarValueHistory(values,TimeCurrent(),iTime(_Symbol, PERIOD_D1, 0)+PeriodSeconds(PERIOD_D1))) { PrintFormat("Получены значения событий по country_code=%s: %d", ArraySize(values)); //--- выведем значения событий в Журнал ArrayPrint(values); } else { PrintFormat("Ошибка! Не удалось получить события по стране country_code=%s"); PrintFormat("Код ошибки: %d",GetLastError()); } //--- }
mostra che la dimensione dell'array di valori è zero, ma comunque stampa tutto quello che c'è nel calendario. Cioè, tutti gli eventi sono ricevuti.
2019.07.24 15:20:33.131 !00 (EURUSD,H1) Получены значения событий по country_code=(non-string passed): 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [id] [event_id] [time] [period] [revision] [actual_value] [prev_value] [revised_prev_value] [forecast_value] [impact_type] [reserved] 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [0] 97265 76020013 2019.07.24 15:30:00 1970.01.01 00:00:00 0 -9223372036854775808 -1227000 -9223372036854775808 -2405000 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [1] 87842 840220012 2019.07.24 17:00:00 1970.01.01 00:00:00 0 -9223372036854775808 1791000 -9223372036854775808 -9223372036854775808 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [2] 93625 410010011 2019.07.24 23:00:00 2019.04.01 00:00:00 1 -9223372036854775808 -400000 -9223372036854775808 400000 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [3] 93626 410010012 2019.07.24 23:00:00 2019.04.01 00:00:00 1 -9223372036854775808 1700000 -9223372036854775808 2900000 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [4] 87394 392060016 2019.07.24 23:50:00 2019.06.01 00:00:00 0 -9223372036854775808 800000 -9223372036854775808 0 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [5] 97012 392070003 2019.07.24 23:50:00 2019.07.20 00:00:00 0 -9223372036854775808 950000000 -9223372036854775808 -9223372036854775808 0 0 2019.07.24 15:20:33.131 !00 (EURUSD,H1) [6] 97013 392070004 2019.07.24 23:50:00 2019.07.20 00:00:00 0 -9223372036854775808 -93100000 -9223372036854775808 -9223372036854775808 0 0
Dove, cosa non ha tempo di lavorare?
Sì, grazie. Ho già risolto il problema. Ho fatto un casino quando ho sistemato l'esempio della documentazione.
@Renat Fatkhullin Renat, possiamo sperare che un giorno venga fatta una funzione come TimeGMTOffset(), solo per l'ora del server e non per l'ora locale? Perché le funzioni del calendario economico usano l'ora GMT e l'ora locale spesso non coincide con quella del server. Quindi, quando ho il tempo delle notizie, devo tradurlo in tempo terminale. Capisco che ci possono essere problemi quando si chiama questa funzione nel fine settimana, ma può rilevare un qualche tipo di errore, che questa funzione non è disponibile in questo momento, o qualsiasi altra cosa.
Finora ho fatto così: in OnInit() la differenza di tempo viene calcolata e scritta nella variabile globale. Ma non mi piace molto. Secondo me sarebbe meglio chiamare la funzione integrata e adattare l'ora delle notizie all'ora del server. Soprattutto il terminale ha probabilmente il tempo del server disponibile anche nei fine settimana.
@Renat Fatkhullin Renat, possiamo sperare che un giorno venga fatta una funzione come TimeGMTOffset(), solo per l'ora del server e non per l'ora locale? Perché le funzioni del calendario economico usano l'ora GMT e l'ora locale spesso non coincide con quella del server. Quindi, quando ho il tempo delle notizie, devo tradurlo in tempo terminale. Capisco che ci possono essere problemi quando si chiama questa funzione nei fine settimana, ma è possibile determinare un qualche tipo di errore, che questa funzione non è disponibile al momento o qualcos'altro.
Finora ho fatto così: in OnInit() la differenza di tempo viene calcolata e scritta nella variabile globale. Ma non mi piace molto. Secondo me sarebbe meglio chiamare la funzione integrata e adattare l'ora delle notizie all'ora del server. Soprattutto il terminale ha probabilmente il tempo del server disponibile anche nei fine settimana.
Certo che è disponibile, questo è già stato richiesto.
Certo che è disponibile, questo è già stato richiesto.
Vitaly, ogni richiesta deve essere giustificata. Spero di aver fornito abbastanza argomenti per la necessità di una tale funzione. Ora dipende dal carico di lavoro dei programmatori dell'azienda e da come gli argomenti sono compresi e accettati. Lo spero.
Quali informazioni si possono ricavare dal calendario: (I valori che sono usati dal software e che sono di poca informazione per gli esseri umani non sono elencati qui)
- Nome del paese
- Valuta dei paesi
- tipo di evento
Evento (manifestazione, discorso, ecc.) |
Indicatore |
Vacanze |
- Settore a cui appartiene l'evento
Mercato, borsa valori |
Prodotto interno lordo (PIL) |
Mercato del lavoro |
Prezzi |
Soldi |
Commercio |
Governo |
Business |
Consumo |
Housing |
Tasse |
Vacanze |
- nome testuale dell'evento nella lingua del terminale (nella codifica corrente del terminale)
- ora e data dell'evento
- periodo di riferimento dell'evento
- valore attuale del parametro
- valore precedente del parametro
- valore precedente rivisto dell'indicatore
- valore previsto di un indicatore
- impatto potenziale sul tasso di cambio
Nessun impatto indicato |
Impatto positivo |
Impatto negativo |
Purtroppo, a parte il divieto di aprire posizioni prima dei comunicati stampa, non ho trovato altre soluzioni. Voglio scoprire quali di essi possono essere usati e come reagire ad essi.
Da quanto ho capito, i valori evidenziati sono molto importanti per decidere come reagire alla notizia, ma non capisco come. Invito alla discussione.
Quali informazioni possono essere ottenute dal calendario: (I valori che sono usati dal programma e sono di poca informazione per gli esseri umani non sono elencati qui)
- Nome del paese
- Valuta dei paesi
- tipo di evento
Evento (manifestazione, discorso, ecc.) |
Indicatore |
Vacanze |
- Settore a cui appartiene l'evento
Mercato, borsa valori |
Prodotto interno lordo (PIL) |
Mercato del lavoro |
Prezzi |
Soldi |
Commercio |
Governo |
Business |
Consumo |
Housing |
Tasse |
Vacanze |
- nome testuale dell'evento nella lingua del terminale (nella codifica corrente del terminale)
- ora e data dell'evento
- periodo di riferimento dell'evento
- valore corrente del parametro
- valore precedente del parametro
- valore precedente rivisto dell'indicatore
- valore previsto dell'indicatore
- impatto potenziale sul tasso di cambio
Nessun impatto indicato |
Impatto positivo |
Impatto negativo |
Purtroppo, a parte il divieto di aprire posizioni prima dei comunicati stampa, non ho trovato altre soluzioni. Voglio scoprire quali di essi possono essere usati e come reagire ad essi.
Da quanto ho capito, i valori evidenziati sono molto importanti per decidere come reagire alla notizia, ma non capisco come. Invito alla discussione.
Ecco la mia variante dell'indicatore di notizie. Il terminale fornisce informazioni sul tempo di rilascio delle notizie in base alle valute, il grado di importanza è anche selezionato. L'informazione è mostrata come una linea verticale sul grafico del prezzo. Nella sottofinestra puoi vedere l'istogramma degli ultimi valori dei dati, in ordine cronologico, relativi alla previsione della notizia, che è stata categorizzata come importante. A seconda del tipo di notizia (tassi di interesse, tasso di disoccupazione, indice dei prezzi al consumo, PIL, ecc.), i valori possono essere tracciati in ordine cronologico. Il grafico ottenuto dovrebbe essere sincronizzato nel tempo e nella scala con il grafico del prezzo quando si cambia il timeframe. Inoltre sono interessato alla velocità di ottenere dati reali.
Ecco la mia versione dell'indicatore di notizie. Alimenta il terminale con i tempi di rilascio delle notizie per le valute di vostra scelta, il grado di importanza è anche selezionabile. L'informazione viene visualizzata con una linea verticale sul grafico del prezzo. Nella sottofinestra si disegna, in ordine cronologico, un istogramma degli ultimi valori di dati della notizia, che sono attribuiti alla classe-importante. Il grafico ottenuto deve essere sincronizzato in tempo con il grafico del prezzo quando si cambia il TF. Anche la velocità di ottenere i dati effettivi è interessante.
Intendi gli istogrammi per l'intera profondità della storia disponibile sul grafico?
Ma non dà alcuna informazione per l'applicazione in tempo reale. O ho completamente frainteso? Bene, la previsione e il valore attuale sono stati ottenuti, abbiamo impostato l'istogramma, e poi? Prendere una decisione solo manualmente?
Non ho controllato la velocità di aggiornamento dei dati nel calendario, e la velocità di ricezione dei dati pronti dovrebbe essere misurata, ma non ho questo desiderio, perché la velocità è abbastanza alta.
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Voglio capire come funziona il calendario economico MQL5, ma qualcosa non si muove molto velocemente. Ho passato la maggior parte di ieri e l'inizio di oggi, ma ancora non capisco perché CalendarValueHistory non restituisce tutti gli eventi. O forse li confondo un po', questi eventi...
Ieri ricevevo 4 eventi alle xx:45 come scritto nel calendario. Sto scrivendo le ore dell'evento come "xx" perché l'ora ricevuta non è la stessa di quella della tabella. Ma almeno si potrebbe capire che questo è dovuto alla differenza tra l'ora specificata e l'ora del terminale o del server da cui i dati sono stati ottenuti. Ma ora ho solo 3 eventi con :45 minuti e non riesco a capire perché.
E domanda agli sviluppatori: perché nell'array la prima data 2019.07.25 00:00 e le righe successive sono ordinate in ordine crescente. Vedere la lista risultante.