PROTECTED SOURCE SCRIPT
Aktualisiert 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, "做空", "做空")
Versionshinweise
//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, "做空", "做空")
Versionshinweise
//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, "做空", "做空")
Versionshinweise
//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, "做空", "做空")
Versionshinweise
//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, "做空", "做空")
Versionshinweise
//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, "做空", "做空")
Versionshinweise
//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, "做空", "做空")
Geschütztes Skript
Dieses Script ist als Closed-Source veröffentlicht. Sie können es kostenlos und ohne Einschränkungen verwenden – erfahren Sie hier mehr.
Haftungsausschluss
Die Informationen und Veröffentlichungen sind nicht als Finanz-, Anlage-, Handels- oder andere Arten von Ratschlägen oder Empfehlungen gedacht, die von TradingView bereitgestellt oder gebilligt werden, und stellen diese nicht dar. Lesen Sie mehr in den Nutzungsbedingungen.
Geschütztes Skript
Dieses Script ist als Closed-Source veröffentlicht. Sie können es kostenlos und ohne Einschränkungen verwenden – erfahren Sie hier mehr.
Haftungsausschluss
Die Informationen und Veröffentlichungen sind nicht als Finanz-, Anlage-, Handels- oder andere Arten von Ratschlägen oder Empfehlungen gedacht, die von TradingView bereitgestellt oder gebilligt werden, und stellen diese nicht dar. Lesen Sie mehr in den Nutzungsbedingungen.