Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
hkuds avatar

Data Routing

  • 3 installs
  • 29.6k repo stars
  • Updated August 4, 2026
  • hkuds/vibe-trading

Select the best market data source (tushare, akshare, yfinance, okx, ccxt) by market type via a decision tree before backtesting or fetching data.

About

Provides a decision tree for selecting the best market data source across A-shares, US, HK, crypto, futures, and macro before a backtest or fetch. A developer loads it first to route symbol requests to tushare, akshare, yfinance, okx, or ccxt.

  • Decision tree selecting tushare, akshare, yfinance, okx, or ccxt
  • Per-market priority and availability checks

Data Routing by the numbers

  • 3 all-time installs (skills.sh)
  • Ranked #847 of 1,106 Finance & Trading skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/hkuds/vibe-trading --skill data-routing

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs3
repo stars29.6k
Last updatedAugust 4, 2026
Repositoryhkuds/vibe-trading

What it does

Select the best market data source (tushare, akshare, yfinance, okx, ccxt) by market type via a decision tree before backtesting or fetching data.

Files

SKILL.mdMarkdownGitHub ↗

Data Source Overview

SourceMarketsAuth RequiredNetworkSkill
tushareA-shares, funds, futures, macroYes (TUSHARE_TOKEN)China networktushare
akshareA-shares, US, HK, futures, macro, forexNoUnrestrictedakshare
yfinanceUS stocks, HK stocks, ETFsNoNeeds Yahoo Finance accessyfinance
okxCrypto (OKX exchange)NoNeeds okx.com accessokx-market
ccxtCrypto (100+ exchanges)NoNeeds exchange accessccxt

Decision Tree

Backtest Scenario (writing config.json)

Use source: "auto" — the runner automatically routes by symbol pattern and falls back to alternative sources if the primary one is unavailable.

You do NOT need to specify a concrete data source in config.json unless the user explicitly asks for one.

Analysis / Research Scenario (writing Python scripts)

1. Identify the market type from the user's request 2. Pick the source by priority:

A-shares: tushare (if TUSHARE_TOKEN is set) > akshare (free fallback) US stocks: yfinance > akshare HK stocks: yfinance > akshare Crypto: okx (single exchange) > ccxt (multi-exchange) Futures: tushare > akshare Macro / economics: akshare > tushare Forex: akshare > yfinance

3. Load the corresponding skill for API details: load_skill("akshare")

Availability Check

  • tushare: check if TUSHARE_TOKEN environment variable exists
  • yfinance / okx / ccxt / akshare: free but may have network restrictions
  • If the user reports "connection timeout" or "cannot access", switch to the same-market fallback

Symbol Format Reference

MarketFormatExamples
A-sharesNNNNNN.SZ/SH/BJ000001.SZ, 600000.SH
US stocksTICKER.USAAPL.US, MSFT.US
HK stocksNNN(N).HK700.HK, 9988.HK
CryptoSYMBOL-USDTBTC-USDT, ETH-USDT
FuturesXXNNNN.EXCHANGECU2406.SHFE
ForexXXX/YYYUSD/CNY, EUR/USD

Fallback Chain (Runner Layer)

The backtest runner implements automatic fallback at the market level:

User requests 000001.SZ (A-share)
  -> detect market: a_share
  -> try tushare: TUSHARE_TOKEN missing -> skip
  -> try akshare: available -> use akshare
  -> success (zero config required)

This is transparent to the user — they just see results.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.