
이 전략은 여러 지표에 기반하여 트렌드를 판단하는 단선 거래 전략이다. 이 전략은 WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI 및 WTO 등 8개의 지표를 통합적으로 사용하여 트렌드 방향을 판단하고, 이를 바탕으로 구매 및 판매 결정을 내린다.
이 전략은 WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI, WTO의 8개 지표의 추세 방향을 계산하고 판단합니다.
WOW 지표는 가격에서 실물 위치에 따라 상공 트렌드를 판단한다. 실물 위치가 상궤에 가까워지면 부진; 하궤에 가까워지면 하락이다.
BMA 지표는 SMA 다공간 관계에 따라 트렌드를 판단합니다. 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상위 상하 하위 상위 상위 상위 상위 상위 상위
BarColor 지표는 K선 색깔에 따라 트렌드를 판단합니다. 연속적으로 여러 선이 호불호가 되고, 선이 하락이 됩니다.
슈퍼트렌드 지표는 평균 변동 범위에 따라 가격 동향을 판단합니다. 가격은 상반기 상반기 상반기, 하반기 하반기 하반기입니다.
DI 지표는 다중 기동량이 공중 기동량보다 크면 부진, 반대로 부진이다.
TTS 지표는 가격과 평균선의 위치 관계에 따라 다공성 경향을 판단한다.
RSI 지표는 상대적으로 강한 지표의 위치에 따라 트렌드 방향을 판단한다.
WTO 지표는 변동성 지표의 빈도에서 트렌드 방향을 판단한다.
이 전략은 8개의 지표에 대한 호불호의 수를 계산하고, 그 수에 따라 SILA 호불호의 지지선과 호불호의 저항선을 도출합니다. 지지선과 저항선의 수가 많을수록, 트렌드 신호가 강하다는 것을 의미합니다.
여러 지표가 부진할 때, 종결 가격이 최저 수준의 지지선 위에 있다면, 구매 신호가 발생한다. 여러 지표가 부진할 때, 종결 가격이 최저 수준의 저항선 아래에 있다면, 판매 신호가 발생한다.
또한, 이 전략은 K선 형태를 사용하여 단기간의 회귀의 기회를 판단하고, 트렌드가 역전될 때 더 유리한 입구를 찾습니다.
이 전략은 단일 지표에 의존하지 않고, 8개의 일반적인 트렌드 판단 지표를 종합적으로 사용하여 트렌드를 다방면으로 판단하여 판단의 정확성과 신뢰성을 향상시킬 수 있다.
이 전략은 여러 지표의 보이스&버스 신호를 기반으로 SILA 시스템을 사용하여 여러 계층의 지지선과 저항선을 그리는 것입니다. 선의 수가 많을수록 트렌드 신호의 강도를 나타냅니다. 이것은 거래자가 신호의 강점을 더 알아내는 데 도움이 될 수 있습니다.
이 전략은 트렌드 지표의 방향을 판단하는 것뿐만 아니라, K 선 모양과 결합하여 단기 회귀 기회를 찾고, 트렌드 역점으로 진입하면 더 우수한 진입 지점을 확보 할 수 있습니다.
이 전략은 여러 지표를 사용하며, 이 지표들 사이에 어떤 경우에 판단이 분분할 수 있는 상황이 발생하여, 거래자가 스스로 균형을 맞추어야 하며, 의사결정이 더 어려워진다.
이 전략의 많은 지표들은 기본 파라미터를 사용한다. 실제 적용 시에는 최적의 효과를 얻기 위해 파라미터를 최적화할 필요가 있다.
주요 블랙 스윙 사건의 경우, 체계적 위험은 정상적인 기술 지표의 실패로 이어질 수 있으며, 시장 체계적 위험을 평가하는 데 주의가 필요합니다.
추세에 따라 거래 철수가 확장 단계에 비교적 클 수 있으며, 철수를 제한하기 위해 단일 거래 규모를 제어하는 데 주의가 필요합니다.
보다 체계적인 방법을 통해 주기 길이나 수치 크기와 같은 각 지표의 매개 변수를 최적화하여 최적의 매개 변수 조합을 찾을 수 있다.
이동 스톱 또는 퍼센티지 스톱을 추가하여 철수를 제어하는 것을 고려할 수 있습니다.
MAVP, OBV 등과 같은 양력 지표와 트렌드 지표의 조합을 도입하여 전술적 의사 결정의 정확성을 향상시킬 수 있다.
다른 시장 단계의 지분 비율을 연구하여 추세가 더 밝을 때 지위를 확대할 수 있다.
이 전략Overall은 다중 지표 추적 트렌드를 위한 짧은 라인 거래 전략이다. 이 전략은 트렌드 방향을 판단하기 위해 여러 지표를 종합적으로 사용하며, SILA 시스템을 사용하여 신호 강도를 인식하고, K 라인 형태에 대한 최적화를 보조한다. 이 전략은 판단 정확도를 향상시킬 수 있지만, 다른 지표의 오차 위험을 주의해야 한다. 다음 단계는 파라미터 최적화, 스톱 로즈 최적화, 양력 결합 등의 방법으로 이 전략을 더 개선할 수 있다.
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// (c) Noro
//2017
//@version=2
strategy(title="Noro's SILA v1.6L Strategy", shorttitle="SILA v1.6L str", overlay=true)
//settings
sensup = input(5, title="Uptrend-sensivity", minval = -8, maxval = 8)
sensdn = input(5, title="Downtrend-sensivity", minval = -8, maxval = 8)
usewow = input(true, title="Use trend-indicator WOW?")
usebma = input(true, title="Use trend-indicator BestMA?")
usebc = input(true, title="Use trend-indicator BarColor?")
usest = input(true, title="Use trend-indicator SuperTrend?")
usedi = input(true, title="Use trend-indicator DI?")
usetts = input(true, title="Use trend-indicator TTS?")
usersi = input(true, title="Use trend-indicator RSI?")
usewto = input(true, title="Use trend-indicator WTO?")
dist = input(100, title="Distance SILA-lines", minval = 0, maxval = 100)
usetl = input(true, title="Need SILA-lines?")
usebgup = input(true, title="Need uptrend-background?")
usebgdn = input(true, title="Need downtrend-background?")
usealw = input(true, title="Need background always?")
usearr = input(true, title="Need new-trend-arrows?")
useloco = input(true, title="Need locomotive-arrows?")
usemon = input(true, title="Need money?") //joke
// WOW 1.0 method
lasthigh = highest(close, 30)
lastlow = lowest(close, 30)
center = (lasthigh +lastlow) / 2
body = (open + close) / 2
trend1 = body > center ? 1 : body < center ? -1 : trend1[1]
trend2 = center > center[1] ? 1 : center < center[1] ? -1 : trend2[1]
WOWtrend = usewow == true ? trend1 == 1 and trend2 == 1 ? 1 : trend1 == -1 and trend2 == -1 ? -1 : WOWtrend[1] : 0
// BestMA 1.0 method
SMAOpen = sma(open, 30)
SMAClose = sma(close, 30)
BMAtrend = usebma == true ? SMAClose > SMAOpen ? 1 : SMAClose < SMAOpen ? -1 : BMAtrend[1] : 0
// BarColor 1.0 method
color = close > open ? 1 : 0
score = color + color[1] + color[2] + color[3] + color[4] + color[5] + color[6] + color[7]
BARtrend = usebc == true ? score > 5 ? 1 : score < 3 ? -1 : BARtrend[1] : 0
// SuperTrend mehtod
Up = hl2 - (7 * atr(3))
Dn = hl2 + (7 * atr(3))
TrendUp = close[1] > TrendUp[1] ? max(Up, TrendUp[1]) : Up
TrendDown = close[1] < TrendDown[1] ? min(Dn, TrendDown[1]) : Dn
SUPtrend = usest == true ? close > TrendDown[1] ? 1: close < TrendUp[1]? -1 : SUPtrend[1] : 0
//DI method
th = 20
TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/14) + TrueRange
SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/14) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/14) + DirectionalMovementMinus
DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DItrend = usedi == true ? DIPlus > DIMinus ? 1 : -1 : 0
//TTS method (Trend Trader Strategy)
//Start of HPotter's code
//Andrew Abraham' idea
avgTR = wma(atr(1), 21)
highestC = highest(21)
lowestC = lowest(21)
hiLimit = highestC[1]-(avgTR[1] * 3)
loLimit = lowestC[1]+(avgTR[1] * 3)
ret = iff(close > hiLimit and close > loLimit, hiLimit, iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
pos = iff(close > ret, 1, iff(close < ret, -1, nz(pos[1], 0)))
//End of HPotter's code
TTStrend = usetts == true ? pos == 1 ? 1 : pos == -1 ? -1 : TTStrend[1] : 0
//RSI method
RSIMain = (rsi(close, 13) - 50) * 1.5
rt = iff(RSIMain > -10, 1, iff(RSIMain < 10, -1, nz(pos[1], 0)))
RSItrend = usersi == true ? rt : 0
//WTO ("WaveTrend Oscilator") method by LazyBear
//Start of LazyBear's code
esa = ema(hlc3, 10)
d = ema(abs(hlc3 - esa), 10)
ci = (hlc3 - esa) / (0.015 * d)
tci = ema(ci, 21)
//End of LazyBear's code
WTOtrend = usewto == true ? tci > 0 ? 1 : tci < 0 ? -1 : 0 : 0
//plots
trends = usemon == true ? WOWtrend + BMAtrend + BARtrend + SUPtrend + DItrend + TTStrend + RSItrend + WTOtrend: -1 * (WOWtrend + BMAtrend + BARtrend + SUPtrend + DItrend + TTStrend + RSItrend + WTOtrend)
pricehi = sma(high, 10)
pricelo = sma(low, 10)
per = usetl == 1 ? dist / 10000 : 0
color1 = usetl == true ? trends > 0 ? blue : na : na
plot(pricelo * (1 - per), color=color1, linewidth=1, title="SILA-line")
color2 = usetl == true ? trends > 1 ? blue : na : na
plot(pricelo * (1 - 2 * per), color=color2, linewidth=1, title="SILA-line")
color3 = usetl == true ? trends > 2 ? blue : na : na
plot(pricelo * (1 - 3 * per), color=color3, linewidth=1, title="SILA-line")
color4 = usetl == true ? trends > 3 ? blue : na : na
plot(pricelo * (1 - 4 * per), color=color4, linewidth=1, title="SILA-line")
color5 = usetl == true ? trends > 4 ? blue : na : na
plot(pricelo * (1 - 5 * per), color=color5, linewidth=1, title="SILA-line")
color6 = usetl == true ? trends > 5 ? blue : na : na
plot(pricelo * (1 - 6 * per), color=color6, linewidth=1, title="SILA-line")
color7 = usetl == true ? trends > 6 ? blue : na : na
plot(pricelo * (1 - 7 * per), color=color7, linewidth=1, title="SILA-line")
color8 = usetl == true ? trends > 7 ? blue : na : na
plot(pricelo * (1 - 8 * per), color=color8, linewidth=1, title="SILA-line")
color10 = usetl == true ? trends < 0 ? black : na : na
plot(pricehi * (1 + per), color=color10, linewidth=1, title="SILA-line")
color11 = usetl == true ? trends < -1 ? black : na : na
plot(pricehi * (1 + 2 * per), color=color11, linewidth=1, title="SILA-line")
color12 = usetl == true ? trends < -2 ? black : na : na
plot(pricehi * (1 + 3 * per), color=color12, linewidth=1, title="SILA-line")
color13 = usetl == true ? trends < -3 ? black : na : na
plot(pricehi * (1 + 4 * per), color=color13, linewidth=1, title="SILA-line")
color14 = usetl == true ? trends < -4 ? black : na : na
plot(pricehi * (1 + 5 * per), color=color14, linewidth=1, title="SILA-line")
color15 = usetl == true ? trends < -5 ? black : na : na
plot(pricehi * (1 + 6 * per), color=color15, linewidth=1, title="SILA-line")
color16 = usetl == true ? trends < -6 ? black : na : na
plot(pricehi * (1 + 7 * per), color=color16, linewidth=1, title="SILA-line")
color17 = usetl == true ? trends < -7 ? black : na : na
plot(pricehi * (1 + 8 * per), color=color17, linewidth=1, title="SILA-line")
//background
col = usebgup == true and trends >= sensup ? 1 : usebgdn == true and trends <= (-1 * sensdn) ? -1 : usealw == true ? col[1] : 0
bgcolor = col == 1 ? lime : col == -1 ? red : na
//bgcolor(bgcolor, transp=70)
//arrows
posi = trends >= sensup ? 1 : trends <= (-1 * sensdn) ? -1 : posi[1]
arr = usearr == true ? posi == 1 and posi[1] < 1 ? 1 : posi == -1 and posi[1] > -1 ? -1 : na : na
//plotarrow(arr == 1 ? 1 : na, title="UpArrow", colorup=blue, maxheight=60, minheight=50, transp=0)
//plotarrow(arr == -1 ? -1 : na, title="DnArrow", colordown=blue, maxheight=60, minheight=50, transp=0)
//locomotive
bar = close > open ? 1 : close < open ? -1 : 0
locotop = bar == -1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0
locobot = bar == 1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
entry = useloco == false ? 1 : posi == posi[1] ? (locotop == 1 and posi == -1) or (locobot == 1 and posi == 1) ? 1 : entry[1] : 0
//plotarrow(locobot == 1 and entry[1] == 0 and posi == 1 ? 1 : na, title="UpLocomotive", colorup=yellow, maxheight=60, minheight=50, transp=0)
//plotarrow(locotop == 1 and entry[1] == 0 and posi == -1 ? -1 : na, title="DnLocomotive", colordown=yellow, maxheight=60, minheight=50, transp=0)
longCondition = arr == 1
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = arr == -1
if (shortCondition)
strategy.entry("Short", strategy.short)