
이 전략은 트렌드 추적과 지수 이동 평균 (EMA) 의 두 가지 기술 지표를 결합하여 주식이나 다른 금융 제품의 가격 트렌드를 식별하고 그에 따라 구매 및 판매 작업을 수행합니다.
이 전략의 주요 논리는 다음과 같습니다.
180주기 길이의 낮은 점과 닫힌 가격의 교차를 사용하여 가격 상승 경향을 판단하십시오. 낮은 점 위에 닫힌 가격을 통과하면 가격이 상승하기 시작하여 추세를 형성하고 더 많은 것을 할 수 있습니다.
가격이 하향에서 상향으로 전환할 때, 즉 종전 가격에서 종전 가격으로 전환할 때, 그리고 EMA 라인 아래에 있을 때, 더 많이 할 수 있습니다.
가격이 상승 추세에서 하향 추세로 바뀌면, 즉, 상반기 가격이 상반기 가격보다 낮아지면, 상반기 포지션을 평행합니다.
180주기 길이의 최고점과 EMA의 교차점을 사용하여 가격 하향 경향을 판단하십시오. 최고점이 EMA선을 넘어서고 최고점이 EMA선보다 낮을 때 공백을하십시오.
가격이 상승 추세에서 하향 추세로 전환했을 때, 즉, 종료 가격 아래에서 오픈 가격을 뚫고 EMA 라인 위에 있을 때, 공백을 뚫습니다.
가격이 하향 경향에서 상승 경향으로 바뀌었을 때, 즉, 종전 가격에 종전 가격이 넘었을 때, 공백 포지션을 평행하십시오.
이 전략은 트렌드 추적과 평행 지표를 결합하여 가격 트렌드의 전환점을 효과적으로 포착할 수 있으며 다음과 같은 장점이 있습니다.
이 전략에는 위험도 있습니다.
위험과 대응하는 해결책은 다음과 같습니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이 전략은 전체적으로 전형적인 트렌드 추적 전략으로, 가격 자체의 특징 지표를 사용하여 방향을 판단하고 트렌드를 추적한다. 그것은 간단하고 효과적이며, 구현하기 쉽고, 정량 거래의 입문 전략으로 적합하다. 그러나 지표 지연, 변수 민감성 등과 같은 몇 가지 문제도 있다. 이러한 문제는 더 많은 데이터 소스를 도입하고 기계 학습을 사용하는 등의 방법으로 개선할 수 있다.
/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-05 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Trend + EMA", overlay=true, initial_capital=10000, currency=currency.USD, pyramiding=0)
tim=input("180", title="Period for trend")
ema_period=input(180, title="EMA period")
opn = request.security(syminfo.tickerid, tim, open)
cls = request.security(syminfo.tickerid, tim, close)
emaline = ema(close, ema_period)
plot(opn, color=red)
plot(cls, color=green)
plot(emaline, color=black)
if (crossover(low, emaline))
strategy.entry("long", strategy.long)
if (crossover(cls, opn) and emaline < opn and strategy.position_size == 0)
strategy.entry("long", strategy.long)
if (crossunder(cls, opn) and strategy.position_size > 0)
strategy.close_all()
if (crossunder(high, emaline) and high < emaline)
strategy.entry("short", strategy.short)
if (crossunder(cls, opn) and emaline > opn and strategy.position_size == 0)
strategy.entry("short", strategy.short)
if (crossover(cls, opn) and strategy.position_size < 0)
strategy.close_all()