知行多空线指标接入选股与事件回测;大盘总览走 quicksync 统一入口;candles 批量 upsert 分批防 asyncpg 参数超限

This commit is contained in:
2026-09-02 16:51:52 +08:00
parent 6ef8c585d6
commit bec4e8149c
5 changed files with 48 additions and 21 deletions

View File

@@ -64,3 +64,13 @@ def ema2(close: pd.Series, span: int = 10) -> pd.Series:
def avg_ma(close: pd.Series, periods: tuple[int, ...] = (10, 20, 30, 60)) -> pd.Series:
"""知行多空线:(MA(M1)+MA(M2)+MA(M3)+MA(M4))/4。"""
return sum(ma(close, p) for p in periods) / len(periods)
def zhixing_dkx(close: pd.Series, m1: int = 14, m2: int = 28, m3: int = 57, m4: int = 114) -> pd.Series:
"""知行多空线(通达信口径):(MA(M1)+MA(M2)+MA(M3)+MA(M4))/4M1~M4 缺省 14/28/57/114。
MA 为严格窗口(窗口不满为 NaN任一为空则多空线为空与前端 zhixing.ts /
通达信原公式一致(前 m4-1 根无值);区别于 avg_ma 的 min_periods=1 渐进口径。
"""
mas = [close.rolling(p, min_periods=p).mean() for p in (m1, m2, m3, m4)]
return sum(mas) / len(mas)