답변완료
문의드립니다
트레이딩뷰 지표인데 변환 부탁드립니다.
1.지표
2.종목검색식
// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo
//@version=5
indicator('MA Sabres [LuxAlgo]', shorttitle='LuxAlgo - MA Sabres', max_polylines_count=100, overlay=true)
//------------------------------------------------------------------------------
//Settings
//-----------------------------------------------------------------------------{
type = input.string( "TEMA" , 'MA Type' , group= 'MA'
, options = ["SMA", "EMA", "SMMA (RMA)", "HullMA", "WMA", "VWMA", "DEMA", "TEMA", "NONE"])
len = input.int ( 50 , 'Length' , group= 'MA' )
count = input.int ( 20 , 'Previous Trend Duration' , group= 'MA'
, tooltip = 'Reversal after x bars in the same direction' )
colUp = input.color (#2962ff, 'Bullish' , group='Colours')
colDn = input.color (#f23645, 'Bearish' , group='Colours')
colMa = input.color (#787b86, 'MA' , group='Colours')
//-----------------------------------------------------------------------------}
//Method MA
//-----------------------------------------------------------------------------{
method ma(string type, int length) =>
//
ema1 = ta.ema(close, length)
ema2 = ta.ema(ema1 , length)
ema3 = ta.ema(ema2 , length)
//
switch type
"SMA" => ta.sma (close, length)
"EMA" => ema1
"SMMA (RMA)" => ta.rma (close, length)
"HullMA" => ta.hma (close, length)
"WMA" => ta.wma (close, length)
"VWMA" => ta.vwma(close, length)
"DEMA" => 2 * ema1 - ema2
"TEMA" => (3 * ema1) - (3 * ema2) + ema3
=> na
//-----------------------------------------------------------------------------}
//Calculations
//-----------------------------------------------------------------------------{
ma = type.ma(len)
fl = ta.falling(ma , count)
rs = ta.rising (ma , count)
up = fl[1] and ma > ma[1]
dn = rs[1] and ma < ma[1]
atr = ta.atr(14)
n = bar_index
//-----------------------------------------------------------------------------}
//Exㄷecution
//-----------------------------------------------------------------------------{
if up
p = array.new<chart.point>()
p.push(chart.point.from_index(n - 1 , low [1] - atr / 15 ))
p.push(chart.point.from_index(n + (len / 2 -1) , low [1] + atr / 2.5))
p.push(chart.point.from_index(n + len , low [1] + atr * 2 ))
p.push(chart.point.from_index(n + (len / 2 -1) , low [1] + atr / 2.5))
p.push(chart.point.from_index(n - 1 , low [1] + atr / 15 ))
polyline.new(p
, curved = true
, closed = false
, line_color = colUp
, fill_color = color.new(colUp, 50))
if dn
p = array.new<chart.point>()
p.push(chart.point.from_index(n - 1 , high[1] + atr / 15 ))
p.push(chart.point.from_index(n + (len / 2 -1) , high[1] - atr / 2.5))
p.push(chart.point.from_index(n + len , high[1] - atr * 2 ))
p.push(chart.point.from_index(n + (len / 2 -1) , high[1] - atr / 2.5))
p.push(chart.point.from_index(n - 1 , high[1] - atr / 15 ))
polyline.new(p
, curved = true
, closed = false
, line_color = colDn
, fill_color = color.new(colDn, 50))
//-----------------------------------------------------------------------------}
//Plots
//-----------------------------------------------------------------------------{
plot (ma , 'MA' , color= colMa )
plotshape(up ? low [1] : na, '', color= colUp , location=location.absolute, style=shape.circle, size=size.tiny , offset=-1)
plotshape(up ? low [1] : na, '', color=color.new(colUp, 50), location=location.absolute, style=shape.circle, size=size.small , offset=-1)
plotshape(up ? low [1] : na, '', color=color.new(colUp, 65), location=location.absolute, style=shape.circle, size=size.normal, offset=-1)
plotshape(dn ? high[1] : na, '', color= colDn , location=location.absolute, style=shape.circle, size=size.tiny , offset=-1)
plotshape(dn ? high[1] : na, '', color=color.new(colDn, 50), location=location.absolute, style=shape.circle, size=size.small , offset=-1)
plotshape(dn ? high[1] : na, '', color=color.new(colDn, 65), location=location.absolute, style=shape.circle, size=size.normal, offset=-1)
//-----------------------------------------------------------------------------}
2023-11-04
1166
글번호 173722
지표