选股
选股的目标是从一批标的中找出最近一根 K 线满足特定技术条件的股票。基本流程:
- 编写一个
indicator()脚本:条件成立时plot(1.0, "Signal"),否则plot(0.0, "Signal") - 对每只股票执行,加
--format json - 收集信号最后一个值为
1的股票
bash
last=$(longbridge quant run "$sym" --start ... --end ... \
--format json --script "$script" 2>/dev/null | \
jq -r '.data.series[] | select(.name == "Signal") | .values[-1]')
[ "$last" = "1" ] && echo "$sym"筛选只在 symbols 数组中列出的股票池内进行,按需修改这个列表即可。
RSI 超卖
筛选最新一根 K 线 RSI(14) 低于 35 的股票。
bash
symbols=(AAPL.US NVDA.US TSLA.US MSFT.US META.US AMZN.US GOOGL.US)
script='
indicator()
r = ta.rsi(close, 14)
plot(r < 35 ? 1.0 : 0.0, "Signal")
'
for sym in "${symbols[@]}"; do
last=$(longbridge quant run "$sym" \
--start 2026-01-01 --end 2026-04-28 \
--format json --script "$script" 2>/dev/null | \
jq -r '.data.series[] | select(.name == "Signal") | .values[-1]')
[ "$last" = "1" ] && echo "$sym"
doneEMA 多头排列
筛选三条均线形成多头排列(EMA8 > EMA21 > EMA55)的股票。
bash
symbols=(AAPL.US NVDA.US TSLA.US MSFT.US META.US AMZN.US GOOGL.US)
script='
indicator()
e8 = ta.ema(close, 8)
e21 = ta.ema(close, 21)
e55 = ta.ema(close, 55)
plot(e8 > e21 and e21 > e55 ? 1.0 : 0.0, "Signal")
'
for sym in "${symbols[@]}"; do
last=$(longbridge quant run "$sym" \
--start 2026-01-01 --end 2026-04-28 \
--format json --script "$script" 2>/dev/null | \
jq -r '.data.series[] | select(.name == "Signal") | .values[-1]')
[ "$last" = "1" ] && echo "$sym"
done布林带收窄
筛选带宽(上轨 − 下轨)处于 20 根 K 线最低点的股票——经典的波动率收缩信号。
bash
symbols=(AAPL.US NVDA.US TSLA.US MSFT.US META.US AMZN.US GOOGL.US)
script='
indicator()
length = input.int(20)
mult = input.float(2.0)
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
bw = (basis + dev) - (basis - dev)
plot(bw <= ta.lowest(bw, 20) ? 1.0 : 0.0, "Signal")
'
for sym in "${symbols[@]}"; do
last=$(longbridge quant run "$sym" \
--start 2026-01-01 --end 2026-04-28 \
--format json --script "$script" 2>/dev/null | \
jq -r '.data.series[] | select(.name == "Signal") | .values[-1]')
[ "$last" = "1" ] && echo "$sym"
done