You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PineScript中同时基于开盘收盘价绘制高低枢轴线?

问题描述

我目前在PineScript中通过K线影线(high、low)识别高低枢轴点(swing high、swing low)并绘制对应线条,但现在希望同时基于开盘价(open)和收盘价(close)来绘制这类线条,请问该如何实现?

以下是我当前使用的代码:

study(title="Para Basma", shorttitle="Para Basma", overlay=true)

// Inputs
pvtLenL= input(3, minval=1, title="Pivot Uzunluğu Sol Taraf")
pvtLenR= input(3, minval=1, title="Pivot Uzunluğu Sağ Taraf")

// Yüksek ve Düşük Pivot Noktaları Alın
pvthi_ = pivothigh(high, pvtLenL, pvtLenR)
pvtlo_ = pivotlow(low, pvtLenL, pvtLenR)

// Çizdirmeden önce Zorla Pivot tamamlama.
Shunt = 1 //Pivotu yazdırmadan önce kapanmayı bekle? 1 gerçek için 0 yanlış için
maxLvlLen = 0 //Maksimum Uzatma Uzunluğu
pvthi = pvthi_[Shunt]
pvtlo = pvtlo_[Shunt]

// Mevcut Pivot Seviyesi için kaç mum olduğunu sayın, Yeni sıfırlama durumunda.
counthi = barssince(not na(pvthi))
countlo = barssince(not na(pvtlo))

pvthis = fixnan(pvthi)
pvtlos = fixnan(pvtlo)

hipc = change(pvthis) != 0 ? na : color.maroon
lopc = change(pvtlos) != 0 ? na : color.green

// Display Pivot lines
plot((maxLvlLen == 0 or counthi< maxLvlLen) ? pvthis : na, color=hipc, transp=0, linewidth=1,     offset=-pvtLenR-Shunt, title="Top Levels")
plot((maxLvlLen == 0 or countlo < maxLvlLen) ? pvtlos : na, color=lopc, transp=0, linewidth=1, offset=-pvtLenR-Shunt, title="Bottom Levels")

(原效果示意图展示了基于影线绘制的高低枢轴水平线)

实现方案

要基于open和close绘制枢轴线,只需仿照原有逻辑,分别对开盘价、收盘价调用pivothigh()和pivotlow()函数,再添加对应的绘制逻辑即可。以下是修改后的完整代码:

study(title="Para Basma - 多价格维度枢轴线", shorttitle="Para Basma", overlay=true)

// Inputs
pvtLenL= input(3, minval=1, title="左侧枢轴长度")
pvtLenR= input(3, minval=1, title="右侧枢轴长度")

// --- 原有影线枢轴逻辑 ---
pvthi_high_ = pivothigh(high, pvtLenL, pvtLenR)
pvtlo_low_ = pivotlow(low, pvtLenL, pvtLenR)

// --- 新增开盘价枢轴逻辑 ---
pvthi_open_ = pivothigh(open, pvtLenL, pvtLenR)
pvtlo_open_ = pivotlow(open, pvtLenL, pvtLenR)

// --- 新增收盘价枢轴逻辑 ---
pvthi_close_ = pivothigh(close, pvtLenL, pvtLenR)
pvtlo_close_ = pivotlow(close, pvtLenL, pvtLenR)

// 延迟绘制(确保枢轴确认)
Shunt = 1 // 1=等待K线收盘后绘制,0=即时绘制
maxLvlLen = 0 // 线条最大延伸长度(0=无限延伸)

// 应用延迟
pvthi_high = pvthi_high_[Shunt]
pvtlo_low = pvtlo_low_[Shunt]
pvthi_open = pvthi_open_[Shunt]
pvtlo_open = pvtlo_open_[Shunt]
pvthi_close = pvthi_close_[Shunt]
pvtlo_close = pvtlo_close_[Shunt]

// 计算当前枢轴持续的K线数
counthi_high = barssince(not na(pvthi_high))
countlo_low = barssince(not na(pvtlo_low))
counthi_open = barssince(not na(pvthi_open))
countlo_open = barssince(not na(pvtlo_open))
counthi_close = barssince(not na(pvthi_close))
countlo_close = barssince(not na(pvtlo_close))

// 填充NaN值(让线条连续)
pvthis_high = fixnan(pvthi_high)
pvtlos_low = fixnan(pvtlo_low)
pvthis_open = fixnan(pvthi_open)
pvtlos_open = fixnan(pvtlo_open)
pvthis_close = fixnan(pvthi_close)
pvtlos_close = fixnan(pvtlo_close)

// 线条颜色逻辑(仅在枢轴延续时显示颜色)
hipc_high = change(pvthis_high) != 0 ? na : color.maroon
lopc_low = change(pvtlos_low) != 0 ? na : color.green
hipc_open = change(pvthis_open) != 0 ? na : color.orange
lopc_open = change(pvtlos_open) != 0 ? na : color.yellow
hipc_close = change(pvthis_close) != 0 ? na : color.blue
lopc_close = change(pvtlos_close) != 0 ? na : color.cyan

// 绘制所有枢轴线
// 影线高低枢轴
plot((maxLvlLen == 0 or counthi_high < maxLvlLen) ? pvthis_high : na, color=hipc_high, transp=0, linewidth=1, offset=-pvtLenR-Shunt, title="影线高点枢轴")
plot((maxLvlLen == 0 or countlo_low < maxLvlLen) ? pvtlos_low : na, color=lopc_low, transp=0, linewidth=1, offset=-pvtLenR-Shunt, title="影线低点枢轴")
// 开盘价高低枢轴
plot((maxLvlLen == 0 or counthi_open < maxLvlLen) ? pvthis_open : na, color=hipc_open, transp=0, linewidth=1, offset=-pvtLenR-Shunt, title="开盘价高点枢轴")
plot((maxLvlLen == 0 or countlo_open < maxLvlLen) ? pvtlos_open : na, color=lopc_open, transp=0, linewidth=1, offset=-pvtLenR-Shunt, title="开盘价低点枢轴")
// 收盘价高低枢轴
plot((maxLvlLen == 0 or counthi_close < maxLvlLen) ? pvthis_close : na, color=hipc_close, transp=0, linewidth=1, offset=-pvtLenR-Shunt, title="收盘价高点枢轴")
plot((maxLvlLen == 0 or countlo_close < maxLvlLen) ? pvtlos_close : na, color=lopc_close, transp=0, linewidth=1, offset=-pvtLenR-Shunt, title="收盘价低点枢轴")

代码说明

  • 分别为open和close新增了枢轴点计算逻辑,与原有high/low的逻辑完全一致
  • 为不同价格维度的枢轴线设置了不同颜色,方便区分
  • 保留了原有的延迟绘制、线条延伸长度控制等逻辑
  • 所有注释已翻译成中文,便于理解

内容的提问来源于stack exchange,提问作者user3134138

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 00:07:05