
Market Data
pinets
pinets is a command-line tool that executes TradingView Pine Script indicators using the PineTS runtime and emits structured JSON of plots, results, and market data. Installable via npm (global) or run with npx, it accepts .
概览
pinets is a command-line tool that executes TradingView Pine Script indicators using the PineTS runtime and emits structured JSON of plots, results, and market data.
pinets is a command-line tool that executes TradingView Pine Script indicators using the PineTS runtime and emits structured JSON of plots, results, and market data. Installable via npm (global) or run with npx, it accepts .pine files or piped stdin and sources candles from Binance symbols or local JSON files. Configurable timeframes, output path, and output modes (default plots-only or full with result + marketData) plus flags for pretty-printing, cleaning nulls, and selecting plot names make it suitable for automation. Use it to validate and batch-run indicators, integrate technical calculations (RSI, SMA, EMA, MACD, etc.) into trading bots, CI tests, backtests, monitoring, or dashboards. Core advantages are headless reproducibility, easy pipeline integration, and structured machine-readable output without a TradingView GUI.
Skill.md
这个 Skill 如何工作
pinets is a command-line tool that executes TradingView Pine Script indicators using the PineTS runtime and emits structured JSON of plots, results, and market data. Installable via npm (global) or run with npx, it accepts .
pinets-cli — Run Pine Script Indicators from the Terminal
pinets is a CLI tool that executes TradingView Pine Script indicators via the PineTS runtime. It outputs structured JSON with calculated indicator values.
Installation
# Global install
npm install -g pinets-cli
# Or run directly with npx (no install needed)
npx pinets-cli run indicator.pine --symbol BTCUSDT -q
Verify (if installed globally):
pinets --version
When using npx, replace pinets with npx pinets-cli in all examples below.
Core command
pinets run [file] [options]
The indicator can be a file argument or piped from stdin.
Options
Data source (one required)
| Flag | Description |
|---|---|
-s, --symbol <ticker> | Symbol from Binance (e.g., BTCUSDT, ETHUSDT, SOLUSDT.P for futures) |
-t, --timeframe <tf> | Candle timeframe: 1, 5, 15, 30, 60, 120, 240, 1D, 1W, 1M (default: 60) |
-d, --data <path> | JSON file with candle data (alternative to --symbol) |
Output
| Flag | Description |
|---|---|
-o, --output <path> | Write to file instead of stdout |
-f, --format <type> | default (plots only) or full (plots + result + marketData) |
--pretty | Pretty-print JSON |
--clean | Filter out null, false, and empty values from plot data |
--plots <names> | Comma-separated list of plot names to include (default: all) |
-q, --quiet | Suppress info messages (essential when parsing stdout) |
Candle control
| Flag | Description |
|---|---|
-n, --candles <N> | Number of output candles (default: 500) |
-w, --warmup <N> | Extra warmup candles excluded from output (default: 0) |
Debug
| Flag | Description |
|---|---|
--debug | Show transpiled JavaScript code (to stderr) |
Usage patterns
Run a .pine file with live Binance data
pinets run indicator.pine --symbol BTCUSDT --timeframe 60 --candles 100 -q
Run with warmup (important for long-period indicators)
# EMA 200 needs at least 200 bars to initialize
pinets run ema200.pine -s BTCUSDT -t 1D -n 100 -w 200 -q
Pipe Pine Script from stdin
echo '//@version=5
indicator("RSI")
plot(ta.rsi(close, 14), "RSI")' | pinets run -s BTCUSDT -t 60 -n 20 -q
Run with custom JSON data
pinets run indicator.pine --data candles.json --candles 50 -q
Save output to file
pinets run rsi.pine -s BTCUSDT -t 60 -o results.json -q
Get full execution context
pinets run indicator.pine -s BTCUSDT -f full -q --pretty
Filter signals with --clean (for signal-based indicators)
# Without --clean: 500 entries, mostly false
pinets run ma_cross.pine -s BTCUSDT -t 1D -n 500 -q
# With --clean: Only actual signals
pinets run ma_cross.pine -s BTCUSDT -t 1D -n 500 --clean -q
Select specific plots with --plots
# Get only RSI, ignore bands
pinets run rsi_bands.pine -s BTCUSDT --plots "RSI" -q
# Get only Buy and Sell signals
pinets run signals.pine -s BTCUSDT --plots "Buy,Sell" -q
# Combine both: only signals, only true values
pinets run signals.pine -s BTCUSDT --plots "Buy,Sell" --clean -q
Output structure
default format
{
"indicator": {
"title": "RSI",
"overlay": false
},
"plots": {
"RSI": {
"title": "RSI",
"options": { "color": "#7E57C2" },
"data": [
{ "time": 1704067200000, "value": 58.23 },
{ "time": 1704070800000, "value": 61.45 }
]
}
}
}
full format
Adds result (raw return values per bar) and marketData (OHLCV candles) to the default output.
JSON data format (for --data)
[
{
"openTime": 1704067200000,
"open": 42000.5,
"high": 42500.0,
"low": 41800.0,
"close": 42300.0,
"volume": 1234.56,
"closeTime": 1704070799999
}
]
Required fields: open, high, low, close, volume. Recommended: openTime, closeTime.
Pine Script quick reference
pinets-cli accepts standard TradingView Pine Script v5+:
//@version=5
indicator("My Indicator", overlay=false)
// Technical analysis functions
rsi = ta.rsi(close, 14)
[macdLine, signalLine, hist] = ta.macd(close, 12, 26, 9)
sma = ta.sma(close, 20)
ema = ta.ema(close, 9)
bb_upper = ta.sma(close, 20) + 2 * ta.stdev(close, 20)
// Output — each plot() creates a named entry in the JSON output
plot(rsi, "RSI", color=color.purple)
Important notes
- Always use
-qwhen parsing JSON output programmatically. - Warmup matters: Indicators with long lookback periods (SMA 200, EMA 200) produce
NaNfor the first N bars. Use--warmupto pre-feed the indicator. timevalues are Unix timestamps in milliseconds.- Errors go to stderr with exit code 1.
- The tool bundles PineTS internally — no additional npm packages are needed at runtime.
Warmup recommendations
| Indicator | Minimum warmup |
|---|---|
| SMA(N) / EMA(N) | N |
| RSI(14) | 30 |
| MACD(12,26,9) | 50 |
| Bollinger Bands(20) | 30 |
| SMA(200) | 200+ |
Rule of thumb: set warmup to 1.5x-2x the longest lookback period.
最适合用于
何时使用
pinets is a command-line tool that executes TradingView Pine Script indicators using the PineTS runtime and emits structured JSON of plots, results, and market data. Installable via npm (global) or run with npx, it accepts .

01 · 会前准备
准备决策简报
在投委会开会前,把零散证据整理成结构化的论据。

02 · 团队协作
统一交接标准
让分析师、组合经理与 Agent 产出一致的研究结果。

03 · 实时更新
更新投资逻辑
出现新催化剂、KPI 发布或财报结果后,更新情景假设。
社区反馈
越用越好用。
随着 Skill 被使用与评审,反馈将展示在这里。
发现更多
相关 Skills
查看全部gmgn-market
gmgn-market is a CLI-driven Skill for retrieving crypto and meme-token market data: K-line (candlestick/OHLCV) charts, trending token rankings by USD volume, Trenches token lists, and newly launched…
crypto-price
This Skill retrieves cryptocurrency prices and generates dark-themed candlestick charts via a simple CLI. Invoke the script with a token symbol and optional duration (e.g., 30m, 3h, 12h, 2d) to…
cmc-api-crypto
This skill documents the CoinMarketCap (CMC) Cryptocurrency REST API for programmatic access to market and token data. It details authentication (API key via X-CMC_PRO_API_KEY), base URL, and…