添加按时间拉取K线功能
This commit is contained in:
+47
-10
@@ -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
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user