PROTECTED SOURCE SCRIPT
Обновлено 1012多空n

//version=5
indicator("三階段多空訊號(極致穩定版)", overlay=true)
maLen = input.int(10, "MA 長度")
ma = ta.sma(close, maLen)
tick = syminfo.mintick
var bool l1 = false
var bool l2 = false
var float l2Open = na
var float l2Close = na
var label lArrow = na
var bool s1 = false
var bool s2 = false
var float s2Open = na
var float s2Close = na
var label sArrow = na
// ===== 做多 =====
if close > ma and not l1
l1 := true
if l1 and close < close[1] and open > ma and close > ma
l2 := true
l2Open := open
l2Close := close
if l2
if not ((open > ma and close > ma) or (not na(l2Close) and open == l2Close))
l1 := false
l2 := false
l2Open := na
l2Close := na
longTrigger = barstate.isconfirmed and l2 and close > l2Open and close > l2Close
if longTrigger
if not na(lArrow)
label.delete(lArrow)
lArrow := label.new(bar_index, low - tick * 5, "", style=label.style_arrowup, color=color.green, textcolor=color.green, size=size.large)
alert("做多", alert.freq_once_per_bar_close)
l1 := false
l2 := false
l2Open := na
l2Close := na
// ===== 做空 =====
if close < ma and not s1
s1 := true
if s1 and close > close[1] and open < ma and close < ma
s2 := true
s2Open := open
s2Close := close
if s2
if not ((open < ma and close < ma) or (not na(s2Close) and open == s2Close))
s1 := false
s2 := false
s2Open := na
s2Close := na
shortTrigger = barstate.isconfirmed and s2 and close < s2Open and close < s2Close
if shortTrigger
if not na(sArrow)
label.delete(sArrow)
sArrow := label.new(bar_index, high + tick * 5, "", style=label.style_arrowdown, color=color.red, textcolor=color.red, size=size.large)
alert("做空", alert.freq_once_per_bar_close)
s1 := false
s2 := false
s2Open := na
s2Close := na
alertcondition(longTrigger, "做多", "做多")
alertcondition(shortTrigger, "做空", "做空")
indicator("三階段多空訊號(極致穩定版)", overlay=true)
maLen = input.int(10, "MA 長度")
ma = ta.sma(close, maLen)
tick = syminfo.mintick
var bool l1 = false
var bool l2 = false
var float l2Open = na
var float l2Close = na
var label lArrow = na
var bool s1 = false
var bool s2 = false
var float s2Open = na
var float s2Close = na
var label sArrow = na
// ===== 做多 =====
if close > ma and not l1
l1 := true
if l1 and close < close[1] and open > ma and close > ma
l2 := true
l2Open := open
l2Close := close
if l2
if not ((open > ma and close > ma) or (not na(l2Close) and open == l2Close))
l1 := false
l2 := false
l2Open := na
l2Close := na
longTrigger = barstate.isconfirmed and l2 and close > l2Open and close > l2Close
if longTrigger
if not na(lArrow)
label.delete(lArrow)
lArrow := label.new(bar_index, low - tick * 5, "", style=label.style_arrowup, color=color.green, textcolor=color.green, size=size.large)
alert("做多", alert.freq_once_per_bar_close)
l1 := false
l2 := false
l2Open := na
l2Close := na
// ===== 做空 =====
if close < ma and not s1
s1 := true
if s1 and close > close[1] and open < ma and close < ma
s2 := true
s2Open := open
s2Close := close
if s2
if not ((open < ma and close < ma) or (not na(s2Close) and open == s2Close))
s1 := false
s2 := false
s2Open := na
s2Close := na
shortTrigger = barstate.isconfirmed and s2 and close < s2Open and close < s2Close
if shortTrigger
if not na(sArrow)
label.delete(sArrow)
sArrow := label.new(bar_index, high + tick * 5, "", style=label.style_arrowdown, color=color.red, textcolor=color.red, size=size.large)
alert("做空", alert.freq_once_per_bar_close)
s1 := false
s2 := false
s2Open := na
s2Close := na
alertcondition(longTrigger, "做多", "做多")
alertcondition(shortTrigger, "做空", "做空")
Информация о релизе
//version=5indicator("三階段多空(僅收盤訊號|保留全部箭頭)", overlay=true)
maLen = input.int(10, "MA 長度")
ma = ta.sma(close, maLen)
tick = syminfo.mintick
// ===== 做多狀態 =====
var bool l1 = false
var bool l2 = false
var float l2Close = na
// ===== 做空狀態 =====
var bool s1 = false
var bool s2 = false
var float s2Close = na
// ================== 做多 ==================
// 條件一:收盤 > MA
if close > ma and not l1
l1 := true
// 條件二:開盤 + 收盤 > MA
if l1 and open > ma and close > ma
l2 := true
l2Close := close
// 條件三:MA 限制 / 例外
if l2
longException = not na(l2Close) and open >= l2Close
if not (open > ma and close > ma) and not longException
l1 := false
l2 := false
l2Close := na
// ✅ 只在「收盤確認」才成立
longTrigger = barstate.isconfirmed and l2 and close >= l2Close
if longTrigger
label.new(bar_index, low - tick * 5, "", style=label.style_arrowup, color=color.green, textcolor=color.green, size=size.large)
alert("做多", alert.freq_once_per_bar_close)
l1 := false
l2 := false
l2Close := na
// ================== 做空 ==================
// 條件一:收盤 < MA
if close < ma and not s1
s1 := true
// 條件二:開盤 + 收盤 < MA
if s1 and open < ma and close < ma
s2 := true
s2Close := close
// 條件三:MA 限制 / 例外
if s2
shortException = not na(s2Close) and open <= s2Close
if not (open < ma and close < ma) and not shortException
s1 := false
s2 := false
s2Close := na
// ✅ 只在「收盤確認」才成立
shortTrigger = barstate.isconfirmed and s2 and close <= s2Close
if shortTrigger
label.new(bar_index, high + tick * 5, "", style=label.style_arrowdown, color=color.red, textcolor=color.red, size=size.large)
alert("做空", alert.freq_once_per_bar_close)
s1 := false
s2 := false
s2Close := na
alertcondition(longTrigger, "做多", "做多")
alertcondition(shortTrigger, "做空", "做空")
Информация о релизе
//version=5indicator("三階段多空(新條件版)", overlay=true)
// === 參數 ===
maLen = input.int(10, "MA 長度")
ma = ta.sma(close, maLen)
tick = syminfo.mintick
// ================= 做多狀態 =================
var bool longStage1 = false
var bool longStage2 = false
var float longRefOpen = na
var float longRefClose = na
// ================= 做空狀態 =================
var bool shortStage1 = false
var bool shortStage2 = false
var float shortRefOpen = na
var float shortRefClose = na
// ================== 做多流程 ==================
// 條件一:收盤 > MA
if close > ma and not longStage1
longStage1 := true
// 條件二(新版):收盤 <= 前一根收盤,且開收都 > MA
if longStage1 and close <= close[1] and open > ma and close > ma
longStage2 := true
longRefOpen := open
longRefClose := close
// 條件三 MA 限制 / 例外
longException = longStage2 and not na(longRefClose) and open >= longRefClose
longCond3Hold = (open > ma and close > ma) or longException
// 違規即重置
if longStage2 and not longCond3Hold
longStage1 := false
longStage2 := false
longRefOpen := na
longRefClose := na
// ✅ 收盤仍滿足條件三才成立
longTrigger = barstate.isconfirmed and longStage2 and longCond3Hold and close > longRefOpen and close > longRefClose
if longTrigger
label.new(bar_index, low - tick * 5, "", style=label.style_arrowup, color=color.green, textcolor=color.green, size=size.large)
alert("做多", alert.freq_once_per_bar_close)
longStage1 := false
longStage2 := false
longRefOpen := na
longRefClose := na
// ================== 做空流程 ==================
// 條件一:收盤 < MA
if close < ma and not shortStage1
shortStage1 := true
// 條件二(新版):收盤 >= 前一根收盤,且開收都 < MA
if shortStage1 and close >= close[1] and open < ma and close < ma
shortStage2 := true
shortRefOpen := open
shortRefClose := close
// 條件三 MA 限制 / 例外
shortException = shortStage2 and not na(shortRefClose) and open <= shortRefClose
shortCond3Hold = (open < ma and close < ma) or shortException
// 違規即重置
if shortStage2 and not shortCond3Hold
shortStage1 := false
shortStage2 := false
shortRefOpen := na
shortRefClose := na
// ✅ 收盤仍滿足條件三才成立
shortTrigger = barstate.isconfirmed and shortStage2 and shortCond3Hold and close < shortRefOpen and close < shortRefClose
if shortTrigger
label.new(bar_index, high + tick * 5, "", style=label.style_arrowdown, color=color.red, textcolor=color.red, size=size.large)
alert("做空", alert.freq_once_per_bar_close)
shortStage1 := false
shortStage2 := false
shortRefOpen := na
shortRefClose := na
// ================= 快訊條件 =================
alertcondition(longTrigger, "做多", "做多")
alertcondition(shortTrigger, "做空", "做空")
Информация о релизе
//version=5indicator("三階段多空(箭頭在K棒外)", overlay=true)
maLen = input.int(10, "MA 長度")
ma = ta.sma(close, maLen)
offset = syminfo.mintick * 10
// ================= 做多 =================
var bool longStage1 = false
var bool longStage2 = false
var float longRefOpen = na
var float longRefClose = na
// ================= 做空 =================
var bool shortStage1 = false
var bool shortStage2 = false
var float shortRefOpen = na
var float shortRefClose = na
// ====== 做多流程 ======
if close > ma and not longStage1
longStage1 := true
if longStage1 and close <= close[1] and open > ma and close > ma
longStage2 := true
longRefOpen := open
longRefClose := close
longException = longStage2 and not na(longRefClose) and open >= longRefClose
longCond3Hold = (open > ma and close > ma) or longException
if longStage2 and not longCond3Hold
longStage1 := false
longStage2 := false
longRefOpen := na
longRefClose := na
longTrigger = barstate.isconfirmed and longStage2 and longCond3Hold and close > longRefOpen and close > longRefClose
if longTrigger
label.new(bar_index, low - offset, "", style=label.style_arrowup, color=color.green, textcolor=color.green, size=size.large)
alert("做多", alert.freq_once_per_bar_close)
longStage1 := false
longStage2 := false
longRefOpen := na
longRefClose := na
// ====== 做空流程 ======
if close < ma and not shortStage1
shortStage1 := true
if shortStage1 and close >= close[1] and open < ma and close < ma
shortStage2 := true
shortRefOpen := open
shortRefClose := close
shortException = shortStage2 and not na(shortRefClose) and open <= shortRefClose
shortCond3Hold = (open < ma and close < ma) or shortException
if shortStage2 and not shortCond3Hold
shortStage1 := false
shortStage2 := false
shortRefOpen := na
shortRefClose := na
shortTrigger = barstate.isconfirmed and shortStage2 and shortCond3Hold and close < shortRefOpen and close < shortRefClose
if shortTrigger
label.new(bar_index, high + offset, "", style=label.style_arrowdown, color=color.red, textcolor=color.red, size=size.large)
alert("做空", alert.freq_once_per_bar_close)
shortStage1 := false
shortStage2 := false
shortRefOpen := na
shortRefClose := na
alertcondition(longTrigger, "做多", "做多")
alertcondition(shortTrigger, "做空", "做空")
Информация о релизе
//version=5
indicator("三階段多空(箭頭在K棒外)", overlay=true)
maLen = input.int(10, "MA 長度")
ma = ta.sma(close, maLen)
offset = syminfo.mintick * 66
// ================= 做多 =================
var bool longStage1 = false
var bool longStage2 = false
var float longRefOpen = na
var float longRefClose = na
// ================= 做空 =================
var bool shortStage1 = false
var bool shortStage2 = false
var float shortRefOpen = na
var float shortRefClose = na
// ====== 做多流程 ======
if close > ma and not longStage1
longStage1 := true
if longStage1 and close <= close[1] and open > ma and close > ma
longStage2 := true
longRefOpen := open
longRefClose := close
longException = longStage2 and not na(longRefClose) and open >= longRefClose
longCond3Hold = (open > ma and close > ma) or longException
if longStage2 and not longCond3Hold
longStage1 := false
longStage2 := false
longRefOpen := na
longRefClose := na
longTrigger = barstate.isconfirmed and longStage2 and longCond3Hold and close > longRefOpen and close > longRefClose
if longTrigger
label.new(bar_index, low - offset, "", style=label.style_arrowup, color=color.green, textcolor=color.green, size=size.large)
alert("做多", alert.freq_once_per_bar_close)
longStage1 := false
longStage2 := false
longRefOpen := na
longRefClose := na
// ====== 做空流程 ======
if close < ma and not shortStage1
shortStage1 := true
if shortStage1 and close >= close[1] and open < ma and close < ma
shortStage2 := true
shortRefOpen := open
shortRefClose := close
shortException = shortStage2 and not na(shortRefClose) and open <= shortRefClose
shortCond3Hold = (open < ma and close < ma) or shortException
if shortStage2 and not shortCond3Hold
shortStage1 := false
shortStage2 := false
shortRefOpen := na
shortRefClose := na
shortTrigger = barstate.isconfirmed and shortStage2 and shortCond3Hold and close < shortRefOpen and close < shortRefClose
if shortTrigger
label.new(bar_index, high + offset, "", style=label.style_arrowdown, color=color.red, textcolor=color.red, size=size.large)
alert("做空", alert.freq_once_per_bar_close)
shortStage1 := false
shortStage2 := false
shortRefOpen := na
shortRefClose := na
alertcondition(longTrigger, "做多", "做多")
alertcondition(shortTrigger, "做空", "做空")
Информация о релизе
//version=5indicator("1012多空n", overlay=true)
maLen = input.int(10, "MA 長度")
ma = ta.sma(close, maLen)
offset = syminfo.mintick * 66
// ================= 做多 =================
var bool longStage1 = false
var bool longStage2 = false
var float longRefOpen = na
var float longRefClose = na
// ================= 做空 =================
var bool shortStage1 = false
var bool shortStage2 = false
var float shortRefOpen = na
var float shortRefClose = na
// ====== 做多流程 ======
if close > ma and not longStage1
longStage1 := true
if longStage1 and close <= close[1] and open > ma and close > ma
longStage2 := true
longRefOpen := open
longRefClose := close
longException = longStage2 and not na(longRefClose) and open >= longRefClose
longCond3Hold = (open > ma and close > ma) or longException
if longStage2 and not longCond3Hold
longStage1 := false
longStage2 := false
longRefOpen := na
longRefClose := na
longTrigger = barstate.isconfirmed and longStage2 and longCond3Hold and close > longRefOpen and close > longRefClose
if longTrigger
label.new(bar_index, low - offset, "", style=label.style_arrowup, color=color.green, textcolor=color.green, size=size.large)
alert("做多", alert.freq_once_per_bar_close)
longStage1 := false
longStage2 := false
longRefOpen := na
longRefClose := na
// ====== 做空流程 ======
if close < ma and not shortStage1
shortStage1 := true
if shortStage1 and close >= close[1] and open < ma and close < ma
shortStage2 := true
shortRefOpen := open
shortRefClose := close
shortException = shortStage2 and not na(shortRefClose) and open <= shortRefClose
shortCond3Hold = (open < ma and close < ma) or shortException
if shortStage2 and not shortCond3Hold
shortStage1 := false
shortStage2 := false
shortRefOpen := na
shortRefClose := na
shortTrigger = barstate.isconfirmed and shortStage2 and shortCond3Hold and close < shortRefOpen and close < shortRefClose
if shortTrigger
label.new(bar_index, high + offset, "", style=label.style_arrowdown, color=color.red, textcolor=color.red, size=size.large)
alert("做空", alert.freq_once_per_bar_close)
shortStage1 := false
shortStage2 := false
shortRefOpen := na
shortRefClose := na
alertcondition(longTrigger, "做多", "做多")
alertcondition(shortTrigger, "做空", "做空")
Информация о релизе
//version=5indicator("三階段多空(不同週期箭頭距離)", overlay=true)
// === 參數設定 ===
maLen = input.int(10, "MA 長度")
ma = ta.sma(close, maLen)
// 依週期設定箭頭距離比例(相對 K 棒高度)
arrowDistance = switch timeframe.period
"1" => 0.25
"5" => 0.20
"15" => 0.15
"60" => 0.12
"D" => 0.08
=> 0.10 // 其他週期預設
// ================= 做多 =================
var bool longStage1 = false
var bool longStage2 = false
var float longRefOpen = na
var float longRefClose = na
// ================= 做空 =================
var bool shortStage1 = false
var bool shortStage2 = false
var float shortRefOpen = na
var float shortRefClose = na
// ====== 做多流程 ======
if close > ma and not longStage1
longStage1 := true
if longStage1 and close <= close[1] and open > ma and close > ma
longStage2 := true
longRefOpen := open
longRefClose := close
longException = longStage2 and not na(longRefClose) and open >= longRefClose
longCond3Hold = (open > ma and close > ma) or longException
if longStage2 and not longCond3Hold
longStage1 := false
longStage2 := false
longRefOpen := na
longRefClose := na
longTrigger = barstate.isconfirmed and longStage2 and longCond3Hold and close > longRefOpen and close > longRefClose
if longTrigger
offset = (high - low) * arrowDistance
label.new(bar_index, low - offset, "", style=label.style_arrowup, color=color.green, textcolor=color.green, size=size.large)
alert("做多", alert.freq_once_per_bar_close)
longStage1 := false
longStage2 := false
longRefOpen := na
longRefClose := na
// ====== 做空流程 ======
if close < ma and not shortStage1
shortStage1 := true
if shortStage1 and close >= close[1] and open < ma and close < ma
shortStage2 := true
shortRefOpen := open
shortRefClose := close
shortException = shortStage2 and not na(shortRefClose) and open <= shortRefClose
shortCond3Hold = (open < ma and close < ma) or shortException
if shortStage2 and not shortCond3Hold
shortStage1 := false
shortStage2 := false
shortRefOpen := na
shortRefClose := na
shortTrigger = barstate.isconfirmed and shortStage2 and shortCond3Hold and close < shortRefOpen and close < shortRefClose
if shortTrigger
offset = (high - low) * arrowDistance
label.new(bar_index, high + offset, "", style=label.style_arrowdown, color=color.red, textcolor=color.red, size=size.large)
alert("做空", alert.freq_once_per_bar_close)
shortStage1 := false
shortStage2 := false
shortRefOpen := na
shortRefClose := na
alertcondition(longTrigger, "做多", "做多")
alertcondition(shortTrigger, "做空", "做空")
Скрипт с защищённым кодом
Этот скрипт опубликован с закрытым исходным кодом. Однако вы можете использовать его свободно и без каких-либо ограничений — читайте подробнее здесь.
Отказ от ответственности
Информация и публикации не предназначены для предоставления и не являются финансовыми, инвестиционными, торговыми или другими видами советов или рекомендаций, предоставленных или одобренных TradingView. Подробнее читайте в Условиях использования.
Скрипт с защищённым кодом
Этот скрипт опубликован с закрытым исходным кодом. Однако вы можете использовать его свободно и без каких-либо ограничений — читайте подробнее здесь.
Отказ от ответственности
Информация и публикации не предназначены для предоставления и не являются финансовыми, инвестиционными, торговыми или другими видами советов или рекомендаций, предоставленных или одобренных TradingView. Подробнее читайте в Условиях использования.