diff --git a/API使用指南.md b/API使用指南.md index 0bb0a0f..9de8e07 100644 --- a/API使用指南.md +++ b/API使用指南.md @@ -131,7 +131,7 @@ def get_symbol_info(symbol): --- -### 5. 历史 K 线 +### 5. 历史 K 线(按偏移量) ``` GET /rates/from-pos?symbol={symbol}&timeframe={timeframe}&start_pos={start}&count={count} @@ -141,7 +141,7 @@ GET /rates/from-pos?symbol={symbol}&timeframe={timeframe}&start_pos={start}&coun |------|--------| | timeframe | `TIMEFRAME_M1` / `M5` / `M15` / `M30` / `H1` / `H4` / `D1` | | start_pos | 0 = 最新,1 = 前一根,以此类推 | -| count | 获取数量 | +| count | 获取数量,最大 10000 | ```python import pandas as pd @@ -168,6 +168,41 @@ print(df.head()) --- +### 5-2. 历史 K 线(按时间范围)⭐ 推荐 + +``` +GET /rates/from-date?symbol={symbol}&timeframe={timeframe}&date_from={date_from}&date_to={date_to} +``` + +| 参数 | 可选值 | +|------|--------| +| timeframe | `TIMEFRAME_M1` / `M5` / `M15` / `M30` / `H1` / `H4` / `D1` | +| date_from | 起始日期,ISO-8601 或 `yyyy-MM-dd` | +| date_to | 结束日期,ISO-8601 或 `yyyy-MM-dd` | + +```python +def get_rates_by_date(symbol, timeframe, date_from, date_to): + """按时间范围获取 K 线""" + data = api("/rates/from-date", params={ + "symbol": symbol, + "timeframe": f"TIMEFRAME_{timeframe}", + "date_from": date_from, + "date_to": date_to, + })["data"] + df = pd.DataFrame(data) + df["time"] = pd.to_datetime(df["time"]) + df.set_index("time", inplace=True) + return df + +# 获取 2026年7月1日 ~ 7月3日 的 H1 K 线 +df = get_rates_by_date("XAUUSD", "H1", "2026-07-01", "2026-07-03") +print(df.head()) +``` + +**返回字段:** 同 `/rates/from-pos` + +--- + ### 6. 当前持仓 ``` @@ -379,7 +414,7 @@ GlobalVariableSet(key, signal_value[last_closed]); ```python def read_signal(): try: - return api(f"/gvar/MY_SIGNAL_XAUUSDc_PERIOD_H1")["value"] + return api(f"/gvar/MY_SIGNAL_XAUUSD_PERIOD_H1")["value"] except: return None @@ -404,7 +439,7 @@ def on_tick(): if not bridge.has_position("XAUUSD"): bid, ask = bridge.tick("XAUUSD") - bridge.buy("XAUUSDc", 0.01, ask, sl=ask - 50, tp=ask + 100) + bridge.buy("XAUUSD", 0.01, ask, sl=ask - 50, tp=ask + 100) print("指标发出买入信号,已开多") ``` @@ -536,7 +571,7 @@ class MAStrategy: if __name__ == "__main__": bridge = Mt5Bridge() - strategy = MAStrategy(bridge, "XAUUSDc", fast=20, slow=60) + strategy = MAStrategy(bridge, "XAUUSD", fast=20, slow=60) while True: try: @@ -555,7 +590,8 @@ if __name__ == "__main__": ``` http://61.164.252.86:13485/health?key=your-api-key http://61.164.252.86:13485/account?key=your-api-key -http://61.164.252.86:13485/symbols/XAUUSDc/tick?key=your-api-key +http://61.164.252.86:13485/symbols/XAUUSD/tick?key=your-api-key +http://61.164.252.86:13485/rates/from-date?symbol=XAUUSD&timeframe=TIMEFRAME_H1&date_from=2026-07-01&date_to=2026-07-03&key=your-api-key ``` --- @@ -563,10 +599,11 @@ http://61.164.252.86:13485/symbols/XAUUSDc/tick?key=your-api-key ## PowerShell 快速测试 ```powershell -$key = "your-api-key" -Invoke-RestMethod "http://61.164.252.86:13485/health?key=$key" -Invoke-RestMethod "http://61.164.252.86:13485/account?key=$key" -Invoke-RestMethod "http://61.164.252.86:13485/symbols/XAUUSDc/tick?key=$key" +$headers = @{ "X-API-Key" = "your-api-key" } +Invoke-RestMethod "http://61.164.252.86:13485/health" -Headers $headers +Invoke-RestMethod "http://61.164.252.86:13485/account" -Headers $headers +Invoke-RestMethod "http://61.164.252.86:13485/symbols/XAUUSD/tick" -Headers $headers +Invoke-RestMethod "http://61.164.252.86:13485/rates/from-date?symbol=XAUUSD&timeframe=TIMEFRAME_H1&date_from=2026-07-01&date_to=2026-07-03" -Headers $headers ``` ---