提交
This commit is contained in:
@@ -135,12 +135,16 @@ def _scan_batch(
|
||||
if not candle_rows:
|
||||
return trades
|
||||
bars = pd.DataFrame(
|
||||
candle_rows, columns=["symbol", "ts", "open", "high", "low", "close"]
|
||||
candle_rows, columns=["symbol", "ts", "open", "high", "low", "close", "volume", "turnover"]
|
||||
)
|
||||
for symbol, g in bars.groupby("symbol", sort=False):
|
||||
if len(g) < 30:
|
||||
continue
|
||||
g = g.reset_index(drop=True)
|
||||
# pct_chg / amplitude 是派生列(candles 无现成涨跌幅/振幅):按股内环比补算,
|
||||
# 与选股引擎 _load_bars 同口径——否则「日涨跌幅/当日振幅」条件进事件回测直接 KeyError
|
||||
g["pct_chg"] = g["close"].pct_change() * 100
|
||||
g["amplitude"] = (g["high"] - g["low"]) / g["close"].shift(1) * 100
|
||||
ts_code_l = code_by_symbol[symbol]
|
||||
cache: dict = {"_families": set()}
|
||||
mask = _signal_mask(g, spec, cache)
|
||||
@@ -243,7 +247,7 @@ async def run_event_backtest(
|
||||
code_by_symbol = {sym: code for code, sym in batch}
|
||||
candle_rows = (await session.execute(
|
||||
select(Candle.symbol, Candle.ts, Candle.open, Candle.high,
|
||||
Candle.low, Candle.close)
|
||||
Candle.low, Candle.close, Candle.volume, Candle.turnover)
|
||||
.where(and_(Candle.timeframe == "1d",
|
||||
Candle.symbol.in_(symbols),
|
||||
Candle.ts >= buffer_ts, Candle.ts <= end_ts))
|
||||
|
||||
Reference in New Issue
Block a user