[{"data":1,"prerenderedAt":979},["ShallowReactive",2],{"\u002Fzh\u002Fguides\u002Ffree-economic-calendar-api-for-trading-bots":3,"\u002Fzh\u002Fguides\u002Ffree-economic-calendar-api-for-trading-bots-surround":964,"\u002Fzh\u002Fguides\u002Ffree-economic-calendar-api-for-trading-bots-langs":975},{"id":4,"title":5,"authors":6,"badge":12,"body":14,"date":952,"description":953,"draft":954,"extension":955,"image":956,"meta":958,"navigation":466,"path":959,"seo":960,"stem":961,"updated":962,"__hash__":963},"posts\u002Fzh\u002F3.guides\u002F44.free-economic-calendar-api-for-trading-bots.md","面向交易机器人的免费财经日历 API",[7],{"name":8,"to":9,"avatar":10},"ShowMyTrades Team","https:\u002F\u002Fshowmytrades.com",{"src":11},"\u002Ficon-512.png",{"label":13},"自动化",{"type":15,"value":16,"toc":942},"minimark",[17,26,29,34,151,154,158,161,211,215,225,330,414,417,662,666,777,780,784,795,826,830,837,841,856,866,885,891,901,905,927,930,938],[18,19,20,21,25],"p",{},"每个自动化策略早晚都要回答同一个问题：",[22,23,24],"em",{},"接下来半小时有没有新闻","？要回答它，得有一份机器能读的财经日历，而这比找日历本身难得多。多数日历只是网页；少数现成的数据源，不是限频，就是收费，要么哪天说没就没了。",[18,27,28],{},"这篇指南是那番寻找的精简版，也介绍了我们最后自己做出来、向所有人开放的端点。",[30,31,33],"h2",{"id":32},"️-机器人现在从哪里拿日历","🗺️ 机器人现在从哪里拿日历",[35,36,37,56],"table",{},[38,39,40],"thead",{},[41,42,43,47,50,53],"tr",{},[44,45,46],"th",{},"数据源",[44,48,49],{},"费用",[44,51,52],{},"能拿到什么",[44,54,55],{},"问题在哪",[57,58,59,83,103,119,135],"tbody",{},[41,60,61,74,77,80],{},[62,63,64,68,69,73],"td",{},[65,66,67],"strong",{},"Forex Factory 周文件","（",[70,71,72],"code",{},"ff_calendar_thisweek.json","，另有 XML 和 CSV）",[62,75,76],{},"免费",[62,78,79],{},"本周事件、影响级别和预期值",[62,81,82],{},"每个 IP 地址每五分钟只能下载两次，一台 VPS 上跑很多终端就会超限；文件里没有公布值",[41,84,85,95,97,100],{},[62,86,87,90,91,94],{},[65,88,89],{},"经纪商的 MT5 日历","（MQL5 的 ",[70,92,93],{},"Calendar*"," 函数）",[62,96,76],{},[62,98,99],{},"终端内的完整日历",[62,101,102],{},"只有 MT5 有；部分经纪商不转发",[41,104,105,110,113,116],{},[62,106,107],{},[65,108,109],{},"抓取日历网站",[62,111,112],{},"免费，直到哪天不免费",[62,114,115],{},"页面上有什么就拿什么",[62,117,118],{},"页面改版、反爬虫、使用条款",[41,120,121,126,129,132],{},[62,122,123],{},[65,124,125],{},"付费行情数据 API",[62,127,128],{},"每月几十美元起",[62,130,131],{},"历史长、覆盖国家多",[62,133,134],{},"只为问一句“30 分钟内有没有新闻”，功能太多，价格太贵",[41,136,137,142,145,148],{},[62,138,139],{},[65,140,141],{},"小型个人 API",[62,143,144],{},"免费套餐，需要密钥",[62,146,147],{},"往往不错",[62,149,150],{},"背后只有一个人；密钥和限额说变就变",[18,152,153],{},"这些办法本身都没错，只是各有各的失灵方式。在 VPS 上无人值守的机器人根本察觉不到，直到它在一次利率决议里照常下了单。",[30,155,157],{"id":156},"机器人真正需要什么","🎯 机器人真正需要什么",[18,159,160],{},"把问题拆到最简，需求只有几条：",[162,163,164,171,177,183,193,199,205],"ol",{},[165,166,167,170],"li",{},[65,168,169],{},"只要未来一两天","，不是未来一年。过滤器只往前看几个小时。",[165,172,173,176],{},[65,174,175],{},"在服务器端过滤","：只要机器人交易的货币，只要它关心的影响级别。几 KB 就够，用不着 1 MB。",[165,178,179,182],{},[65,180,181],{},"UTC 的 Unix 时间戳","。任何平台都能比较两个整数；在 MQL 里解析日期，谁都不乐意。",[165,184,185,188,189,192],{},[65,186,187],{},"一个靠得住的时钟","。机器人自己的时钟都靠猜：经纪商时间的时差不明，VPS 的时区不明。日历应该告诉它",[22,190,191],{},"现在","几点，好让它用同一把尺子去比。",[165,194,195,198],{},[65,196,197],{},"为轮询而设计","。几百个机器人每 15 分钟请求一次，应该算正常流量，而不是滥用。",[165,200,201,204],{},[65,202,203],{},"不要密钥，不要账户","。多一把密钥，就多一样会泄露、要轮换、要维护的东西。",[165,206,207,210],{},[65,208,209],{},"所有平台都能访问","，包括那些限制联网的平台。",[30,212,214],{"id":213},"端点","🔓 端点",[216,217,223],"pre",{"className":218,"code":220,"language":221,"meta":222},[219],"language-text","GET https:\u002F\u002Fshowmytrades.com\u002Fapi\u002Fpublic\u002Fcalendar\u002Fv1?currency=EUR,USD&impact=high&days=1\n","text","",[70,224,220],{"__ignoreMap":222},[35,226,227,240],{},[38,228,229],{},[41,230,231,234,237],{},[44,232,233],{},"参数",[44,235,236],{},"取值",[44,238,239],{},"默认值",[57,241,242,258,288,310],{},[41,243,244,249,255],{},[62,245,246],{},[70,247,248],{},"currency",[62,250,251,254],{},[70,252,253],{},"USD, EUR, GBP, JPY, AUD, NZD, CAD, CHF, CNY"," 中任选，逗号分隔",[62,256,257],{},"全部九种",[41,259,260,265,284],{},[62,261,262],{},[70,263,264],{},"impact",[62,266,267,270,271,270,274,270,277,280,281],{},[70,268,269],{},"high","、",[70,272,273],{},"medium",[70,275,276],{},"low",[70,278,279],{},"holiday","，逗号分隔，或者 ",[70,282,283],{},"all",[62,285,286],{},[70,287,269],{},[41,289,290,295,306],{},[62,291,292],{},[70,293,294],{},"days",[62,296,297,298,301,302,305],{},"往后 ",[70,299,300],{},"1"," 到 ",[70,303,304],{},"30"," 天；窗口总是从 6 小时前开始",[62,307,308],{},[70,309,300],{},[41,311,312,317,326],{},[62,313,314],{},[70,315,316],{},"format",[62,318,319,322,323],{},[70,320,321],{},"json"," 或 ",[70,324,325],{},"csv",[62,327,328],{},[70,329,321],{},[18,331,332,333,336,337,340,341,270,343,270,345,270,348,270,351,354,355,358,359,362,363,68,366,369,370,373,374,369,377,380,381,384,385,388,389,392,393,395,396,399,400,403,404,409,410,413],{},"每个事件包含 ",[70,334,335],{},"ts","（Unix 秒，UTC）、",[70,338,339],{},"time","（ISO 8601）、",[70,342,248],{},[70,344,264],{},[70,346,347],{},"title",[70,349,350],{},"forecast",[70,352,353],{},"previous"," 和 ",[70,356,357],{},"actual","。此外还有：稳定的 ",[70,360,361],{},"id","，改期后也不变；",[70,364,365],{},"status",[70,367,368],{},"scheduled","；",[70,371,372],{},"moved","，旧时间放在 ",[70,375,376],{},"moved_from",[70,378,379],{},"tentative","）；",[70,382,383],{},"confidence","，表示日期是发布这项数据的机构或央行确认的（",[70,386,387],{},"official","），还是几份相互吻合的日历确认的。另有一个单独的变更列表（changes feed），列出您上次下载之后被改期或取消的事件。每个响应都会用 ",[70,390,391],{},"server_time"," 给出当前的 UTC 时间：拿 ",[70,394,335],{}," 跟它比，而不是跟经纪商或 VPS 的时钟比。只需要时钟的话，",[70,397,398],{},"GET https:\u002F\u002Fshowmytrades.com\u002Fapi\u002Fpublic\u002Ftime"," 会单独返回它，永不缓存。响应缓存 15 分钟，带 ",[70,401,402],{},"ETag","；限额是每个 IP 地址每分钟 600 次请求。完整说明见",[405,406,408],"a",{"href":407},"\u002Fdocs\u002Fapi\u002Feconomic-calendar","参考页面","，其中还有一种专门设计的 CSV 格式，保证 MQL 的 ",[70,411,412],{},"StringSplit()"," 不会切错。",[18,415,416],{},"三种语言，三个调用示例：",[418,419,420,448,509],"code-group",{},[216,421,426],{"className":422,"code":423,"filename":424,"language":425,"meta":222,"style":222},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl \"https:\u002F\u002Fshowmytrades.com\u002Fapi\u002Fpublic\u002Fcalendar\u002Fv1?currency=USD&impact=high,medium&days=7&format=csv\"\n","cURL","bash",[70,427,428],{"__ignoreMap":222},[429,430,433,437,441,445],"span",{"class":431,"line":432},"line",1,[429,434,436],{"class":435},"sBMFI","curl",[429,438,440],{"class":439},"sMK4o"," \"",[429,442,444],{"class":443},"sfazB","https:\u002F\u002Fshowmytrades.com\u002Fapi\u002Fpublic\u002Fcalendar\u002Fv1?currency=USD&impact=high,medium&days=7&format=csv",[429,446,447],{"class":439},"\"\n",[216,449,454],{"className":450,"code":451,"filename":452,"language":453,"meta":222,"style":222},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import requests\n\nevents = requests.get(\n    \"https:\u002F\u002Fshowmytrades.com\u002Fapi\u002Fpublic\u002Fcalendar\u002Fv1\",\n    params={\"currency\": \"EUR,USD\", \"impact\": \"high\", \"days\": 2},\n    timeout=10,\n).json()[\"events\"]\n\nnext_release = min(events, key=lambda e: e[\"ts\"]) if events else None\n","Python","python",[70,455,456,461,468,474,480,486,492,498,503],{"__ignoreMap":222},[429,457,458],{"class":431,"line":432},[429,459,460],{},"import requests\n",[429,462,464],{"class":431,"line":463},2,[429,465,467],{"emptyLinePlaceholder":466},true,"\n",[429,469,471],{"class":431,"line":470},3,[429,472,473],{},"events = requests.get(\n",[429,475,477],{"class":431,"line":476},4,[429,478,479],{},"    \"https:\u002F\u002Fshowmytrades.com\u002Fapi\u002Fpublic\u002Fcalendar\u002Fv1\",\n",[429,481,483],{"class":431,"line":482},5,[429,484,485],{},"    params={\"currency\": \"EUR,USD\", \"impact\": \"high\", \"days\": 2},\n",[429,487,489],{"class":431,"line":488},6,[429,490,491],{},"    timeout=10,\n",[429,493,495],{"class":431,"line":494},7,[429,496,497],{},").json()[\"events\"]\n",[429,499,501],{"class":431,"line":500},8,[429,502,467],{"emptyLinePlaceholder":466},[429,504,506],{"class":431,"line":505},9,[429,507,508],{},"next_release = min(events, key=lambda e: e[\"ts\"]) if events else None\n",[216,510,515],{"className":511,"code":512,"filename":513,"language":514,"meta":222,"style":222},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const res = await fetch('https:\u002F\u002Fshowmytrades.com\u002Fapi\u002Fpublic\u002Fcalendar\u002Fv1?currency=GBP&impact=high&days=1')\nconst { events } = await res.json()\nconst soon = events.filter(e => Math.abs(e.ts * 1000 - Date.now()) \u003C 30 * 60 * 1000)\n","JavaScript","js",[70,516,517,552,581],{"__ignoreMap":222},[429,518,519,523,527,530,534,538,541,544,547,549],{"class":431,"line":432},[429,520,522],{"class":521},"spNyl","const",[429,524,526],{"class":525},"sTEyZ"," res ",[429,528,529],{"class":439},"=",[429,531,533],{"class":532},"s7zQu"," await",[429,535,537],{"class":536},"s2Zo4"," fetch",[429,539,540],{"class":525},"(",[429,542,543],{"class":439},"'",[429,545,546],{"class":443},"https:\u002F\u002Fshowmytrades.com\u002Fapi\u002Fpublic\u002Fcalendar\u002Fv1?currency=GBP&impact=high&days=1",[429,548,543],{"class":439},[429,550,551],{"class":525},")\n",[429,553,554,556,559,562,565,568,570,573,576,578],{"class":431,"line":463},[429,555,522],{"class":521},[429,557,558],{"class":439}," {",[429,560,561],{"class":525}," events ",[429,563,564],{"class":439},"}",[429,566,567],{"class":439}," =",[429,569,533],{"class":532},[429,571,572],{"class":525}," res",[429,574,575],{"class":439},".",[429,577,321],{"class":536},[429,579,580],{"class":525},"()\n",[429,582,583,585,588,590,593,595,598,600,604,607,610,612,615,618,620,623,626,630,633,636,638,641,644,647,650,653,656,658,660],{"class":431,"line":470},[429,584,522],{"class":521},[429,586,587],{"class":525}," soon ",[429,589,529],{"class":439},[429,591,592],{"class":525}," events",[429,594,575],{"class":439},[429,596,597],{"class":536},"filter",[429,599,540],{"class":525},[429,601,603],{"class":602},"sHdIc","e",[429,605,606],{"class":521}," =>",[429,608,609],{"class":525}," Math",[429,611,575],{"class":439},[429,613,614],{"class":536},"abs",[429,616,617],{"class":525},"(e",[429,619,575],{"class":439},[429,621,622],{"class":525},"ts ",[429,624,625],{"class":439},"*",[429,627,629],{"class":628},"sbssI"," 1000",[429,631,632],{"class":439}," -",[429,634,635],{"class":525}," Date",[429,637,575],{"class":439},[429,639,640],{"class":536},"now",[429,642,643],{"class":525},"()) ",[429,645,646],{"class":439},"\u003C",[429,648,649],{"class":628}," 30",[429,651,652],{"class":439}," *",[429,654,655],{"class":628}," 60",[429,657,652],{"class":439},[429,659,629],{"class":628},[429,661,551],{"class":525},[30,663,665],{"id":664},"各平台的接法","🔌 各平台的接法",[35,667,668,681],{},[38,669,670],{},[41,671,672,675,678],{},[44,673,674],{},"平台",[44,676,677],{},"方式",[44,679,680],{},"代码",[57,682,683,709,725,742,755],{},[41,684,685,690,700],{},[62,686,687],{},[65,688,689],{},"MetaTrader 4",[62,691,692,693,696,697,699],{},"用 ",[70,694,695],{},"WebRequest()","，并把 ",[70,698,9],{}," 加进允许列表",[62,701,702],{},[405,703,705,706],{"href":704},"\u002Fguides\u002Fadd-a-news-filter-to-your-mt4-expert-advisor","只需一个包含文件 ",[70,707,708],{},"SMT_NewsFilter.mqh",[41,710,711,716,719],{},[62,712,713],{},[65,714,715],{},"MetaTrader 5",[62,717,718],{},"同一个包含文件，或者内置日历",[62,720,721],{},[405,722,724],{"href":723},"\u002Fguides\u002Fnews-filter-mt5-expert-advisor-built-in-calendar-or-api","内置日历还是 API，两种代码都有",[41,726,727,733,736],{},[62,728,729,732],{},[65,730,731],{},"cTrader","（桌面版和云端）",[62,734,735],{},"端口 25345 上的 WebSocket，因为 cTrader Cloud 不允许 cBot 发 HTTP 请求",[62,737,738],{},[405,739,741],{"href":740},"\u002Fguides\u002Fadd-a-news-filter-to-a-ctrader-cbot","一个完整的 C# cBot",[41,743,744,749,752],{},[62,745,746],{},[65,747,748],{},"Python、Node，任何能发 HTTP 的环境",[62,750,751],{},"上面的端点",[62,753,754],{},"本页的代码示例",[41,756,757,763,774],{},[62,758,759,762],{},[65,760,761],{},"AI 助手","（Claude、ChatGPT）",[62,764,765,769,770,773],{},[405,766,768],{"href":767},"\u002Fdocs\u002Fapi\u002Fmcp","MCP 服务器","的 ",[70,771,772],{},"get_economic_calendar"," 工具，不用密钥",[62,775,776],{},"直接问：“本周有哪些高影响的 USD 新闻？”",[18,778,779],{},"WebSocket 就是为 cTrader 准备的：云端的 cBot 根本发不了 HTTP 请求，而多数 cTrader 用户都在云端运行。这个 WebSocket 接受同样的四个参数，返回同样的 CSV。",[30,781,783],{"id":782},"过滤器怎么设计","🧭 过滤器怎么设计",[18,785,786,787,790,791,794],{},"API 回答的是",[22,788,789],{},"什么时候","，",[22,792,793],{},"怎么做","由策略决定。常见的选择有：",[796,797,798,804,814,820],"ul",{},[165,799,800,803],{},[65,801,802],{},"时间窗口","。高影响数据公布前后各 30 分钟，是常见的默认值。剥头皮策略会把公布后的窗口拉长；波段系统有时只在公布那一分钟里禁止入场。",[165,805,806,809,810,813],{},[65,807,808],{},"看哪些货币","。所交易货币对的两种货币都要看。黄金和指数通常只看 ",[70,811,812],{},"USD","。",[165,815,816,819],{},[65,817,818],{},"持仓","。不开新仓是容易的那一半。数据公布前平仓或收紧止损，是一个策略决定，有它自己的代价。",[165,821,822,825],{},[65,823,824],{},"失败时怎么办","。下载失败、手里没有日历时，机器人该照常交易还是等待？要明确定下来；示例代码选择照常交易，而且会把这一点说出来。",[30,827,829],{"id":828},"️-这个-api-不是什么","⚖️ 这个 API 不是什么",[18,831,832,833,836],{},"它只是一份",[65,834,835],{},"时间表","：从公开的日历数据源汇总而来，原样提供。数据发布有时会改期或取消，突发公告本来就不可能在表上，影响级别也只是一种分类，不是对行情波动的预测。它是搭建过滤器用的信息，不是交易信号。",[30,838,840],{"id":839},"常见问题","❓ 常见问题",[18,842,843,846,847,850,851,855],{},[65,844,845],{},"真的免费吗？商业机器人也免费？","\n是的。不要密钥，不要账户，也不分等级。如果能注明出处（",[22,848,849],{},"Economic calendar by ShowMyTrades","，链接到",[405,852,854],{"href":853},"\u002Ftools\u002Feconomic-calendar","财经日历页面","），我们很感谢，但从不强制。",[18,857,858,861,862,865],{},[65,859,860],{},"机器人多久调用一次合适？","\n每 15 分钟一次。这正好是缓存的有效期，日历本身也不会变得更快。带上 ",[70,863,864],{},"If-None-Match","，日历没变时这次请求不产生任何开销。",[18,867,868,871,872,874,875,877,878,881,882,884],{},[65,869,870],{},"时间用的是哪个时区？","\n一律是 UTC。",[70,873,335],{}," 是以秒为单位的 Unix 时间；",[70,876,339],{}," 是同一时刻的 ISO 8601 写法，末尾带 ",[70,879,880],{},"Z","。机器人自己往往不知道现在几点（经纪商时间的时差不明，VPS 的时区不明），所以每个响应都带有 ",[70,883,391],{},"，即当前的 UTC 时间：每次下载时算一次它和您自己时钟的偏差，歧义就没有了。",[18,886,887,890],{},[65,888,889],{},"能拿到历史数据，用来回测新闻过滤器吗？","\n这个端点不行：窗口只往回看六小时，往后最多 30 天。用于回测的历史日历是另一种产品，条款也不一样。",[18,892,893,896,897,900],{},[65,894,895],{},"数据从哪里来？","\n来自公开的财经日历数据源，由 ShowMyTrades 合并并统一格式。本站的",[405,898,899],{"href":853},"日历页面","用的也是这份数据。",[30,902,904],{"id":903},"相关内容","🔗 相关内容",[796,906,907,912,917,922],{},[165,908,909],{},[405,910,911],{"href":407},"财经日历 API 参考",[165,913,914],{},[405,915,916],{"href":704},"如何为您的 MT4 EA 添加新闻过滤器",[165,918,919],{},[405,920,921],{"href":723},"MT5 中的新闻过滤器：内置日历还是 API？",[165,923,924],{},[405,925,926],{"href":740},"如何为 cTrader cBot 添加新闻过滤器",[928,929],"hr",{},[18,931,932,933,937],{},"知道什么时候该离场观望的机器人，业绩记录才拿得出手。",[405,934,936],{"href":935},"\u002Fsignup","免费连接它","，新闻前后那些按兵不动的半小时，会清清楚楚地显示在回撤图表上。",[939,940,941],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":222,"searchDepth":463,"depth":463,"links":943},[944,945,946,947,948,949,950,951],{"id":32,"depth":463,"text":33},{"id":156,"depth":463,"text":157},{"id":213,"depth":463,"text":214},{"id":664,"depth":463,"text":665},{"id":782,"depth":463,"text":783},{"id":828,"depth":463,"text":829},{"id":839,"depth":463,"text":840},{"id":903,"depth":463,"text":904},"2026-10-17T00:00:00.000Z","交易机器人去哪里拿财经日历：常用的几种数据源、各自的坑，以及一个不用密钥的免费 API，专为 EA（智能交易系统）、cBot、Python 和 JavaScript 定时轮询而设计。",false,"md",{"src":957},"\u002Fimages\u002Fblog\u002Ffree-economic-calendar-api-for-trading-bots-hero.svg",{},"\u002Fzh\u002Fguides\u002Ffree-economic-calendar-api-for-trading-bots",{"title":5,"description":953},"zh\u002F3.guides\u002F44.free-economic-calendar-api-for-trading-bots",null,"7qK265aHacJZFtLIwVAEiAjoX3IBGCuju8t_pcm7m9E",[965,970],{"title":966,"path":967,"stem":968,"description":969,"children":-1},"如何为 cTrader cBot 添加新闻过滤器（含云端）","\u002Fzh\u002Fguides\u002Fadd-a-news-filter-to-a-ctrader-cbot","zh\u002F3.guides\u002F43.add-a-news-filter-to-a-ctrader-cbot","cTrader 没有给 cBot 用的财经日历 API，cTrader Cloud 还会拦截 HTTP 请求。这里给出一个桌面端和云端都能用的新闻过滤器：通过 WebSocket 获取免费财经日历，附完整 C# 代码。",{"title":971,"path":972,"stem":973,"description":974,"children":-1},"交易表现追踪完全指南（{YEAR} 年版）","\u002Fzh\u002Fguides\u002Ftracking-trading-performance","zh\u002F3.guides\u002F7.tracking-trading-performance","大多数交易者根本说不清自己的交易水平到底怎么样。本文讲清哪些指标重要、怎么解读，以及真实账户在每项指标上的表现。",[976,978],{"path":977},"\u002Fguides\u002Ffree-economic-calendar-api-for-trading-bots",{"path":959},1793898039617]