이 전략은 3개의 서로 다른 주기의 EMA 평균선에 기초하여 거래 신호 판단을 하고, 8주기, 50주기 및 200주기 3개의 EMA 평균선에 기초하여 골드포크, 데드포크 판단을 하고, 서로 다른 EMA 평균선의 장점을 발휘하여 더 나은 거래 효과를 얻는다.
이 전략은 8주기, 50주기, 200주기 세 개의 EMA 평균선을 계산하고, 브린 벨트 통로를 설정하여 돌파 판단을 한다. 구체적인 논리는 다음과 같다:
빠른 주기 EMA의 운영을 통해 판단 하위, 중간 주기 EMA는 트렌드를 보장하고, 느린 주기 EMA는 필터링 흔들림, 셋은 상호보완하여 판도를 전환하는 동시에 거래 주파수를 고려한다.
3주기 EMA 평균은 합리적으로 추세를 판단하고, 다른 주기 EMA의 장점을 최대한 활용한다. 8주기 EMA는 단기 하위 반발 기회를 판단하고, 50주기 EMA는 중기 추세 방향을 판단하고, 200주기 EMA 필터링 흔들림은 큰 추세를 보장한다.
선택적으로 200주기 EMA 이상의 가격에서만 더 많이 할 수 있습니다.
선택적 정지 EMA 평선 합리적인 정지 위치를 설정한다.
비주얼 설정은 벨트 색상, EMA 라인 표시 등으로 정책의 조정성을 향상시킵니다.
은 은 은 판단 논리를 포함하고, 간단하고 이해하기 쉽습니다.
EMA 평균선은 지연성이 있으며, 포지션을 구축하는 최적의 시기를 놓칠 수 있다. EMA 주기를 적절히 단축할 수 있다. 또는 MACD와 같은 다른 지표와 결합하여 판단할 수 있다.
진동상태에서 EMA 평균선은 잘못된 신호를 생성할 수 있다. 긴 주기 EMA를 이용하여 진동을 제거하거나, 다른 필터링 조건을 추가할 수 있다.
스톱 포지션은 고정되어 있으며 시장의 변동에 따라 조정할 수 없습니다. ATR 등 지표에 따라 스톱 포지션을 결정하는 동적 스톱으로 변경할 수 있습니다.
중지 exiting criteria를 고려하지 않고 손실 위험이 있습니다. 이동 중지 또는 고정 포인트 중지 값을 설정하여 위험을 제어 할 수 있습니다.
EMA 주기는 최적화되어 최적의 변수 조합을 찾을 수 있다.
MACD와 같은 지표에 추가할 수 있습니다.
동적 정지 조건을 추가하고 시장의 변동에 따라 정지 위치를 조정한다.
스톱 로직을 추가하고, 이동 스톱 또는 고정 점값 스톱을 설정한다.
입학 조건의 최적화, 예를 들어, 증가된 에너지 지표와 같은 필터.
이 전략은 EMA 평평선의 안정적인 필터 판단 트렌드 방향을 기반으로, 다양한 주기 EMA의 장점을 결합하여 거래 기회를 포착한다. 중지 중지 손실 전략을 최적화하고, 더 많은 지표 판단을 추가하면 전략의 승률을 높일 수 있다. 전체적으로 이 전략은 비교적 간단하고 실용적이며, EMA 평평선 판단의 트렌드 추적 거래에 적합하다.
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Long only EMA CROSS 8/50/200 Backtest", shorttitle="Golden Cross Tri EMA", overlay=true)
// EMA 8/50/200 Cross TEST
// Input
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Show 8 EMA")
switch3=input(true, title="Show 50 EMA")
switch4=input(true, title="Show 200 EMA")
switch5=input(false, title="Show profit level EMA")
bool_Long_EMA200=input(false, title="Long only above EMA200")
movingaverage_8 = ema(close, input(8))
movingaverage_50 = ema(close, input(50))
movingaverage_market_signal = ema(close, input(200))
movingaverage_profitlvl = ema(close, input(50))
// Calculation
bullish_cross = if bool_Long_EMA200 == true
crossover(movingaverage_8, movingaverage_50) and movingaverage_8 > movingaverage_market_signal
else
bullish_cross = crossover(movingaverage_8, movingaverage_50)
bearish_cross = crossunder(close, movingaverage_profitlvl)
// Strategy
if bullish_cross
strategy.entry("long", strategy.long)
strategy.close("long", when = bearish_cross )
// Colors
bartrendcolor = close > movingaverage_8 and close > movingaverage_50 and change(movingaverage_50) > 0 ? green : close < movingaverage_8 and close < movingaverage_50 and change(movingaverage_50) < 0 ? red : blue
barcolor(switch1?bartrendcolor:na)
// Output
plot(switch2?movingaverage_8:na,color = change(movingaverage_8) > 0 ? green : red,linewidth=2, title="EMA8")
plot(switch3?movingaverage_50:na,color = change(movingaverage_50) > 0 ? green : red,linewidth=2,title="EMA50")
plot(switch4?movingaverage_market_signal:na,color = change(movingaverage_market_signal) > 0 ? green : red,linewidth=3,title="EMA200")
plot(switch5?movingaverage_profitlvl:na,color = change(movingaverage_profitlvl) > 0 ? green : red,linewidth=3, title="EMA Profit LVL")
//
alertcondition(bullish_cross, title='Golden Cross (bullish)', message='Bullish')
alertcondition(bearish_cross, title='Death Cross (bearish)', message='Bearish')