이 전략은 50주기 평행 경로와 ADX 동향 지수와 EFI 에너지 지표 조합을 사용하여 트렌드 거래를 한다. EFI 에너지 지표가 트렌드를 표시한 후 50주기 평행 경로 영역에서 리코딩을 통해 진입한다. 이 전략은 1분 시간 주기에도 적용된다.
50주기의 평균선 통로를 계산하고, 통로 상단에는 높은 지점의 평균선, 하단에는 낮은 지점의 평균선이다.
ADX 동향 지수는 트렌드 강도를 판단하기 위해 계산되며, 강한 트렌드가 있을 때만 ((ADX>20) 거래가 고려된다.
긴 주기 (~120주기) 와 짧은 주기 (~15주기) 의 EFI 에너지 지표를 계산한다. 긴 주기 지표는 0보다 크면 전체 상승 트렌드 에너지가 증가하고, 짧은 주기 지표는 0보다 작으면 단기 상승 펄스 퇴치이다.
장단기 EFI 지표가 구매 신호를 발산하고, 가격이 50평균선 채널로 회수될 때, 구매 작업을 수행한다.
장단기 EFI 지표가 팔기 신호를 내면, 그리고 가격이 50평평선 채널로 회수되면, 팔기 작업을 수행한다.
이 전략은 트렌드, 동력 및 회귀 신호를 결합하여 대부분의 가짜 돌파구를 효과적으로 필터링 할 수 있습니다. 구체적인 장점은 다음과 같습니다:
50평선 채널은 주요 트렌드 방향을 명확하게 결정한다.
ADX 지표는 트렌드가 명확할 때만 거래하도록 하고, 흔들리는 시장에서 중매하는 것을 피한다.
EFI 지표는 트렌드 에너지가 증가하는 순간 구매를 판단하여 구매의 위험을 감소시킵니다.
리콜을 기다렸다가 경기장에 들어간다면 더 좋은 리스크와 수익률을 얻을 수 있다.
여러 지표의 조합을 통해 가짜 돌파구 위험을 효과적으로 필터링 할 수 있습니다.
이 전략에는 다음과 같은 위험들이 있습니다.
강세를 보인 경우에도 큰 회전이 있을 수 있으며, 넓은 스톱 레인지의 설정이 필요합니다.
충격적인 상황에서 EFI 지표는 잘못된 신호를 보낼 수 있으며, ADX와 같은 추세를 판단하는 지표와 함께 사용해야 한다.
회귀가 심하면 출전 시기를 놓칠 수 있으며, 평균선 변수를 적절히 조정할 수 있다.
단일 거래 품종은 시장의 시스템적 위험을 효과적으로 분산시킬 수 없습니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
더 많은 종류를 테스트하고, 전략의 범위를 찾아보세요.
스톱로스 전략을 추가하여 스톱로스를 추적하여 수익을 고정합니다.
매개 변수 최적화, ADX, EFI 등 지표 매개 변수 최적화.
기계 학습 알고리즘을 추가하고, 트렌드 브레이크를 판단하기 위해 빅데이터 트레이닝을 사용합니다.
다중 시간 주기의 거래를 늘리고, 다른 주기의 사이에 SPACING 기술을 사용하여 포지션을 제어한다.
더 많은 트렌드 필터링 지표를 평가하고 도입하여 신호 품질을 향상시킵니다.
이 전략은 전체적으로 초보자에게 매우 적합한 트렌드 회귀 전략이다. 그것은 트렌드, 동력 및 회귀와 같은 여러 가지 신호를 결합하여 가짜 돌파구를 효과적으로 필터링 할 수 있다.
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
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/
// © trent777brown
//@version=5
// strategy("adx efi 50 ema channel, trend pullback", overlay=true, margin_long=100, margin_short=100, currency=currency.USD, initial_capital= 100000, close_entries_rule="ANY")
//bollingerbands
[basis, upperband, lowerband]= ta.bb(ohlc4, 50, 3)
[basis2, upperband2, lowerband2]= ta.bb(ohlc4, 50, 2)
psar= ta.sar(.1, .1, .09)
ema50= ta.ema(hlc3, 50)
ema50hi= ta.ema(high, 50)
ema50lo= ta.ema(low, 50)
ema18= ta.wma(hlc3, 15)
wma9= ta.wma(open, 9)
wma5= ta.wma(ohlc4, 5)
ema34= ta.rma(hlc3, 10)
[macdline, signalline, histline]= ta.macd(hlc3, 5, 34, 5)
[macdline2, signalline2, histline2]= ta.macd(hlc3, 15,70, 24)
[diplus, diminus, adx]= ta.dmi(20, 20)
[diplus2, diminus2, adx2]= ta.dmi(12, 12)
rsi= ta.rsi(hlc3, 14)
rsisma= ta.sma(rsi, 10)
stoch= ta.stoch(close, high, low, 21)
k= ta.wma(stoch, 3)
d= ta.wma(k, 3)
trendline5= ta.wma(hlc3, 300)
trendline9= ta.wma(open, 540)
trendline18= ta.wma(open, 1080)
atr=ta.atr(14)
plot(psar, color=color.red, style=plot.style_circles)
plot(ema50, color=color.white, linewidth=4)
plot(ema50hi, color=color.yellow, linewidth=4)
plot(ema50lo, color=color.yellow, linewidth=4)
plot(ema34, color=color.aqua, linewidth=4)
plot(wma9, color=color.gray, linewidth=4)
plot(wma5, color=color.lime, linewidth=4)
plot(trendline18, color=color.orange, linewidth=4)
plot(upperband, color=color.navy, linewidth=4)
plot(lowerband, color=color.navy, linewidth=4)
plot(upperband2, color=color.navy, linewidth=4)
plot(lowerband2, color=color.navy, linewidth=4)
plot(trendline9, color=color.maroon, linewidth=4)
plot(trendline5, color=color.yellow, linewidth=4)
efi = ta.rma(ta.change(close) * volume, 15)
efi2= ta.rma(ta.change(close) * volume, 120)
buy= efi2 > 0 and efi < 0 and efi[1] < efi and adx >= 20 and open < ema50hi
sell= efi2 < 0 and efi > 0 and efi[1] > efi and adx >= 20 and open > ema50lo
//ell= rsi > 50 and ta.crossunder(wma5, wma9) and psar > high and ema18 <= ema50hi and macdline > 0 and macdline < signalline
//buy= ta.crossunder(close, ema50) and rsi < 50 and adx2 < adx2[1] and k < 25 and psar > high
//uy= rsi < 60 and ta.crossover(wma5, wma9) and psar < low and ema18 >= ema50 and macdline2 > 0 and diplus2 < 30 // and histline2 < 0
//buy= ema18 > ema50 and ta.crossunder(rsi, 45) and open < ema50hi and adx2[3] < adx2 and diplus2 < 25 and macdline < 0 and adx < 10
//sell= ta.crossover(close, ema50) and rsi > 50 and adx2 < adx2[1] and k > 75 and psar < low
//ell= ema18 < ema50 and ta.crossover(rsi, 60) and open > ema50lo and diminus2 < 30 and macdline2 < 0 and adx2[2] < adx2
//buy sell conditions 1
//buy= ta.crossover(wma5, ema18) and ema18 > ema50lo and diplus > 22 and diminus < 22 and adx > 15
//ell= ta.crossover(psar, high) and macdline2 < signalline2 and rsi < rsisma
//when conditions
buytrig= ema34 >= ema50lo
selltrig= ema34 <= ema50hi
//strategy
sl= low - atr * 8
tp= high + atr * 4
sellsl= high + atr * 8
selltp= low - atr * 4
if(buy)
strategy.entry("buy", strategy.long, when= buytrig)
strategy.exit("exit buy", "buy", limit= tp, stop= sl)
strategy.close("close", when= ta.crossunder(ema34, ema50lo))
if(sell)
strategy.entry("sell", strategy.short, when= selltrig)
strategy.exit("exit sell", "sell", limit= selltp, stop= sellsl)