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

如何设置可拖拽StopPrice输入框默认值为市价或15点?

解决Pine Script中input.price默认值设为市价(close)或固定点数的问题

问题根源

input.price()的defval参数要求传入常量值,而close是随K线动态变化的序列变量,直接赋值会导致无效或报错,这就是你设置defval=close不生效的原因。

解决方案一:默认值设为当前收盘价

通过var变量初始化止损价,结合input.price接收用户拖拽调整,代码如下:

//@version=5
indicator("可拖拽止损线", overlay=true)

// 首次运行时将止损价初始化为当前K线收盘价
var float StopPrice = close
// 创建可拖拽输入框,初始值设为na,后续用变量值覆盖
input_price = input.price(title="Stop Price", defval=na, confirm=true)

// 用户调整输入框时,更新止损价变量
if not na(input_price)
    StopPrice := input_price

// 绘制可拖拽的水平线
hline(StopPrice, "Stop Line", color=color.red, linestyle=hline.style_dashed)

解决方案二:默认值设为收盘价±15点

如果需要默认值为收盘价偏移15点,可结合品种最小变动单位计算偏移量,代码如下:

//@version=5
indicator("可拖拽止损线(15点偏移)", overlay=true)

// 计算15点对应的价格偏移(根据需求修改+/-号)
point_offset = 15 * syminfo.mintick
// 首次运行时初始化为收盘价加15点
var float StopPrice = close + point_offset

input_price = input.price(title="Stop Price", defval=na, confirm=true)
if not na(input_price)
    StopPrice := input_price

hline(StopPrice, "Stop Line", color=color.blue, linestyle=hline.style_dashed)

注意事项

  • var关键字确保止损价仅在脚本首次运行时初始化,不会随每根K线重置
  • 若需要切换周期或品种时自动重置默认值,可移除var关键字
  • 用户拖拽调整后,止损价会锁定为用户设置的值,直到手动重置输入框

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 17:12:36