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

如何使Long_signal中的变量支持可选启用/禁用?

实现条件单独开关的最优方案

核心思路

给每个判断条件添加独立的布尔开关,通过开关变量 ? 原条件 : true的逻辑实现启用/禁用控制——开关开启时使用原条件过滤,关闭时该条件自动返回true,不影响整体的逻辑与(and)判断。

具体实现步骤

  1. 定义开关输入:用input.bool()为每个条件创建可交互的开关,默认设为true(即默认启用所有条件)。
  2. 重构信号逻辑:在组合Long_signal时,将每个条件与对应的开关绑定。

完整代码示例

//@version=5
indicator("Long Signal with Toggleable Conditions", overlay=true)

// 原条件定义
Green = Bar_Color == color.new(#04E819, 0)
MA_Long = MA_Entry == 'Aggressive' ? l_C <= SMA_Out : c_C <= SMA_Out
Stoch_Long = Stoch_MTF_6H <= Stoch_Lower
Hour_Filter = true // 假设原变量已定义
Day_Filter = true // 假设原变量已定义
Volume_Signal = true // 假设原变量已定义

// 定义各条件的开关(可在指标设置中勾选/取消)
enable_Green = input.bool(true, title="启用K线颜色条件")
enable_MA_Long = input.bool(true, title="启用均线多单条件")
enable_Stoch_Long = input.bool(true, title="启用6小时随机指标多单条件")
enable_Hour_Filter = input.bool(true, title="启用小时时间过滤")
enable_Day_Filter = input.bool(true, title="启用日期时间过滤")
enable_Volume_Signal = input.bool(true, title="启用成交量信号过滤")

// 重构后的多单信号
Long_signal = 
    (enable_Green ? Green : true) and 
    (enable_MA_Long ? MA_Long : true) and 
    (enable_Stoch_Long ? Stoch_Long : true) and 
    (enable_Hour_Filter ? Hour_Filter : true) and 
    (enable_Day_Filter ? Day_Filter : true) and 
    (enable_Volume_Signal ? Volume_Signal : true)

逻辑说明

  • 当某个开关设为false时,对应的开关变量 ? 条件 : true会返回true,在and逻辑中相当于忽略该条件,不参与信号过滤。
  • 所有开关默认开启,保留原逻辑的同时,提供了灵活的单独控制能力。
  • 开关通过input.bool()实现,用户可以直接在TradingView的指标设置面板中可视化调整,无需修改代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:05:18