Tushare Data
zillionare/zillionare
面向中文自然语言的 Tushare 数据研究技能。用于把“看看这只股票最近怎么样”“帮我查财报趋势”“最近哪个板块最强”“北向资金在买什么”“给我导出一份行情数据”这类请求,转成可执行的数据获取、清洗、对比、筛选、导出与简要分析流程。适用于 A 股、指数、ETF/基金、财务、估值、资金流、公告新闻、板块概念与宏观数据等研究场景。
Translates a Vibe-Trading backtest strategy into a runnable vnpy CtaTemplate Python class for A-share stocks, futures or crypto.
$ npx skills add HKUDS/Vibe-Trading --skill vnpy-export -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install HKUDS/Vibe-Trading vnpy-export --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .claude/skills && cp -r skills-src/agent/src/skills/vnpy-export .claude/skills/vnpy-export && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "vnpy-export" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/vnpy-export into .claude/skills/vnpy-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vnpy-export", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/vnpy-exportType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add HKUDS/Vibe-Trading --skill vnpy-export -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install HKUDS/Vibe-Trading vnpy-export --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .agents/skills && cp -r skills-src/agent/src/skills/vnpy-export .agents/skills/vnpy-export && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vnpy-export" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/vnpy-export into .agents/skills/vnpy-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vnpy-export", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HKUDS/Vibe-Trading --skill vnpy-export -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install HKUDS/Vibe-Trading vnpy-export --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/agent/src/skills/vnpy-export .cursor/skills/vnpy-export && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "vnpy-export" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/vnpy-export into .cursor/skills/vnpy-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vnpy-export", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/HKUDS/Vibe-Trading.git --path agent/src/skills/vnpy-export--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add HKUDS/Vibe-Trading --skill vnpy-export -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install HKUDS/Vibe-Trading vnpy-export --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/agent/src/skills/vnpy-export .gemini/skills/vnpy-export && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "vnpy-export" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/vnpy-export into .gemini/skills/vnpy-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vnpy-export", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install HKUDS/Vibe-Trading vnpy-exportInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add HKUDS/Vibe-Trading --skill vnpy-export -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .github/skills && cp -r skills-src/agent/src/skills/vnpy-export .github/skills/vnpy-export && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "vnpy-export" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/vnpy-export into .github/skills/vnpy-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vnpy-export", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HKUDS/Vibe-Trading --skill vnpy-export -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install HKUDS/Vibe-Trading vnpy-export --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HKUDS/Vibe-Trading.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/agent/src/skills/vnpy-export .opencode/skills/vnpy-export && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "vnpy-export" agent skill from https://github.com/HKUDS/Vibe-Trading/tree/main/agent/src/skills/vnpy-export into .opencode/skills/vnpy-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vnpy-export", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
vnpy-exportTranslates a Vibe-Trading backtest strategy into a runnable vnpy CtaTemplate Python class for A-share stocks, futures or crypto.
It reads the backtest run's config for the instrument, dates, parameters and interval, and the signal engine's own logic, then determines the asset class to pick the right symbol convention: an A-share ticker trading in whole lots of shares, a futures contract trading in lots, or a crypto pair trading in coin units, and whether short selling applies, since stocks default to buy and sell only.
The translated class subclasses vnpy's CtaTemplate and implements its lifecycle methods, such as warming up indicators on init, using a bar generator and an array manager to handle bars and indicator arrays. The output is saved as a single Python file under an artifacts folder named after the strategy and returned to the user with setup instructions, ready to load into vnpy's CTA Strategy App for backtesting or live trading.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 14cabaf. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
vnpy.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Vibe-Trading to vnpy Exporter loads about 2.9k tokens when it runs. Until then it costs about 44 tokens; SKILL.md has 793 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from HKUDS/Vibe-Trading at commit 14cabaf, republished under its MIT licence (© HKUDS). 793 words, ~2,872 tokens.
.claude/skills/vnpy-export/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.This skill translates a Vibe-Trading strategy into a vnpy CtaTemplate subclass .py file
that can be loaded directly into the vnpy CTA Strategy App for live trading or vnpy backtesting.
Output file: artifacts/vnpy_strategy/<StrategyName>Strategy.py (inside the run directory).
vnpy is the most widely-used open-source quant framework in mainland China (39k+ GitHub stars).
Use this skill when the user asks to export to vnpy, requests a /vnpy command, or wants to
run a Vibe-Trading strategy inside vnpy's CTA backtester or live trading engine.
load_skill("vnpy-export") — read this guideread_file("config.json") — extract instrument, dates, parameters, intervalread_file("code/signal_engine.py") — understand the Python signal logicconfig.json → choose correct CtaTemplate convention (see below)write_file("artifacts/vnpy_strategy/<StrategyName>Strategy.py") — save the outputload_skill("vnpy-export") — read this guidewrite_file("artifacts/vnpy_strategy/<StrategyName>Strategy.py") — save the outputvnpy uses the same CtaTemplate base class for all asset types, but parameter conventions differ:
| Asset Class | Instrument Example | vt_symbol Format | Position Unit |
|---|---|---|---|
| A-share stock | Ping An Bank | 000001.SZSE | shares (整手, min 100) |
| Futures | IF2406 | IF2406.CFFEX | lots |
| Crypto | BTC/USDT | BTC/USDT.BINANCE | coin units |
For stocks: use buy / sell only (no short selling unless margin account).
For futures / crypto: use all four directions — buy, sell, short, cover.
Every strategy must subclass CtaTemplate and implement these methods:
| Method | Purpose |
|---|---|
__init__ | Declare parameters, variables, BarGenerator, ArrayManager |
on_init | Called once at startup; call load_bar(n) to warm up indicators |
on_start | Called when strategy is started by user |
on_stop | Called when strategy is stopped |
on_tick | Receives live tick data; forward to BarGenerator |
on_bar | Main logic — called once per bar by BarGenerator |
on_order | Order status updates |
on_trade | Fill notifications |
on_stop_order | Stop-order status (if using stop orders) |
Always call self.cancel_all() at the start of on_bar to avoid stale orders.
Always call self.put_event() at the end of on_bar to refresh the UI.
See scripts/cta_template.py for a complete, runnable example (MA crossover).
The template below is the canonical skeleton — replace the # SIGNAL LOGIC section:
from vnpy_ctastrategy import (
CtaTemplate,
StopOrder,
TickData,
BarData,
TradeData,
OrderData,
BarGenerator,
ArrayManager,
)
class {{StrategyName}}Strategy(CtaTemplate):
"""
Vibe-Trading export — {{StrategyName}}
Generated from run: {{run_id}}
Instrument: {{vt_symbol}}
"""
author = "Vibe-Trading"
# ── Parameters (editable in vnpy UI) ──────────────────────────────────
{{param_name}} = {{param_default}} # add one line per parameter
parameters = [{{param_list_as_strings}}]
# ── Variables (displayed in vnpy UI, reset on strategy restart) ────────
{{var_name}} = 0.0 # add one line per runtime variable
variables = [{{var_list_as_strings}}]
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
super().__init__(cta_engine, strategy_name, vt_symbol, setting)
self.bg = BarGenerator(self.on_bar)
self.am = ArrayManager()
# initialise variable attributes to match class-level defaults
# (vnpy requires instance attributes for variables declared above)
def on_init(self):
self.write_log("Strategy initialised")
self.load_bar({{warmup_bars}}) # load enough bars to warm up all indicators
def on_start(self):
self.write_log("Strategy started")
self.put_event()
def on_stop(self):
self.write_log("Strategy stopped")
def on_tick(self, tick: TickData):
self.bg.update_tick(tick)
def on_bar(self, bar: BarData):
self.cancel_all()
am = self.am
am.update_bar(bar)
if not am.inited:
return
# ── INDICATOR CALCULATIONS ──────────────────────────────────────────
# translate indicators from signal_engine.py using the mapping table
# ── SIGNAL LOGIC ───────────────────────────────────────────────────
# set cross_over / cross_under (or long_signal / short_signal) here
# ── ORDER EXECUTION ────────────────────────────────────────────────
if cross_over:
if self.pos == 0:
self.buy(bar.close_price, 1)
elif self.pos < 0:
self.cover(bar.close_price, 1)
self.buy(bar.close_price, 1)
elif cross_under:
if self.pos == 0:
self.short(bar.close_price, 1)
elif self.pos > 0:
self.sell(bar.close_price, 1)
self.short(bar.close_price, 1)
self.put_event()
def on_order(self, order: OrderData):
pass
def on_trade(self, trade: TradeData):
self.put_event()
def on_stop_order(self, stop_order: StopOrder):
passArrayManager is vnpy's built-in vectorised indicator library. Always prefer it over pandas
when the equivalent method exists — it is faster and avoids look-ahead bias.
| Python (Vibe-Trading / pandas / ta-lib) | vnpy ArrayManager |
|---|---|
df['close'].rolling(n).mean() | am.sma(n) |
df['close'].ewm(span=n).mean() | am.ema(n) |
ta.RSI(close, n) | am.rsi(n) |
ta.MACD(close, 12, 26, 9) | am.macd(12, 26, 9) → (macd, signal, hist) |
| Bollinger Bands | am.boll(n, dev) → (mid, upper, lower) |
| ATR | am.atr(n) |
| ADX | am.adx(n) |
df['close'].rolling(n).std() | am.std(n) |
| Stochastic K, D | am.kd(n, m) → (k, d) |
df['high'].rolling(n).max() | am.high_array[-n:].max() |
df['low'].rolling(n).min() | am.low_array[-n:].min() |
| Donchian channel | am.donchian(n) → (upper, lower) |
df['close'].shift(1) (previous bar) | am.close_array[-2] |
| Last N bars as array | am.sma(n, array=True) (returns full array) |
Using arrays: pass array=True to get the full history array (e.g. for crossover detection):
fast_ma = am.sma(self.fast_window, array=True)
cross_over = fast_ma[-1] > slow_ma[-1] and fast_ma[-2] <= slow_ma[-2]| Vibe-Trading signal | Position check | vnpy call |
|---|---|---|
| Long entry | self.pos == 0 | self.buy(price, volume) |
| Long entry (reverse from short) | self.pos < 0 | self.cover(price, vol); self.buy(price, vol) |
| Long exit | self.pos > 0 | self.sell(price, volume) |
| Short entry | self.pos == 0 | self.short(price, volume) |
| Short entry (reverse from long) | self.pos > 0 | self.sell(price, vol); self.short(price, vol) |
| Short exit | self.pos < 0 | self.cover(price, volume) |
| Close all (stop signal) | any | self.cancel_all() then sell / cover as needed |
Price conventions:
bar.close_price (market order equivalent)bar.close_price ± a small offset (e.g. * 1.001)self.buy_stop(trigger, volume) / self.short_stop(trigger, volume)Volume conventions:
When the Vibe-Trading strategy uses multiple timeframes (e.g., daily signal, hourly entry):
def __init__(self, ...):
super().__init__(...)
self.bg = BarGenerator(self.on_bar, 5, self.on_5min_bar) # 5-min bars
self.bg_d = BarGenerator(self.on_bar, window=1, on_window_bar=self.on_daily_bar,
interval=Interval.DAILY) # daily bars
self.am = ArrayManager()
self.am_d = ArrayManager(size=100) # daily ArrayManager
def on_bar(self, bar: BarData):
self.bg.update_bar(bar) # feeds 5-min generator
def on_5min_bar(self, bar: BarData):
self.bg_d.update_bar(bar) # feeds daily generator
# put intraday entry logic here
def on_daily_bar(self, bar: BarData):
self.am_d.update_bar(bar)
# put daily trend-filter logic hereSave the generated file to: artifacts/vnpy_strategy/<StrategyName>Strategy.py
To load in vnpy:
strategies/ folder (or any folder on sys.path)<StrategyName>Strategy from the dropdownvt_symbol (e.g. IF2406.CFFEX) and adjust parametersTo run the vnpy backtester:
from vnpy_ctastrategy.backtesting import BacktestingEngine
from vnpy.trader.constant import Interval
engine = BacktestingEngine()
engine.set_parameters(
vt_symbol="000001.SZSE",
interval=Interval.DAILY,
start=datetime(2020, 1, 1),
end=datetime(2024, 1, 1),
rate=0.0003,
slippage=0.02,
size=1,
pricetick=0.01,
capital=1_000_000,
)
engine.add_strategy({{StrategyName}}Strategy, {})
engine.load_data()
engine.run_backtesting()
df = engine.calculate_result()
engine.calculate_statistics()
engine.show_chart()Before saving the output file:
Strategy and matches the filenameparameters entries have matching class-level defaults and __init__ instance attributesvariables entries have matching instance attributes initialised in __init__on_bar calls self.cancel_all() at the starton_bar calls self.put_event() at the endon_bar returns early if not am.initedself.pos before every order callshort / cover calls unless margin trading is explicitly requestedload_bar(n) warmup in on_init is at least max(all indicator windows) + 2run_id and instrumentvnpy/app/cta_strategy/template.pyvnpy/app/cta_strategy/base.pyvnpy/app/cta_strategy/strategies/© HKUDS, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in agent/src/skills/vnpy-export of HKUDS/Vibe-Trading.
Open the folder on GitHubat commit 14cabaf
Vibe-Trading to vnpy Exporter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Vibe-Trading to vnpy Exporter this skillHKUDS/Vibe-Trading | 35k | — | ~2.9k | Automated safety check: Pass | MIT | |
| Tushare Datazillionare/zillionare | 319 | 2 repos | ~2.3k | Automated safety check: Pass | None | |
| Kalshi Traderyanfrigo/kalshi-ai-trading-bot | 612 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Polymarket Tennislivetennisapi/livetennisapi-mcp | 152 | — | ~3k | Automated safety check: Pass | MIT | |
| Quant Backtestjoemccann/market-data-warehouse | 183 | — | ~2.1k | Automated safety check: Pass | None | |
| Openscriptmarketcalls/openalgo | 2.8k | — | ~2.3k | Automated safety check: Notes | AGPL-3.0 |
zillionare/zillionare
面向中文自然语言的 Tushare 数据研究技能。用于把“看看这只股票最近怎么样”“帮我查财报趋势”“最近哪个板块最强”“北向资金在买什么”“给我导出一份行情数据”这类请求,转成可执行的数据获取、清洗、对比、筛选、导出与简要分析流程。适用于 A 股、指数、ETF/基金、财务、估值、资金流、公告新闻、板块概念与宏观数据等研究场景。
ryanfrigo/kalshi-ai-trading-bot
The disciplined process for autonomously and profitably trading the live Kalshi account on each /loop tick, with Claude as the decision-maker.
livetennisapi/livetennisapi-mcp
Build observe-only Polymarket and Kalshi tennis market tooling on the polymarket-tennis Python package (MIT) plus the Live Tennis API free tier.
joemccann/market-data-warehouse
Institutional-grade Python backtesting framework builder for Codex.
marketcalls/openalgo
Write an OpenScript study or strategy for OpenAlgo, and install it into strategies/openscript/ only after it compiles.
dfkai/xtquantai
根据策略描述、研报 PDF 或截图,解读因子/选股逻辑,基于 scripts/daily-factors-backtest.py 框架生成 QMT 内置日频因子回测脚本。用户提到 QMT 内置回测、因子选股回测、截面因子、 研报复现、handlebar 回测、afterinit 预计算信号时使用。
HKUDS/Vibe-Trading
Index of Eastmoney's free, no-token market data interfaces for China A-shares and Hong Kong stocks: fund flows, dragon-tiger lists, margin trading, reports and news.
HKUDS/Vibe-Trading
Retrieves public OKX cryptocurrency market data such as spot prices, candlesticks, funding rates and open interest through the OKX V5 REST API, with no authentication.
HKUDS/Vibe-Trading
Fetches U.S. SEC EDGAR data: resolves tickers to CIK numbers, lists recent 10-K, 10-Q and 8-K filings with document URLs, and pulls XBRL financial series.
HKUDS/Vibe-Trading
Predicts whether a mainland China A-share company risks an ST or *ST warning after its next annual report, using financial thresholds and Sina penalty records.
HKUDS/Vibe-Trading
Breaks a structural trend such as AI infrastructure into its physical supply chain and ranks lesser-known listed companies sitting on each bottleneck.
HKUDS/Vibe-Trading
Plans and drafts an eight-part, roughly 120k-word investigative series on one company, built around a strict fact-check pass rather than fast drafting.
Works with
Categories
Translates a Vibe-Trading backtest strategy into a runnable vnpy CtaTemplate Python class for A-share stocks, futures or crypto. It reads the backtest run's config for the instrument, dates, parameters and interval, and the signal engine's own logic, then determines the asset class to pick the right symbol convention: an A-share ticker trading in whole lots of shares, a futures contract trading in lots, or a crypto pair trading in coin units, and whether short selling applies, since stocks default to buy and sell only.
Vibe-Trading to vnpy Exporter fits situations like: exporting a Vibe-Trading strategy to run in vnpy; converting a backtested signal into a vnpy CtaTemplate class; choosing the right symbol format for stocks, futures or crypto.
Run `npx skills add HKUDS/Vibe-Trading --skill vnpy-export -a claude-code`. Or copy the skill folder (agent/src/skills/vnpy-export in HKUDS/Vibe-Trading) into .claude/skills/vnpy-export in your project. Claude Code loads it when a task matches its description.
Run `npx skills add HKUDS/Vibe-Trading --skill vnpy-export -a codex`. Or copy the skill folder (agent/src/skills/vnpy-export in HKUDS/Vibe-Trading) into .agents/skills/vnpy-export in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HKUDS/Vibe-Trading --skill vnpy-export -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vnpy-export, .gemini/skills/vnpy-export, .github/skills/vnpy-export and .opencode/skills/vnpy-export in your project.
Going by SKILL.md and its folder, Vibe-Trading to vnpy Exporter needs Python for the scripts in its folder. Our summary lists: vnpy with the CTA Strategy App; A Vibe-Trading backtest run's config and signal engine.
SKILL.md names 1 domain. As links in the text: vnpy.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Vibe-Trading to vnpy Exporter is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Vibe-Trading to vnpy Exporter: Tushare Data (zillionare/zillionare, 319 stars), Kalshi Trade (ryanfrigo/kalshi-ai-trading-bot, 612 stars), Polymarket Tennis (livetennisapi/livetennisapi-mcp, 152 stars) and Quant Backtest (joemccann/market-data-warehouse, 183 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
HKUDS (a GitHub organization) maintains it in HKUDS/Vibe-Trading, which has 34,949 GitHub stars. The repository holds 89 skills in this directory. The repository was last updated on October 8, 2026.
Source: HKUDS/Vibe-Trading on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.