Skip to main content

minute-analysis

Minute-level data analysis and backtesting. Retrieves minute candlesticks through OKX/Tushare/yfinance and can be used both for analysis and as input to the backtest engine.

Zur Installation springen

Quellinformationen

Repository
HKUDS/Vibe-Trading
Letzte Quellaktivität
9. April 2026 um 05:43
Erkannte Sprache von SKILL.md
Englisch
Sterne
33.795
Forks
5.510

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
minute-analysis
description
Minute-level data analysis and backtesting. Retrieves minute candlesticks through OKX/Tushare/yfinance and can be used both for analysis and as input to the backtest engine.
category
strategy
# Minute-Level Data Analysis and Backtesting ## Purpose Retrieve minute-level candlestick data through data-source APIs and calculate intraday indicators (VWAP, TWAP, volume distribution, and more). Supports minute-level backtesting: set `"interval": "5m"` in `config.json` and use the `backtest` tool to run intraday strategies. ## Backtest Configuration For minute-level backtests, simply add the `interval` field in `config.json`: ```json { "source": "okx", "codes": ["BTC-USDT"], "start_date": "2026-03-01", "end_date": "2026-03-15", "interval": "5m", "initial_cash": 1000000, "commission": 0.0005 } ``` - The annualization factor is inferred automatically from `source + interval` (`OKX 5m = 365 x 288 = 105120`) - Minute-level datasets are large. Recommended time limits: no more than 7 days for `1m`, no more than 30 days for `5m`, and no more than 1 year for `1H` ## Supported Data Sources and Intervals | Data Source | Supported Intervals | Notes | |--------|---------|------| | OKX | 1m/5m/15m/30m/1H/4H | Cryptocurrency, trades 7x24 | | Tushare | 1m/5m/15m/30m/1H | China A-shares, requires score >= 2000 | | yfinance | 1m/5m/15m/30m/1H | Hong Kong / US equities (free, no key required) | ## OKX Minute Candlestick API ```python import requests import pandas as pd resp = requests.get("https://www.okx.com/api/v5/market/candles", params={ "instId": "BTC-USDT", "bar": "1m", # 1m/5m/15m/30m/1H/4H "limit": "300", # At most 300 rows per request }) data = resp.json()["data"] columns = ["ts", "open", "high", "low", "close", "vol", "volCcy", "volCcyQuote", "confirm"] df = pd.DataFrame(reversed(data), columns=columns) df["ts"] = pd.to_datetime(df["ts"].astype("int64"), unit="ms") for col in ["open", "high", "low", "close", "vol"]: df[col] = df[col].astype(float) ``` ## Indicator Calculation Templates ### VWAP (Volume-Weighted Average Price) ```python typical_price = (df["high"] + df["low"] + df["close"]) / 3 df["vwap"] = (typical_price * df["vol"]).cumsum() / df["vol"].cumsum() ``` ### TWAP (Time-Weighted Average Price) ```python df["twap"] = df["close"].expanding().mean() ``` ### Volume Distribution ```python df["vol_pct"] = df["vol"] / df["vol"].sum() * 100 hourly_vol = df.set_index("ts").resample("1h")["vol"].sum() ``` ## Parameters | Parameter | Description | |------|------| | inst_id | Trading pair, such as `"BTC-USDT"` | | bar / interval | Candlestick interval: `1m/5m/15m/30m/1H/4H` | | limit | Number of records to retrieve (OKX returns at most 300 per request) | ## Common Pitfalls - OKX returns at most 300 rows per request. The loader paginates automatically, but `1m` datasets are still very large - The time range for minute-level backtests should not be too long, otherwise both data retrieval and backtesting will become slow or time out - Tushare minute endpoints require a score >= 2000. If the score is insufficient, the API returns empty data - Timestamps are Unix timestamps in milliseconds and should be converted with `unit="ms"` - Transaction costs for minute strategies should be set lower (for example 0.05% instead of 0.1%) because intraday trading is frequent ## Dependencies ```bash pip install pandas numpy requests ```
Auf GitHub ansehen