//@version=6 indicator(title = 'FibFib', shorttitle = 'AutoFib', overlay = true) fiblength = input(265) // 穿越检测参数设置 lookback_bars = input.int(10, title="穿越检测回看K线数", minval=1, maxval=50, group="穿越检测设置", tooltip="用于比较的历史K线数量,默认为10根K线") // 警报标记显示控制 show_alerts = input.bool(true, title="显示警报标记", group="警报设置") show_fib1_alerts = input.bool(true, title="显示fib1穿越标记", group="警报设置") show_fib0_alerts = input.bool(true, title="显示fib0穿越标记", group="警报设置") show_fib764_alerts = input.bool(true, title="显示fib0.764穿越标记", group="警报设置") show_fib236_alerts = input.bool(true, title="显示fib0.236穿越标记", group="警报设置") // 文字标记显示控制 show_text_labels = input.bool(true, title="显示文字标记", group="警报设置", tooltip="控制穿越标记上的文字显示(如↑1.0、↓0.0等)") maxr = ta.highest(close, fiblength) minr = ta.lowest(close, fiblength) ranr = maxr - minr ON_level = maxr SS_level = maxr - 0.236 * ranr SO_level = maxr - 0.382 * ranr FI_level = maxr - 0.50 * ranr TE_level = minr + 0.382 * ranr TT_level = minr + 0.236 * ranr ZZ_level = minr ON = plot(maxr, color = color.new(color.black, 0), title = '1') SS = plot(maxr - 0.236 * ranr, title = '0.764', color = color.new(#3399FF, 0)) SO = plot(maxr - 0.382 * ranr, title = '0.618', color = color.new(color.blue, 0)) FI = plot(maxr - 0.50 * ranr, title = '0.5', color = color.new(color.lime, 0)) TE = plot(minr + 0.382 * ranr, title = '0.382', color = color.new(color.green, 0)) TT = plot(minr + 0.236 * ranr, title = '0.236', color = color.new(color.red, 0)) ZZ = plot(minr, title = '0', color = color.new(color.black, 0)) fill(ON, SS, color = color.new(color.red, 90)) fill(SS, SO, color = color.new(#3399FF, 90)) fill(SO, FI, color = color.new(color.lime, 90)) fill(FI, TE, color = color.new(color.lime, 90)) fill(TE, TT, color = color.new(#3399FF, 90)) fill(TT, ZZ, color = color.new(color.red, 90)) // --- 警报条件 --- // --- 穿越警报逻辑 --- // 使用实时价格和前N根K线的比较(N为可配置参数) // 获取第N根K线时的fib值 fib1_prevN = ta.highest(close[lookback_bars], fiblength) fib0_prevN = ta.lowest(close[lookback_bars], fiblength) ranr_prevN = fib1_prevN - fib0_prevN fib764_prevN = fib1_prevN - 0.236 * ranr_prevN // fib0.764 fib236_prevN = fib0_prevN + 0.236 * ranr_prevN // fib0.236 // 检查第N根K线时价格位置(相对于当时的fib线) prevN_below_fib1 = close[lookback_bars] < fib1_prevN prevN_above_fib0 = close[lookback_bars] > fib0_prevN prevN_below_fib764 = close[lookback_bars] < fib764_prevN prevN_above_fib764 = close[lookback_bars] > fib764_prevN prevN_below_fib236 = close[lookback_bars] < fib236_prevN prevN_above_fib236 = close[lookback_bars] > fib236_prevN // 检查当前实时价格位置(相对于第N根K线时的fib线) curr_above_fib1_prevN = close > fib1_prevN curr_below_fib0_prevN = close < fib0_prevN curr_above_fib764_prevN = close > fib764_prevN curr_below_fib764_prevN = close < fib764_prevN curr_above_fib236_prevN = close > fib236_prevN curr_below_fib236_prevN = close < fib236_prevN // 穿越检测 // 上穿fib1:第N根K线时价格在fib1下方,现在价格在那时的fib1上方 cross_above_fib1 = prevN_below_fib1 and curr_above_fib1_prevN // 下穿fib0:第N根K线时价格在fib0上方,现在价格在那时的fib0下方 cross_below_fib0 = prevN_above_fib0 and curr_below_fib0_prevN // 上穿fib0.764:第N根K线时价格在fib0.764下方,现在价格在那时的fib0.764上方 cross_above_fib764 = prevN_below_fib764 and curr_above_fib764_prevN // 下穿fib0.764:第N根K线时价格在fib0.764上方,现在价格在那时的fib0.764下方 cross_below_fib764 = prevN_above_fib764 and curr_below_fib764_prevN // 上穿fib0.236:第N根K线时价格在fib0.236下方,现在价格在那时的fib0.236上方 cross_above_fib236 = prevN_below_fib236 and curr_above_fib236_prevN // 下穿fib0.236:第N根K线时价格在fib0.236上方,现在价格在那时的fib0.236下方 cross_below_fib236 = prevN_above_fib236 and curr_below_fib236_prevN // ===== 统一警报系统 ===== // 统一警报系统 - 只需添加一次警报即可捕获所有信号 // 警报频率限制 - 每分钟只触发一次 var int last_alert_fib1_up = 0 var int last_alert_fib0_down = 0 var int last_alert_fib764_up = 0 var int last_alert_fib764_down = 0 var int last_alert_fib236_up = 0 var int last_alert_fib236_down = 0 var int last_alert_range_764_1 = 0 var int last_alert_range_0_236 = 0 var int last_alert_below_382 = 0 var int last_alert_above_618 = 0 // 获取当前时间(分钟级别) current_minute = math.floor(timenow / 60000) // 检测所有警报条件并生成对应的JSON消息 alert_message = "" // 斐波那契穿越警报 - 每分钟限制 if cross_above_fib1 and current_minute > last_alert_fib1_up alert_message := '{"指标名称":"autofib","交易对":"' + syminfo.ticker + '","触发时间":"' + str.tostring(timenow) + '","时间":"' + str.tostring(time) + '","周期":"' + timeframe.period + '","价格":"' + str.tostring(close, '#.####') + '","fib 0":"' + str.tostring(ZZ_level, '#.####') + '","fib 0.236":"' + str.tostring(TT_level, '#.####') + '","fib 0.382":"' + str.tostring(TE_level, '#.####') + '","fib 0.5":"' + str.tostring(FI_level, '#.####') + '","fib 0.618":"' + str.tostring(SO_level, '#.####') + '","fib 0.764":"' + str.tostring(SS_level, '#.####') + '","fib 1":"' + str.tostring(ON_level, '#.####') + '","事件":"价格上穿fib1","位置":"突破fib1阻力位","方向":"向上突破","信号":"fib1_breakout_up"}' alert(alert_message, alert.freq_once_per_bar_close) last_alert_fib1_up := current_minute if cross_below_fib0 and current_minute > last_alert_fib0_down alert_message := '{"指标名称":"autofib","交易对":"' + syminfo.ticker + '","触发时间":"' + str.tostring(timenow) + '","时间":"' + str.tostring(time) + '","周期":"' + timeframe.period + '","价格":"' + str.tostring(close, '#.####') + '","fib 0":"' + str.tostring(ZZ_level, '#.####') + '","fib 0.236":"' + str.tostring(TT_level, '#.####') + '","fib 0.382":"' + str.tostring(TE_level, '#.####') + '","fib 0.5":"' + str.tostring(FI_level, '#.####') + '","fib 0.618":"' + str.tostring(SO_level, '#.####') + '","fib 0.764":"' + str.tostring(SS_level, '#.####') + '","fib 1":"' + str.tostring(ON_level, '#.####') + '","事件":"价格下穿fib0","位置":"跌破fib0支撑位","方向":"向下突破","信号":"fib0_breakout_down"}' alert(alert_message, alert.freq_once_per_bar_close) last_alert_fib0_down := current_minute if cross_above_fib764 and current_minute > last_alert_fib764_up alert_message := '{"指标名称":"autofib","交易对":"' + syminfo.ticker + '","触发时间":"' + str.tostring(timenow) + '","时间":"' + str.tostring(time) + '","周期":"' + timeframe.period + '","价格":"' + str.tostring(close, '#.####') + '","fib 0":"' + str.tostring(ZZ_level, '#.####') + '","fib 0.236":"' + str.tostring(TT_level, '#.####') + '","fib 0.382":"' + str.tostring(TE_level, '#.####') + '","fib 0.5":"' + str.tostring(FI_level, '#.####') + '","fib 0.618":"' + str.tostring(SO_level, '#.####') + '","fib 0.764":"' + str.tostring(SS_level, '#.####') + '","fib 1":"' + str.tostring(ON_level, '#.####') + '","事件":"价格上穿fib0.764","位置":"突破fib0.764阻力位","方向":"向上突破","信号":"fib764_breakout_up"}' alert(alert_message, alert.freq_once_per_bar_close) last_alert_fib764_up := current_minute // if cross_below_fib764 and current_minute > last_alert_fib764_down // alert_message := '{"指标名称":"autofib","交易对":"' + syminfo.ticker + '","触发时间":"' + str.tostring(timenow) + '","时间":"' + str.tostring(time) + '","周期":"' + timeframe.period + '","价格":"' + str.tostring(close, '#.####') + '","fib 0":"' + str.tostring(ZZ_level, '#.####') + '","fib 0.236":"' + str.tostring(TT_level, '#.####') + '","fib 0.382":"' + str.tostring(TE_level, '#.####') + '","fib 0.5":"' + str.tostring(FI_level, '#.####') + '","fib 0.618":"' + str.tostring(SO_level, '#.####') + '","fib 0.764":"' + str.tostring(SS_level, '#.####') + '","fib 1":"' + str.tostring(ON_level, '#.####') + '","事件":"价格下穿fib0.764","位置":"跌破fib0.764支撑位","方向":"向下突破","信号":"fib764_breakout_down"}' // alert(alert_message, alert.freq_once_per_bar_close) // last_alert_fib764_down := current_minute // if cross_above_fib236 and current_minute > last_alert_fib236_up // alert_message := '{"指标名称":"autofib","交易对":"' + syminfo.ticker + '","触发时间":"' + str.tostring(timenow) + '","时间":"' + str.tostring(time) + '","周期":"' + timeframe.period + '","价格":"' + str.tostring(close, '#.####') + '","fib 0":"' + str.tostring(ZZ_level, '#.####') + '","fib 0.236":"' + str.tostring(TT_level, '#.####') + '","fib 0.382":"' + str.tostring(TE_level, '#.####') + '","fib 0.5":"' + str.tostring(FI_level, '#.####') + '","fib 0.618":"' + str.tostring(SO_level, '#.####') + '","fib 0.764":"' + str.tostring(SS_level, '#.####') + '","fib 1":"' + str.tostring(ON_level, '#.####') + '","事件":"价格上穿fib0.236","位置":"突破fib0.236阻力位","方向":"向上突破","信号":"fib236_breakout_up"}' // alert(alert_message, alert.freq_once_per_bar_close) // last_alert_fib236_up := current_minute if cross_below_fib236 and current_minute > last_alert_fib236_down alert_message := '{"指标名称":"autofib","交易对":"' + syminfo.ticker + '","触发时间":"' + str.tostring(timenow) + '","时间":"' + str.tostring(time) + '","周期":"' + timeframe.period + '","价格":"' + str.tostring(close, '#.####') + '","fib 0":"' + str.tostring(ZZ_level, '#.####') + '","fib 0.236":"' + str.tostring(TT_level, '#.####') + '","fib 0.382":"' + str.tostring(TE_level, '#.####') + '","fib 0.5":"' + str.tostring(FI_level, '#.####') + '","fib 0.618":"' + str.tostring(SO_level, '#.####') + '","fib 0.764":"' + str.tostring(SS_level, '#.####') + '","fib 1":"' + str.tostring(ON_level, '#.####') + '","事件":"价格下穿fib0.236","位置":"跌破fib0.236支撑位","方向":"向下突破","信号":"fib236_breakout_down"}' alert(alert_message, alert.freq_once_per_bar_close) last_alert_fib236_down := current_minute // 区间警报 - 每分钟限制 if close > SS_level and close < ON_level and current_minute > last_alert_range_764_1 alert_message := '{"指标名称":"autofib","交易对":"' + syminfo.ticker + '","触发时间":"' + str.tostring(timenow) + '","时间":"' + str.tostring(time) + '","周期":"' + timeframe.period + '","价格":"' + str.tostring(close, '#.####') + '","fib 0":"' + str.tostring(ZZ_level, '#.####') + '","fib 0.236":"' + str.tostring(TT_level, '#.####') + '","fib 0.382":"' + str.tostring(TE_level, '#.####') + '","fib 0.5":"' + str.tostring(FI_level, '#.####') + '","fib 0.618":"' + str.tostring(SO_level, '#.####') + '","fib 0.764":"' + str.tostring(SS_level, '#.####') + '","fib 1":"' + str.tostring(ON_level, '#.####') + '","事件":"价格处于fib0.764和fib1之间","位置":"fib0.764-fib1","信号":"fib_range_764_1"}' alert(alert_message, alert.freq_once_per_bar) last_alert_range_764_1 := current_minute if close > ZZ_level and close < TT_level and current_minute > last_alert_range_0_236 alert_message := '{"指标名称":"autofib","交易对":"' + syminfo.ticker + '","触发时间":"' + str.tostring(timenow) + '","时间":"' + str.tostring(time) + '","周期":"' + timeframe.period + '","价格":"' + str.tostring(close, '#.####') + '","fib 0":"' + str.tostring(ZZ_level, '#.####') + '","fib 0.236":"' + str.tostring(TT_level, '#.####') + '","fib 0.382":"' + str.tostring(TE_level, '#.####') + '","fib 0.5":"' + str.tostring(FI_level, '#.####') + '","fib 0.618":"' + str.tostring(SO_level, '#.####') + '","fib 0.764":"' + str.tostring(SS_level, '#.####') + '","fib 1":"' + str.tostring(ON_level, '#.####') + '","事件":"价格处于fib0和fib0.236之间","位置":"fib0-fib0.236","信号":"fib_range_0_236"}' alert(alert_message, alert.freq_once_per_bar) last_alert_range_0_236 := current_minute // 价格位于fib0.382以下的警报 - 每分钟限制 // if close < TE_level and current_minute > last_alert_below_382 // alert_message := '{"指标名称":"autofib","交易对":"' + syminfo.ticker + '","触发时间":"' + str.tostring(timenow) + '","时间":"' + str.tostring(time) + '","周期":"' + timeframe.period + '","价格":"' + str.tostring(close, '#.####') + '","fib 0":"' + str.tostring(ZZ_level, '#.####') + '","fib 0.236":"' + str.tostring(TT_level, '#.####') + '","fib 0.382":"' + str.tostring(TE_level, '#.####') + '","fib 0.5":"' + str.tostring(FI_level, '#.####') + '","fib 0.618":"' + str.tostring(SO_level, '#.####') + '","fib 0.764":"' + str.tostring(SS_level, '#.####') + '","fib 1":"' + str.tostring(ON_level, '#.####') + '","事件":"价格位于fib0.382以下","位置":"fib0.382以下","方向":"低位","信号":"price_below_382"}' // alert(alert_message, alert.freq_once_per_bar) // last_alert_below_382 := current_minute // // 价格位于fib0.618以上的警报 - 每分钟限制 // if close > SO_level and current_minute > last_alert_above_618 // alert_message := '{"指标名称":"autofib","交易对":"' + syminfo.ticker + '","触发时间":"' + str.tostring(timenow) + '","时间":"' + str.tostring(time) + '","周期":"' + timeframe.period + '","价格":"' + str.tostring(close, '#.####') + '","fib 0":"' + str.tostring(ZZ_level, '#.####') + '","fib 0.236":"' + str.tostring(TT_level, '#.####') + '","fib 0.382":"' + str.tostring(TE_level, '#.####') + '","fib 0.5":"' + str.tostring(FI_level, '#.####') + '","fib 0.618":"' + str.tostring(SO_level, '#.####') + '","fib 0.764":"' + str.tostring(SS_level, '#.####') + '","fib 1":"' + str.tostring(ON_level, '#.####') + '","事件":"价格位于fib0.618以上","位置":"fib0.618以上","方向":"高位","信号":"price_above_618"}' // alert(alert_message, alert.freq_once_per_bar) // last_alert_above_618 := current_minute // ===== 传统警报条件(保留兼容性)===== // 注意:使用统一警报系统时,建议只使用上面的alert()函数 // 以下alertcondition保留用于需要单独设置警报的情况 // 创建用于警报的plot变量 plot(ON_level, title = 'fib 1', display = display.none) plot(SS_level, title = 'fib 0.764', display = display.none) plot(SO_level, title = 'fib 0.618', display = display.none) plot(FI_level, title = 'fib 0.5', display = display.none) plot(TE_level, title = 'fib 0.382', display = display.none) plot(TT_level, title = 'fib 0.236', display = display.none) plot(ZZ_level, title = 'fib 0', display = display.none) // 斐波那契穿越警报 alertcondition(cross_above_fib1, title = '价格上穿fib1', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格上穿fib1","位置":"突破fib1阻力位","方向":"向上突破","信号":"fib1_breakout_up"}') alertcondition(cross_below_fib0, title = '价格下穿fib0', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格下穿fib0","位置":"跌破fib0支撑位","方向":"向下突破","信号":"fib0_breakout_down"}') alertcondition(cross_above_fib764, title = '价格上穿fib0.764', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格上穿fib0.764","位置":"突破fib0.764阻力位","方向":"向上突破","信号":"fib764_breakout_up"}') alertcondition(cross_below_fib764, title = '价格下穿fib0.764', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格下穿fib0.764","位置":"跌破fib0.764支撑位","方向":"向下突破","信号":"fib764_breakout_down"}') // alertcondition(cross_above_fib236, title = '价格上穿fib0.236', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格上穿fib0.236","位置":"突破fib0.236阻力位","方向":"向上突破","信号":"fib236_breakout_up"}') // alertcondition(cross_below_fib236, title = '价格下穿fib0.236', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格下穿fib0.236","位置":"跌破fib0.236支撑位","方向":"向下突破","信号":"fib236_breakout_down"}') // 区间警报 alertcondition(close > SS_level and close < ON_level, title = '价格处于fib0.764和fib1之间', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格处于fib0.764和fib1之间","位置":"fib0.764-fib1","信号":"fib_range_764_1"}') alertcondition(close > ZZ_level and close < TT_level, title = '价格处于fib0和fib0.236之间', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格处于fib0和fib0.236之间","位置":"fib0-fib0.236","信号":"fib_range_0_236"}') // 价格位置警报 alertcondition(close < TE_level, title = '价格位于fib0.382以下', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格位于fib0.382以下","位置":"fib0.382以下","方向":"低位","信号":"price_below_382"}') alertcondition(close > SO_level, title = '价格位于fib0.618以上', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格位于fib0.618以上","位置":"fib0.618以上","方向":"高位","信号":"price_above_618"}') // 其他斐波那契水平穿越警报 // alertcondition(ta.crossover(close, SO_level), title = '价格上穿fib0.618', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格上穿fib0.618","位置":"突破fib0.618阻力位","方向":"向上突破","信号":"fib618_breakout_up"}') // alertcondition(ta.crossunder(close, SO_level), title = '价格下穿fib0.618', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格下穿fib0.618","位置":"跌破fib0.618支撑位","方向":"向下突破","信号":"fib618_breakout_down"}') // alertcondition(ta.crossover(close, FI_level), title = '价格上穿fib0.5', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格上穿fib0.5","位置":"突破fib0.5阻力位","方向":"向上突破","信号":"fib5_breakout_up"}') // alertcondition(ta.crossunder(close, FI_level), title = '价格下穿fib0.5', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格下穿fib0.5","位置":"跌破fib0.5支撑位","方向":"向下突破","信号":"fib5_breakout_down"}') // alertcondition(ta.crossover(close, TE_level), title = '价格上穿fib0.382', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格上穿fib0.382","位置":"突破fib0.382阻力位","方向":"向上突破","信号":"fib382_breakout_up"}') // alertcondition(ta.crossunder(close, TE_level), title = '价格下穿fib0.382', message = '{"指标名称":"autofib","交易对":"{{ticker}}","触发时间":"{{timenow}}","时间":"{{time}}","周期":"{{interval}}","价格":"{{close}}","fib 0":"{{plot("fib 0")}}","fib 0.236":"{{plot("fib 0.236")}}","fib 0.382":"{{plot("fib 0.382")}}","fib 0.5":"{{plot("fib 0.5")}}","fib 0.618":"{{plot("fib 0.618")}}","fib 0.764":"{{plot("fib 0.764")}}","fib 1":"{{plot("fib 1")}}","事件":"价格下穿fib0.382","位置":"跌破fib0.382支撑位","方向":"向下突破","信号":"fib382_breakout_down"}') // --- 可视化穿越信号 --- // 在图表上标记穿越点(可通过设置控制显示/隐藏) // 带文字的标记 plotshape(show_alerts and show_fib1_alerts and show_text_labels and cross_above_fib1, title="上穿Fib1(带文字)", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, text="↑1.0") plotshape(show_alerts and show_fib0_alerts and show_text_labels and cross_below_fib0, title="下穿Fib0(带文字)", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, text="↓0.0") plotshape(show_alerts and show_fib764_alerts and show_text_labels and cross_above_fib764, title="上穿Fib0.764(带文字)", location=location.belowbar, color=color.blue, style=shape.triangleup, size=size.small, text="↑0.764") plotshape(show_alerts and show_fib764_alerts and show_text_labels and cross_below_fib764, title="下穿Fib0.764(带文字)", location=location.abovebar, color=color.blue, style=shape.triangledown, size=size.small, text="↓0.764") plotshape(show_alerts and show_fib236_alerts and show_text_labels and cross_above_fib236, title="上穿Fib0.236(带文字)", location=location.belowbar, color=color.orange, style=shape.triangleup, size=size.small, text="↑0.236") plotshape(show_alerts and show_fib236_alerts and show_text_labels and cross_below_fib236, title="下穿Fib0.236(带文字)", location=location.abovebar, color=color.orange, style=shape.triangledown, size=size.small, text="↓0.236") // 不带文字的标记 plotshape(show_alerts and show_fib1_alerts and not show_text_labels and cross_above_fib1, title="上穿Fib1(无文字)", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(show_alerts and show_fib0_alerts and not show_text_labels and cross_below_fib0, title="下穿Fib0(无文字)", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) plotshape(show_alerts and show_fib764_alerts and not show_text_labels and cross_above_fib764, title="上穿Fib0.764(无文字)", location=location.belowbar, color=color.blue, style=shape.triangleup, size=size.small) plotshape(show_alerts and show_fib764_alerts and not show_text_labels and cross_below_fib764, title="下穿Fib0.764(无文字)", location=location.abovebar, color=color.blue, style=shape.triangledown, size=size.small) plotshape(show_alerts and show_fib236_alerts and not show_text_labels and cross_above_fib236, title="上穿Fib0.236(无文字)", location=location.belowbar, color=color.orange, style=shape.triangleup, size=size.small) plotshape(show_alerts and show_fib236_alerts and not show_text_labels and cross_below_fib236, title="下穿Fib0.236(无文字)", location=location.abovebar, color=color.orange, style=shape.triangledown, size=size.small)