이 전략은 이동 평균의 골든 크로스 및 데드 포크 원칙을 적용하여 RSI 지표 보조 판단과 결합하여 트렌드를 식별하고 추적합니다. 단기 평균선에서 장기 평균선을 통과 할 때 더 많이하고, 단기 평균선 아래에서 장기 평균선을 통과 할 때 공백하는 것이 더 전형적인 트렌드 추적 전략입니다.
이 전략은 다음과 같은 원칙에 기초하고 있습니다.
EMA 평균선을 사용: SMA보다 최신 가격 변화에 더 반응하고, 돌파구에 더 빨리 반응한다.
쌍평평선 교차: 짧은 주기평선 상에 긴 주기평선 상을 통해 구매 신호를, 짧은 주기평선 아래에서 긴 주기평선 상을 통해 판매 신호를, 평선의 황금 교차와 사다리 원칙을 이용하여 트렌드 전환을 판단한다.
RSI 지표 보조 판단: RSI 고위가 다시 떨어질 때 팔고, RSI 저위가 다시 올라갈 때 살며, 가짜 돌파구를 피한다.
서로 다른 주기 평균선은 겹쳐져 있다: 55 주기선은 단기 경향 전환을 판단하는 신호선이며, 100 주기선은 중기 경향을 결정하는 신호선이며, 200 주기선은 장기 경향을 판단하는 신호선이다.
스톱 스톱을 설정: 합리적인 스톱 스톱 비율을 설정하여 위험을 제어하십시오.
이 전략의 거래 논리는 다음과 같습니다.
55주기 EMA에 100주기 EMA를 착용하고, 12주기 EMA가 200주기 EMA보다 높을 때, 추가 입장을 한다.
100주기 EMA 아래에서 200주기 EMA를 통과할 때, 공백으로 진입한다.
거래 입시 후, 중지 및 중지 조건을 설정하여 수익을 최적화하십시오.
RSI 지표가 오버 바이 오버 셀 신호를 표시할 때, 적시에 해당하는 다중 주문과 공명서를 닫고, 반전 위험을 피한다.
다양한 주기적 EMA의 중복 적용을 통해, 전략은 동시적으로 트렌드 판단과 역확인을 병행하고, 중·장기적 트렌드를 추적하면서, 조준되는 것을 피한다.
이 전략의 주요 장점은 다음과 같습니다.
전략적 아이디어는 명확하고, 간단한 평선 교차 원칙을 통해 트렌드 방향을 판단하고, 이해하기 쉽고 구현할 수 있다.
이 EMA는 가격 변화에 더 빠르게 반응하여 트렌드 전환을 신속하게 포착할 수 있습니다.
다중군 주기 EMA 중복 적용, 트렌드 추적과 역전 식별을 고려한다.
RSI 지표의 사용은 가짜 돌파구를 방지하고 신호의 정확성을 향상시킵니다.
기본 중지 스톱 파라미터를 합리적으로 설정하여 거래 위험을 효과적으로 제어 할 수 있습니다.
확장성이 강하여, 시장 조정 평균선 변수 및 스톱 스 변수 등에 따라 전략을 최적화할 수 있다.
이 전략에는 다음과 같은 위험들이 있습니다.
평행선 전략은 시장의 변동에 민감하며, 쉽게 조작된다. 장기적인 변동 시장에 직면하면, 너무 많은 무효 거래가 발생할 수 있다.
모든 품종과 주기의 시장 특성에 맞지 않을 수 있는 기본 파라미터는 타겟팅 최적화가 필요합니다.
근본적인 요소와 중요한 사건들이 시장 상황에 미치는 영향을 고려하지 않고, 순전히 기술적인 지표가 주도되는 것은 쉽게 속일 수 있다.
지수가 상승하지만 주식 시장이 분산되면 이 전략은 수익을 내지 못할 수 있습니다.
‘조기 퇴장’으로 인해 시장의 많은 이익을 놓칠 위험이 있습니다.
이러한 위험에는 다음과 같은 방법으로 최적화 및 개선할 수 있습니다.
거래량 지표와 같은 필터와 결합하여 가짜 돌파구가 손실을 초래하지 않도록하십시오.
매개 변수들에 대한 피드백을 최적화하여 특정 품종의 특성에 더 적합하게 만든다.
적당히 포지션 보유 시간을 단축하고, 적시에 스톱을 막고, 장기적인 흔들림의 위험을 피하십시오.
기본적 지표와 결합하여, 주요 수익 부진 사건이 발생했을 때 타격을 입지 않도록 한다.
이 전략은 다음과 같은 측면에서 최적화될 수 있습니다.
평행선 시스템 변수를 최적화하여 더 적합한 단기, 중기, 장기 평행선 주기 조합을 찾습니다. Machine Learning와 같은 변수 최적화 방법을 시도할 수 있습니다.
이 전략의 효과에 대해 종전 가격과 전형적인 가격의 비교를 테스트한다.
거래량을 필터로 삼아 거래 신호를 생성하기 위해 많은 양의 거래량을 사용하십시오.
정지상태를 최적화하여 더욱 타겟팅할 수 있다. 또한 동적 정지상태를 설정하여 정지상태를 비례적으로 조정할 수 있다.
다른 지표와 결합하여, 예를 들어, Stoch, MACD, 브린 띠와 같은 복합 전략을 구축하고, 전략의 효과를 향상시킨다.
다양한 품종, 주기 및 시장 단계에서 재검토하여 전략의 효과를 평가하고 추가적으로 개선하십시오.
기계 학습 알고리즘의 도움으로 다차원적인 매개 변수 최적화를 고려할 수 있다.
이 전략의 전체적인 아이디어는 명확하고 이해하기 쉽고, 간단한 평선 교차 원칙을 통해 트렌드 방향을 판단한다. 전략은 구현하기 쉽고, 기본으로 신뢰할 수 있고, 확장성이 강하다는 장점이 있다. 그러나 특정 시장 위험도 존재하며, 역 측정 결과에 따라 매개 변수 및 모듈을 지속적으로 최적화하여 전략을 더 안정적이고 지능화 할 필요가 있다.
/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-31 00:00:00
period: 15m
basePeriod: 5m
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/
// © pernath
//@version=5
strategy("TREND_CATCHER", overlay=true, commission_value=0.05, commission_type=strategy.commission.percent, initial_capital=1000)
//#####variables##############
profit_short=input(title='profit_short', defval=27)
stop_short=input(title='stop_short', defval=2)
stop_long=input(title='stop_long', defval=3)
profit_long=input(title='profit_long', defval=35)
media_1=input(title='media_1', defval=55)
media_2=input(title='media_2', defval=100)
resta_medias=input(title='resta_medias', defval=0)
resta_medias2=input(title='resta_medias2', defval=0)
RSI_periodos=input(title='RSI_periodos', defval=42)
//###############VARIABLES###################
//#####Alert#####
id_bot = ""
email_token = ""
long_open =""
long_close =""
short_open =""
short_close =""
//# {{strategy.order.alert_message}}
//#############################
//#############################
//###############EMA##############/
//plot(ta.ema(close, 1), title='ema 5', color=color.white)
plot(ta.ema(close, 12), title='ema 12', color=color.white)
plot(ta.ema(close, 25), title='ema 25', color=color.white)
plot(ta.ema(close, 30), title='ema 30', color=color.white, linewidth=1)
plot(ta.ema(close, 40), title='ema 40', color=color.white, linewidth=1)
plot(ta.ema(close, 55), title='ema 55', color=color.orange, linewidth=1)
plot(ta.ema(close, 100), title='ema 100', color=color.red, linewidth=1)
plot(ta.ema(close, 200), title='ema 200', color=color.white, linewidth=3)
//#############################/
//######VISUAL#############
EMA50 = ta.ema(close, 55)
EMA100 = ta.ema(close, 100)
estado_medias=EMA50-EMA100
a = plot(EMA50, title="EMA(50)", color=color.orange, linewidth=1 )
b = plot(EMA100, title="EMA(100)", color=color.red, linewidth=1 )
var color col = na
col := estado_medias>resta_medias ? color.green : color.red
fill(a,b,color=col,transp=40)
//######VISUAL#############
Go_Short=(ta.crossunder(ta.ema(close,100),ta.ema(close,200)))
Go_Long=((ta.crossover(ta.ema(close,55),ta.ema(close,100))and(ta.ema(close,12)>ta.ema(close,200))))
strategy.close("enter long", (Go_Short),alert_message=long_open)
cancelar_short=((ta.crossunder(ta.ema(close,25),ta.ema(close,6))))
if Go_Short
strategy.entry("enter short", strategy.short,1, alert_message=short_open)
strategy.exit("cerrar short", "enter short", 1, profit=close*profit_short/100/syminfo.mintick, loss=close*stop_short/100/syminfo.mintick, alert_message=short_close)
strategy.close("enter short", (Go_Long),alert_message=short_close)
cancelar=((ta.crossunder(ta.ema(close,12),ta.ema(close,30))))
if Go_Long
strategy.entry("enter long", strategy.long,1,alert_message=long_open)
strategy.exit("cerrar long", "enter long", 1, profit=close*profit_long/100/syminfo.mintick, loss=close*stop_long/100/syminfo.mintick, alert_message=long_close)
strategy.close("enter short", (cancelar_short),alert_message=short_close)
strategy.close("enter long", (cancelar),alert_message=long_close)
//posiciones abiertas
bgcolor((strategy.position_size > 0 or strategy.position_size < 0) ? color.blue : na, transp=70)