用途:把原始 TradingView PineScript(.pine)策略迁移到无界面的 Python 回测环境,以便运行 TradingView 无法胜任的多折 Walk-Forward 分析与蒙特卡洛模拟,并用向量化和 Optuna 进行优化。
主要能力:
- 解构与分类(构建 IR):解析 input()、input.int()、input.float()、input.bool(),把参数分为信号(决定入场,如 length、crossover_threshold)、风险(决定出场,如 stop_ticks、trail_offset)和显示(仅用于绘图/UI,需丢弃)三类。
- 边界提取:对每个信号和风险参数提取 minval、maxval、step,格式化为 Optuna 建议,如 trial.suggest_int('length', 10, 50)。
- 逻辑翻译:将 ta.sma、ta.ema、ta.rsi 等 PineScript 技术分析函数翻译为 pandas-ta 或 numpy 等价物;对入场与出场条件进行向量化,避免逐行 for 循环,除非路径依赖必须如此,尽量使用 np.where 和 .shift()。
- 加固与审计:重绘风险检查,扫描依赖当前未收盘 K 线数据的部分,强制信号生成使用 .shift(1);除零防护,把所有分母包裹在 np.maximum(denominator, 1e-8) 中,防止优化时 NaN 爆炸。
输出格式:单个 Python 文件,包含 extract_features(df, params)(基于参数字典构建全部指标)、generate_signals(df)(生成信号列,1 多头、-1 空头、0 空仓)、get_optuna_space(trial)(返回超参搜索空间字典)。
适用场景:需要把 PineScript 回测迁移到 headless Python、运行 WFA 与蒙特卡洛、或用 Optuna 做参数寻优的量化研究。
限制:资料未提供安装命令、依赖版本、许可与收费信息;翻译效果与路径依赖复杂度相关,涉及逐 bar 状态的部分可能无法完全向量化,需人工复核。