如何用Pine Script合并两个标的图表并计算新图表MA200
双标的平均价格图表+MA200 Pine Script实现方案
你可以直接用下面的代码实现需求,不需要额外依赖第三方库,复制到TradingView Pine编辑器即可运行:
//@version=5 indicator("双标的平均价格+MA200", overlay=false, shorttitle="AvgPrice_MA200") // 配置参数 second_ticker = input.symbol("SSE:000001", title="选择第二个交易标的") ma_length = input.int(200, title="MA周期", minval=1) price_type = input.string("收盘价", title="用于计算的价格类型", options=["开盘价", "最高价", "最低价", "收盘价", "高低点均价", "OHLC均价"]) // 匹配选择的价格类型 get_price(type) => res = switch type "开盘价" => open "最高价" => high "最低价" => low "收盘价" => close "高低点均价" => hl2 "OHLC均价" => ohlc4 res // 获取两个标的时间对齐的行情数据,关闭前视偏差无未来函数 current_price = get_price(price_type) second_price = request.security(second_ticker, timeframe.period, get_price(price_type), gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off) // 计算平均价格和对应均线 avg_price = (current_price + second_price) / 2 avg_ma = ta.sma(avg_price, ma_length) // 绘图展示 plot(avg_price, title="双标的平均价格", color=#2962FF, linewidth=2) plot(avg_ma, title="平均价格MA200", color=#FF6D00, linewidth=2)
使用说明
- 脚本默认加载在你当前打开的第一个标的图表上,在脚本参数面板手动选择第二个要参与计算的标的,即可自动生成平均价格线
- 支持自定义选择计算用的价格维度,默认用收盘价计算,可按需切换为开盘价、高低点均价等其他价格类型
- 代码默认使用简单移动平均(SMA)计算MA200,如果需要替换为指数移动平均(EMA),直接把代码中
ta.sma字段替换为ta.ema即可 - 行情拉取逻辑关闭了前视偏差,不会出现实盘和回测结果不一致的信号漂移问题
注意:如果两个标的交易时间不完全重合(比如跨市场的美股和A股),非重合时段的第二个标的价格会取最近一个有效交易日的收盘价参与计算,不会出现空值断档。
内容的提问来源于stack exchange,提问作者qmp
相关产品推荐
相关产品推荐

