227 lines
26 KiB
Plaintext
227 lines
26 KiB
Plaintext
//@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)
|