
Эта стратегия является короткой линейной торговой стратегией, основанной на определении тенденции на основе нескольких индикаторов. Она использует восемь индикаторов, включая WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI и WTO, чтобы определить направление тенденции и принять решения о покупке и продаже.
Сначала стратегия рассчитывает и определяет направление тренда по восьми показателям: WOW, BMA, BarColor, SuperTrend, DI, TTS, RSI и WTO.
Индекс WOW используется для определения полярных тенденций в зависимости от позиции объекта в цене. Если позиция объекта близка к верхней траектории, то она является положительной; если близка к нижней траектории, то она является отрицательной.
Индекс BMA используется для определения тенденции на основе однородности SMA. Если цена на закрытие SMA проходит через открытие SMA, то она становится позитивной, а цена на закрытие SMA - позитивной.
BarColor индикатор определяет тенденцию по цвету K-линии, последовательное множество солнечных линий - положительные, и солнечные - отрицательные.
Индекс SuperTrend определяет тенденцию цены в зависимости от среднего диапазона колебаний, цены находятся в позитивном состоянии выше верхнего трека, а в пониженном состоянии ниже нижнего трека.
Диапазон динамики (DI) определяется как отношение величины и величины плюсовой динамики к тренду, а плюсовая динамика больше, чем пустая динамика.
TTS-индикатор оценивает тенденцию на фоне отношений между ценой и позицией средней линии.
Индекс RSI определяет направление тренда в зависимости от того, где находится более сильный индикатор по сравнению со слабым.
Показатели ВТО оценивают направление тенденции на основе большей свободы в показателях волатильности.
Затем стратегия подсчитывает количество положительных отзывов по этим восьми показателям и на основе этого составляет классифицированные позитивные и отрицательные линии поддержки и сопротивления SILA. Чем больше количество линий поддержки и сопротивления, тем сильнее сигнал тренда.
Когда несколько индикаторов положительно настроены, если цена на закрытие находится выше нижней поддержки, это создает сигнал к покупке; когда несколько индикаторов положительно настроены, если цена на закрытие находится ниже нижней поддержки, это создает сигнал к продаже.
Кроме того, стратегия использует K-линию для оценки возможности краткосрочного отклонения и поиска более выгодных входных точек при обратном тренде.
Стратегия не зависит от одного показателя, а использует восемь часто используемых показателей для определения тенденций, чтобы оценивать тенденции в нескольких направлениях, что повышает их точность и надежность.
Эта стратегия основана на bullish-bullish сигналах из нескольких индикаторов, используя систему 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)