[{"data":1,"prerenderedAt":744},["ShallowReactive",2],{"\u002Fde\u002Fguides\u002Fnews-filter-mt5-expert-advisor-built-in-calendar-or-api":3,"\u002Fde\u002Fguides\u002Fnews-filter-mt5-expert-advisor-built-in-calendar-or-api-surround":724,"\u002Fde\u002Fguides\u002Fnews-filter-mt5-expert-advisor-built-in-calendar-or-api-langs":734},{"id":4,"title":5,"authors":6,"badge":12,"body":14,"date":712,"description":713,"draft":714,"extension":715,"image":716,"meta":718,"navigation":239,"path":719,"seo":720,"stem":721,"updated":722,"__hash__":723},"posts\u002Fde\u002F3.guides\u002F42.news-filter-mt5-expert-advisor-built-in-calendar-or-api.md","News-Filter in MT5: eingebauter Kalender oder API?",[7],{"name":8,"to":9,"avatar":10},"ShowMyTrades Team","https:\u002F\u002Fshowmytrades.com",{"src":11},"\u002Ficon-512.png",{"label":13},"Automatisierung",{"type":15,"value":16,"toc":703},"minimark",[17,26,29,34,159,163,174,360,367,382,385,418,422,425,433,460,507,522,526,594,597,601,609,613,619,634,648,654,658,684,687,699],[18,19,20,21,25],"p",{},"Wer Expert Advisors für MetaTrader 5 schreibt, hat eine Wahl, die MT4-Nutzer nicht haben: Das Terminal bringt einen ",[22,23,24],"strong",{},"Wirtschaftskalender"," mit, und MQL5 liest ihn mit einer Handvoll Funktionen aus. Kein Download, keine URL zum Freigeben, nichts zu parsen.",[18,27,28],{},"Warum also überhaupt eine externe API? Weil der eingebaute Kalender seine Grenzen hat, und drei davon sind für einen News-Filter entscheidend. Diese Anleitung zeigt zuerst den nativen Code, dann den Code für die API und am Ende, wann sich welcher Weg lohnt.",[30,31,33],"h2",{"id":32},"️-die-beiden-optionen-im-vergleich","⚖️ Die beiden Optionen im Vergleich",[35,36,37,56],"table",{},[38,39,40],"thead",{},[41,42,43,46,49],"tr",{},[44,45],"th",{},[44,47,48],{},"Eingebauter MQL5-Kalender",[44,50,51],{},[52,53,55],"a",{"href":54},"\u002Fdocs\u002Fapi\u002Feconomic-calendar","Kalender-API von ShowMyTrades",[57,58,59,74,89,100,111,122,137,148],"tbody",{},[41,60,61,65,68],{},[62,63,64],"td",{},"Einrichtung",[62,66,67],{},"Keine",[62,69,70,73],{},[71,72,9],"code",{}," unter Extras → Optionen (Tools → Options) → Expert Advisors freigeben",[41,75,76,79,82],{},[62,77,78],{},"Datenquelle",[62,80,81],{},"MetaQuotes, geliefert über den Server des Brokers",[62,83,84,85,88],{},"Öffentliche Kalenderquellen, von ShowMyTrades zusammengeführt; die Termine der wichtigsten Veröffentlichungen werden mit den veröffentlichenden Behörden und Zentralbanken abgeglichen (",[71,86,87],{},"confidence: official",")",[41,90,91,94,97],{},[62,92,93],{},"Verfügbar bei",[62,95,96],{},"Brokern, die ihn freischalten (die meisten tun es, manche White-Label-Server nicht)",[62,98,99],{},"Jedem Broker, jedem Terminal mit Internetzugang",[41,101,102,105,108],{},[62,103,104],{},"Funktioniert auch in MT4",[62,106,107],{},"Nein",[62,109,110],{},"Ja, dieselbe Datei",[41,112,113,116,119],{},[62,114,115],{},"Funktioniert im Strategietester (Strategy Tester)",[62,117,118],{},"Ja, mit Historie",[62,120,121],{},"Nein (kein Netzwerk im Tester)",[41,123,124,127,130],{},[62,125,126],{},"Zeitzone",[62,128,129],{},"Zeit des Handelsservers, mit einem Versatz zu UTC, den du selbst ermitteln musst",[62,131,132,133,136],{},"UTC (",[71,134,135],{},"ts"," in Unix-Sekunden), und jede Antwort enthält die aktuelle UTC-Zeit des Servers: Der EA hängt nie von der Uhr des Brokers oder des VPS ab",[41,138,139,142,145],{},[62,140,141],{},"Werte",[62,143,144],{},"Prognose, Vorher, Aktuell, mit Revisionen",[62,146,147],{},"Prognose, Vorher, Aktuell",[41,149,150,153,156],{},[62,151,152],{},"Kosten",[62,154,155],{},"Kostenlos",[62,157,158],{},"Kostenlos, ohne Schlüssel",[30,160,162],{"id":161},"option-a-der-eingebaute-kalender","🧱 Option A: der eingebaute Kalender",[18,164,165,166,169,170,173],{},"Die folgende Funktion prüft, ob für eine der beiden Währungen des Chart-Symbols eine Veröffentlichung mit ",[22,167,168],{},"hoher Wichtigkeit"," im Pausenfenster liegt. Die Zeiten sind in der Zeit des Handelsservers angegeben, so wie ",[71,171,172],{},"CalendarValueHistory()"," sie erwartet.",[175,176,182],"pre",{"className":177,"code":178,"filename":179,"language":180,"meta":181,"style":181},"language-cpp shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F--- eingebauter MQL5-Kalender: true, solange eine Veröffentlichung mit hoher Wichtigkeit\n\u002F\u002F--- für die Währungen des Charts in [-minutesBefore, +minutesAfter] um jetzt liegt\nbool NativeNewsTime(const int minutesBefore, const int minutesAfter, string &reason)\n{\n   reason = \"\";\n   datetime now  = TimeTradeServer();\n   datetime from = now - minutesAfter * 60;\n   datetime to   = now + minutesBefore * 60;\n\n   string currencies[2];\n   currencies[0] = SymbolInfoString(_Symbol, SYMBOL_CURRENCY_BASE);\n   currencies[1] = SymbolInfoString(_Symbol, SYMBOL_CURRENCY_PROFIT);\n\n   for(int c = 0; c \u003C 2; c++)\n   {\n      if(c == 1 && currencies[1] == currencies[0]) break;\n      MqlCalendarValue values[];\n      if(CalendarValueHistory(values, from, to, NULL, currencies[c]) \u003C= 0) continue;\n      for(int i = 0; i \u003C ArraySize(values); i++)\n      {\n         MqlCalendarEvent ev;\n         if(!CalendarEventById(values[i].event_id, ev)) continue;\n         if(ev.importance != CALENDAR_IMPORTANCE_HIGH) continue;\n         reason = currencies[c] + \": \" + ev.name;\n         return true;\n      }\n   }\n   return false;\n}\n","NativeNewsFilter.mqh","cpp","",[71,183,184,192,198,204,210,216,222,228,234,241,247,253,259,264,270,276,282,288,294,300,306,312,318,324,330,336,342,348,354],{"__ignoreMap":181},[185,186,189],"span",{"class":187,"line":188},"line",1,[185,190,191],{},"\u002F\u002F--- eingebauter MQL5-Kalender: true, solange eine Veröffentlichung mit hoher Wichtigkeit\n",[185,193,195],{"class":187,"line":194},2,[185,196,197],{},"\u002F\u002F--- für die Währungen des Charts in [-minutesBefore, +minutesAfter] um jetzt liegt\n",[185,199,201],{"class":187,"line":200},3,[185,202,203],{},"bool NativeNewsTime(const int minutesBefore, const int minutesAfter, string &reason)\n",[185,205,207],{"class":187,"line":206},4,[185,208,209],{},"{\n",[185,211,213],{"class":187,"line":212},5,[185,214,215],{},"   reason = \"\";\n",[185,217,219],{"class":187,"line":218},6,[185,220,221],{},"   datetime now  = TimeTradeServer();\n",[185,223,225],{"class":187,"line":224},7,[185,226,227],{},"   datetime from = now - minutesAfter * 60;\n",[185,229,231],{"class":187,"line":230},8,[185,232,233],{},"   datetime to   = now + minutesBefore * 60;\n",[185,235,237],{"class":187,"line":236},9,[185,238,240],{"emptyLinePlaceholder":239},true,"\n",[185,242,244],{"class":187,"line":243},10,[185,245,246],{},"   string currencies[2];\n",[185,248,250],{"class":187,"line":249},11,[185,251,252],{},"   currencies[0] = SymbolInfoString(_Symbol, SYMBOL_CURRENCY_BASE);\n",[185,254,256],{"class":187,"line":255},12,[185,257,258],{},"   currencies[1] = SymbolInfoString(_Symbol, SYMBOL_CURRENCY_PROFIT);\n",[185,260,262],{"class":187,"line":261},13,[185,263,240],{"emptyLinePlaceholder":239},[185,265,267],{"class":187,"line":266},14,[185,268,269],{},"   for(int c = 0; c \u003C 2; c++)\n",[185,271,273],{"class":187,"line":272},15,[185,274,275],{},"   {\n",[185,277,279],{"class":187,"line":278},16,[185,280,281],{},"      if(c == 1 && currencies[1] == currencies[0]) break;\n",[185,283,285],{"class":187,"line":284},17,[185,286,287],{},"      MqlCalendarValue values[];\n",[185,289,291],{"class":187,"line":290},18,[185,292,293],{},"      if(CalendarValueHistory(values, from, to, NULL, currencies[c]) \u003C= 0) continue;\n",[185,295,297],{"class":187,"line":296},19,[185,298,299],{},"      for(int i = 0; i \u003C ArraySize(values); i++)\n",[185,301,303],{"class":187,"line":302},20,[185,304,305],{},"      {\n",[185,307,309],{"class":187,"line":308},21,[185,310,311],{},"         MqlCalendarEvent ev;\n",[185,313,315],{"class":187,"line":314},22,[185,316,317],{},"         if(!CalendarEventById(values[i].event_id, ev)) continue;\n",[185,319,321],{"class":187,"line":320},23,[185,322,323],{},"         if(ev.importance != CALENDAR_IMPORTANCE_HIGH) continue;\n",[185,325,327],{"class":187,"line":326},24,[185,328,329],{},"         reason = currencies[c] + \": \" + ev.name;\n",[185,331,333],{"class":187,"line":332},25,[185,334,335],{},"         return true;\n",[185,337,339],{"class":187,"line":338},26,[185,340,341],{},"      }\n",[185,343,345],{"class":187,"line":344},27,[185,346,347],{},"   }\n",[185,349,351],{"class":187,"line":350},28,[185,352,353],{},"   return false;\n",[185,355,357],{"class":187,"line":356},29,[185,358,359],{},"}\n",[18,361,362,363,366],{},"Aufgerufen wird sie in ",[71,364,365],{},"OnTick()"," genau wie jeder andere Filter:",[175,368,370],{"className":177,"code":369,"language":180,"meta":181,"style":181},"string news;\nif(NativeNewsTime(30, 30, news)) { Comment(\"News filter: \", news); return; }\n",[71,371,372,377],{"__ignoreMap":181},[185,373,374],{"class":187,"line":188},[185,375,376],{},"string news;\n",[185,378,379],{"class":187,"line":194},[185,380,381],{},"if(NativeNewsTime(30, 30, news)) { Comment(\"News filter: \", news); return; }\n",[18,383,384],{},"Drei Dinge solltest du wissen, bevor du dich darauf verlässt:",[386,387,388,406,412],"ol",{},[389,390,391,394,395,397,398,401,402,405],"li",{},[22,392,393],{},"Es hängt vom Broker ab."," Der Kalender erreicht das Terminal über den Handelsserver. Liefert ",[71,396,172],{}," bei deinem Broker ",[71,399,400],{},"-1"," mit Fehler ",[71,403,404],{},"5402",", ist der Kalender dort nicht freigeschaltet, und daran ändert kein Code etwas.",[389,407,408,411],{},[22,409,410],{},"Es ist Serverzeit, nicht UTC."," Auf einem Live-Chart kein Problem. Mühsam wird es, sobald du mit irgendetwas anderem vergleichst.",[389,413,414,417],{},[22,415,416],{},"Es gibt ihn nur in MT5."," Ein EA, den du auch für MT4 anbietest, braucht eine zweite Implementierung.",[30,419,421],{"id":420},"option-b-die-kalender-api","🌐 Option B: die Kalender-API",[18,423,424],{},"Die Alternative ist ein kostenloser HTTP-Endpunkt. Er liefert die News der nächsten Tage für die Währungen und die Wichtigkeit deiner Wahl, als CSV oder JSON:",[175,426,431],{"className":427,"code":429,"language":430,"meta":181},[428],"language-text","https:\u002F\u002Fshowmytrades.com\u002Fapi\u002Fpublic\u002Fcalendar\u002Fv1?currency=EUR,USD&impact=high&days=2&format=csv\n","text",[71,432,429],{"__ignoreMap":181},[18,434,435,436,439,440,444,445,448,449,452,453,456,457,459],{},"Die Include-Datei ",[71,437,438],{},"SMT_NewsFilter.mqh",", die ihn ausliest, steht vollständig in der ",[52,441,443],{"href":442},"\u002Fguides\u002Fadd-a-news-filter-to-your-mt4-expert-advisor","MT4-Anleitung"," und in der ",[52,446,447],{"href":54},"API-Referenz",". ",[22,450,451],{},"Sie lässt sich in MQL5 unverändert kompilieren",": Speichere sie in ",[71,454,455],{},"MQL5\\Include",", gib ",[71,458,9],{}," unter Extras → Optionen → Expert Advisors frei und ruf sie so auf:",[175,461,463],{"className":177,"code":462,"language":180,"meta":181,"style":181},"#include \u003CSMT_NewsFilter.mqh>\n\nvoid OnTick()\n{\n   string news;\n   if(SMT_IsNewsTime(news)) { Comment(\"News filter active: \", news); return; }\n   Comment(\"\");\n   \u002F\u002F ... deine Einstiegslogik ...\n}\n",[71,464,465,470,474,479,483,488,493,498,503],{"__ignoreMap":181},[185,466,467],{"class":187,"line":188},[185,468,469],{},"#include \u003CSMT_NewsFilter.mqh>\n",[185,471,472],{"class":187,"line":194},[185,473,240],{"emptyLinePlaceholder":239},[185,475,476],{"class":187,"line":200},[185,477,478],{},"void OnTick()\n",[185,480,481],{"class":187,"line":206},[185,482,209],{},[185,484,485],{"class":187,"line":212},[185,486,487],{},"   string news;\n",[185,489,490],{"class":187,"line":218},[185,491,492],{},"   if(SMT_IsNewsTime(news)) { Comment(\"News filter active: \", news); return; }\n",[185,494,495],{"class":187,"line":224},[185,496,497],{},"   Comment(\"\");\n",[185,499,500],{"class":187,"line":230},[185,501,502],{},"   \u002F\u002F ... deine Einstiegslogik ...\n",[185,504,505],{"class":187,"line":236},[185,506,359],{},[18,508,509,510,513,514,517,518,521],{},"Die Datei lädt die Termine alle 15 Minuten einmal herunter und vergleicht in UTC mit ",[71,511,512],{},"TimeGMT()","; die Eingabeparameter (",[71,515,516],{},"SMT_Currencies",", ",[71,519,520],{},"SMT_Impact",", Minuten davor und danach) stehen im Einstellungsdialog des EA.",[30,523,525],{"id":524},"welche-option-passt","🎯 Welche Option passt",[35,527,528,538],{},[38,529,530],{},[41,531,532,535],{},[44,533,534],{},"Deine Situation",[44,536,537],{},"Wahl",[57,539,540,550,561,572,586],{},[41,541,542,545],{},[62,543,544],{},"Nur MT5, der Broker hat den Kalender, du willst den Filter backtesten",[62,546,547],{},[22,548,549],{},"Eingebaut",[41,551,552,555],{},[62,553,554],{},"Derselbe EA für MT4 und MT5",[62,556,557,560],{},[22,558,559],{},"API",": eine Datei, ein Verhalten",[41,562,563,568],{},[62,564,565,566,88],{},"Broker ohne Kalender (",[71,567,404],{},[62,569,570],{},[22,571,559],{},[41,573,574,577],{},[62,575,576],{},"Du betreibst auch cBots in cTrader",[62,578,579,581,582],{},[22,580,559],{},": ",[52,583,585],{"href":584},"\u002Fguides\u002Fadd-a-news-filter-to-a-ctrader-cbot","dieselben Daten in cTrader",[41,587,588,591],{},[62,589,590],{},"Du willst die News zusammen mit dem Trade protokollieren, um sie später auszuwerten",[62,592,593],{},"Beides geht; die API liefert UTC-Zeitstempel, die zu deinen übrigen Logs passen",[18,595,596],{},"Nichts spricht dagegen, beide zu nutzen: den eingebauten Kalender, wenn er antwortet, und die API, wenn nicht. In der Praxis reicht einer.",[30,598,600],{"id":599},"einen-news-filter-backtesten","🧪 Einen News-Filter backtesten",[18,602,603,604,608],{},"Von den beiden funktioniert nur der eingebaute Kalender im Strategietester, denn der Tester hat kein Internet. Aber auch dort solltest du genau hinsehen, was der Backtest eines News-Filters eigentlich beweist: Der Test nutzt den Kalender so, wie er ",[605,606,607],"em",{},"heute"," bekannt ist, mit korrigierten Uhrzeiten und mit Terminen, die erst nachträglich eingetragen wurden. Ein Filter im Live-Betrieb kennt nur, was zum jeweiligen Zeitpunkt angesetzt war.",[30,610,612],{"id":611},"häufige-fragen","❓ Häufige Fragen",[18,614,615,618],{},[22,616,617],{},"Ist der eingebaute MT5-Kalender kostenlos?","\nJa. Er gehört zum Terminal und kommt über den Server deines Brokers; auf deiner Seite musst du nichts aktivieren.",[18,620,621,627,628,581,631,633],{},[22,622,623,624,626],{},"Warum liefert ",[71,625,172],{}," bei meinem Broker nichts?","\nManche Server, oft White-Label-Server, reichen den Kalender nicht weiter. Prüfe ",[71,629,630],{},"GetLastError()",[71,632,404],{}," heißt, dass der Kalender nicht verfügbar ist. Nimm in diesem Fall die API.",[18,635,636,639,640,643,644,647],{},[22,637,638],{},"Kann ich nach den Währungen eines anderen Symbols filtern?","\nJa. Übergib die gewünschten Währungscodes, statt sie aus ",[71,641,642],{},"_Symbol"," zu lesen. Die API-Version nimmt sie als Eingabestring entgegen: ",[71,645,646],{},"EUR,USD,GBP",".",[18,649,650,653],{},[22,651,652],{},"Braucht die API ein Konto?","\nNein. Kein Schlüssel, keine Anmeldung. Das Limit liegt bei 600 Anfragen pro Minute und IP-Adresse, weit mehr, als beliebig viele Charts mit je einer Anfrage alle 15 Minuten brauchen.",[30,655,657],{"id":656},"weiterführende-artikel","🔗 Weiterführende Artikel",[659,660,661,667,673,678],"ul",{},[389,662,663,666],{},[52,664,665],{"href":442},"So baust du einen News-Filter in deinen MT4-Expert-Advisor ein",": die vollständige Include-Datei",[389,668,669,672],{},[52,670,671],{"href":54},"Referenz der Wirtschaftskalender-API",": Parameter, Formate, Limits",[389,674,675],{},[52,676,677],{"href":584},"News-Filter in einen cTrader-cBot einbauen",[389,679,680],{},[52,681,683],{"href":682},"\u002Fglossary\u002Fwhat-is-an-expert-advisor","Was ist ein Expert Advisor?",[685,686],"hr",{},[18,688,689,690,448,694,698],{},"Für welchen Kalender du dich auch entscheidest, das Ergebnis zeigt sich im Track Record: weniger Trades, die mitten in einen Kurssprung hinein eröffnet werden, und ein ruhigerer ",[52,691,693],{"href":692},"\u002Fglossary\u002Fwhat-is-drawdown","Drawdown",[52,695,697],{"href":696},"\u002Fsignup","Verfolge dein MT5-Konto kostenlos"," und sieh es selbst im Chart.",[700,701,702],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":181,"searchDepth":194,"depth":194,"links":704},[705,706,707,708,709,710,711],{"id":32,"depth":194,"text":33},{"id":161,"depth":194,"text":162},{"id":420,"depth":194,"text":421},{"id":524,"depth":194,"text":525},{"id":599,"depth":194,"text":600},{"id":611,"depth":194,"text":612},{"id":656,"depth":194,"text":657},"2026-10-17T00:00:00.000Z","MetaTrader 5 bringt einen Wirtschaftskalender mit, den Expert Advisors ohne Download auslesen können. Wann er reicht, wann nicht und wie du stattdessen eine kostenlose Kalender-API nutzt, mit MQL5-Code für beide Wege.",false,"md",{"src":717},"\u002Fimages\u002Fblog\u002Fnews-filter-mt5-expert-advisor-built-in-calendar-or-api-hero.svg",{},"\u002Fde\u002Fguides\u002Fnews-filter-mt5-expert-advisor-built-in-calendar-or-api",{"title":5,"description":713},"de\u002F3.guides\u002F42.news-filter-mt5-expert-advisor-built-in-calendar-or-api",null,"KDJppk-JKoDiuIAS2InMxfqaC6yHdQo-Pq4chFpsFKc",[725,729],{"title":665,"path":726,"stem":727,"description":728,"children":-1},"\u002Fde\u002Fguides\u002Fadd-a-news-filter-to-your-mt4-expert-advisor","de\u002F3.guides\u002F41.add-a-news-filter-to-your-mt4-expert-advisor","MetaTrader 4 bietet Expert Advisors keinen Wirtschaftskalender. Mit dieser Anleitung rüstest du ihn in zehn Minuten nach: eine kostenlose Kalender-API, eine Include-Datei und eine Funktion, die du vor jedem Einstieg aufrufst. Vollständiger MQL4-Code, kein API-Schlüssel.",{"title":730,"path":731,"stem":732,"description":733,"children":-1},"News-Filter in einen cTrader-cBot einbauen (Cloud inklusive)","\u002Fde\u002Fguides\u002Fadd-a-news-filter-to-a-ctrader-cbot","de\u002F3.guides\u002F43.add-a-news-filter-to-a-ctrader-cbot","cTrader bietet cBots keine Kalender-API, und die cTrader Cloud blockiert HTTP-Anfragen. Dieser News-Filter funktioniert am Desktop und in der Cloud: mit einem kostenlosen Kalender über WebSocket und dem vollständigen C#-Code.",[735,737,738,740,742],{"path":736},"\u002Fguides\u002Fnews-filter-mt5-expert-advisor-built-in-calendar-or-api",{"path":719},{"path":739},"\u002Fes\u002Fguides\u002Fnews-filter-mt5-expert-advisor-built-in-calendar-or-api",{"path":741},"\u002Fja\u002Fguides\u002Fnews-filter-mt5-expert-advisor-built-in-calendar-or-api",{"path":743},"\u002Fzh\u002Fguides\u002Fnews-filter-mt5-expert-advisor-built-in-calendar-or-api",1794154060334]