
이 전략은 평행선 지표와 초트렌드 지표를 결합하여 트렌드에 대한 후속 작업을 수행합니다. 추세가 상승하면 더 많이하고 추세가 하향하면 공허합니다.
가중 이동 평균 MA 를 계산한다. 거래량을 무게로 사용하여 일정 주기 동안의 가중 평균 가격을 계산한다.
MA를 기반으로 Hull 이동 평균을 계산한다. Hull 이동 평균은 가격 변화에 더 민감하다.
슈퍼 트렌드 지표를 계산한다. 슈퍼 트렌드 지표는 ATR과 결합하여 가격 트렌드의 변화를 발견한다.
종전 가격이 상반도를 넘으면 더 많이 하고, 종전 가격이 하반도를 넘으면 더 많이 하지 않는다.
오픈 가격, 오픈 가격, 최고 가격, 최저 가격과 같은 보조 지표를 그리며 가격의 변화를 더 직관적으로 관찰하십시오.
지표의 교차에 따라 구매 및 판매 결정을 내립니다.
이 전략은 평균선 지표와 초트렌드 지표를 결합하여 트렌드 변화를 더 정확하게 포착할 수 있다.
헐 평균선은 가격 변화에 더 민감하여 트렌드 전환을 적시에 발견하는데 도움이 된다.
슈퍼 트렌드 지표는 시장의 변동에 적응하기 위해 동적으로 위아래 경로를 조정할 수 있습니다.
보조 지표는 가격 변화를 직관적으로 표시하고, 지표 신호와 결합하여 판단한다.
전략 변수 최적화 공간은 넓고, 평균선주기, 초전향배수 등의 변수를 조정할 수 있다.
이 경우, 부적절한 거래로 이어질 수 있는 잘못된 신호가 발생할 수 있습니다.
여러 지표들을 동시에 모니터링해야 하는데, 전략은 상당히 복잡합니다.
각 품종의 특성에 맞게 적절한 조정이 필요합니다.
단독 손실이 너무 커지는 것을 방지하기 위해 엄격한 스톱 손실 통제가 필요합니다.
거래가 많을 수 있으므로 수수료의 영향을 조절해야 합니다.
다른 평균선의 변수를 테스트할 수 있고, 시장에 더 민감한 평균선의 지표를 선택할 수 있다.
다양한 슈퍼 트렌드 곱셈을 테스트할 수 있으며, 트렌드 변화를 적시에 포착할 수 있는 값을 선택한다.
변동률 지표와 결합하여 변동이 커지면 포지션을 줄일 수 있다.
뚫고 넘어가는 조건도 추가할 수 있으며, 셈에서 거짓 신호를 피한다.
시장 특성에 맞게 손실을 막기 위한 전략을 최적화할 수 있다.
이 전략은 평행선 지표와 초트렌드 지표를 결합하여 트렌드 방향을 판단하여 트렌드를 따르는 작업을 수행한다. 장점은 지표들 사이에 상호 검증이 가능하며, 더 정확하게 트렌드를 판단할 수 있다는 것이다. 그러나 가짜 신호의 간섭을 경계해야 한다. 매개 변수 최적화 및 위험 제어를 통해 전략 효과를 더욱 향상시킬 수 있다. 이 전략은 트렌드성이 강한 품종에 대한 트렌드 추적 작업을 수행하는 데 적합하다.
/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © rajukpatel
//@version=5
strategy('My RK Strategy with Alert', shorttitle='My RK Strategy with Alert', overlay=true )
src5 = input(close)
tf = input(1440)
len5 = timeframe.isintraday and timeframe.multiplier >= 1 ? tf / timeframe.multiplier * 7 : timeframe.isintraday and timeframe.multiplier < 60 ? 60 / timeframe.multiplier * 24 * 7 : 7
ma = ta.ema(src5 * volume, len5) / ta.ema(volume, len5)
//script taken from https://www.tradingview.com/script/kChCRRZI-Hull-Moving-Average/
src1 = ma
p(src1, len5) =>
n = 0.0
s = 0.0
for i = 0 to len5 - 1 by 1
w = (len5 - i) * len5
n += w
s += src5[i] * w
s
s / n
hm = 2.0 * p(src1, math.floor(len5 / 3)) - p(src1, len5)
vhma = p(hm, math.floor(math.sqrt(len5)))
lineColor = vhma > vhma[1] ? color.lime : color.red
plot(vhma, title='VHMA', color=lineColor, linewidth=3)
hColor = true
vis = true
hu = hColor ? vhma > vhma[2] ? #00ff00 : #ff0000 : #ff9800
vl = vhma[0]
ll = vhma[1]
m1 = plot(vl, color=hu, linewidth=1, transp=60)
m2 = plot(vis ? ll : na, color=hu, linewidth=2, transp=80)
fill(m1, m2, color=hu, transp=70)
//
b = timeframe.isintraday and timeframe.multiplier >= 1 ? 60 / timeframe.multiplier * 7 : timeframe.isintraday and timeframe.multiplier < 60 ? 60 / timeframe.multiplier * 24 * 7 : 7
//
res5 = input.timeframe('D')
o = request.security(syminfo.tickerid, res5, open, barmerge.gaps_off, barmerge.lookahead_on)
c = request.security(syminfo.tickerid, res5, close, barmerge.gaps_off, barmerge.lookahead_on)
hz = request.security(syminfo.tickerid, res5, high, barmerge.gaps_off, barmerge.lookahead_on)
l = request.security(syminfo.tickerid, res5, low, barmerge.gaps_off, barmerge.lookahead_on)
col = c >= o ? color.lime : color.red
ppo = plot(b ? o >= c ? hz : l : o, color=col, title='Open', style=plot.style_stepline, transp=100)
ppc = plot(b ? o <= c ? hz : l : c, color=col, title='Close', style=plot.style_stepline, transp=100)
plot(b and hz > c ? hz : na, color=col, title='High', style=plot.style_circles, linewidth=2, transp=60)
plot(b and l < c ? l : na, color=col, title='Low', style=plot.style_circles, linewidth=2, transp=60)
fill(ppo, ppc, col, transp=90)
//
// INPUTS //
st_mult = input.float(1, title='SuperTrend Multiplier', minval=0, maxval=100, step=0.01)
st_period = input.int(50, title='SuperTrend Period', minval=1)
// CALCULATIONS //
up_lev = l - st_mult * ta.atr(st_period)
dn_lev = hz + st_mult * ta.atr(st_period)
up_trend = 0.0
up_trend := c[1] > up_trend[1] ? math.max(up_lev, up_trend[1]) : up_lev
down_trend = 0.0
down_trend := c[1] < down_trend[1] ? math.min(dn_lev, down_trend[1]) : dn_lev
// Calculate trend var
trend = 0
trend := c > down_trend[1] ? 1 : c < up_trend[1] ? -1 : nz(trend[1], 1)
// Calculate SuperTrend Line
st_line = trend == 1 ? up_trend : down_trend
// Plotting
//plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_cross, linewidth = 2, title = "SuperTrend")
buy = ta.crossover(c, st_line)
sell = ta.crossunder(c, st_line)
signal = input(false)
/////////////// Plotting ///////////////
plotshape(signal and buy, style=shape.triangleup, size=size.normal, location=location.belowbar, color=color.new(color.lime, 0))
plotshape(signal and sell, style=shape.triangledown, size=size.normal, location=location.abovebar, color=color.new(color.red, 0))
if buy
strategy.entry('My Long Entry Id', strategy.long)
if sell
strategy.entry('My Short Entry Id', strategy.short)