듀얼 SMA 시스템 기반 트렌드 추종 전략


생성 날짜: 2023-09-20 11:35:30 마지막으로 수정됨: 2023-09-20 11:35:30
복사: 1 클릭수: 688
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 단지 두 개의 SMA 평균선을 사용하며, 그 중 느린 SMA는 트렌드 방향을 판단하는데, 빠른 SMA는 입문 신호를 사용한다. K선 엔티티 컬러 결정과 결합하여 장점과 단점 신호를 생성한다. 전략은 중기 트렌드를 추적하며, 고위 진동 또는 저위 진동의 상황에 적합하다.

전략 원칙

두 개의 SMA 평균선과 가격 통로의 중간선을 빨리 천천히 계산한다. 빠른 선의 주기는 5이고, 느린 선의 주기는 20이다. 가격 통로의 중간선이 위쪽에 있을 때, 상승 추세로 간주하며, 이 단계에서 빠른 선에서 느린 선을 뚫는 기회를 찾는다. 가격 통로의 중간선이 아래쪽에 있을 때, 하향 추세로 간주하고, 빠른 선 아래에서 느린 선을 뚫는 기회를 찾는다.

또한, K선 엔티티 색상을 판단하는 경우, 상승 추세라면, 하위 K선 연속적으로 2개의 붉은 엔티티보다 크다고 보고, 빠른 선에서 느린 선을 통과할 때 더 많이 해야 한다. 하향 추세라면, 상위 K선 연속적으로 2개의 녹색 엔티티보다 크다고 보고, 빠른 선 아래에서 느린 선을 통과할 때 공백을 해야 한다.

우위 분석

이 전략은 두 개의 SMA 평균선과 가격 통로를 동시에 사용하여 트렌드 방향을 판단하여 가짜 브레이크의 오해를 피한다. K선 엔티티 컬러를 추가하여 가짜 신호를 필터링한다. 더 많은 하락 신호가 동시에 존재하여 보호 할 수 있습니다. 중기 트렌드를 효과적으로 추적 할 수 있습니다.

파라미터는 커스터마이징할 수 있고, 긴 짧은 포지션 조건에 적응력이 강하다. 재검토 데이터에 따르면, 이 전략은 높은 위기 및 낮은 위기 시장에서 좋은 수익을 얻을 수 있다.

위험 분석

이 전략은 평균적인 지표에 너무 의존하고 있으며, 불안정한 상황에서 너무 많은 가짜 신호를 생성할 가능성이 있습니다. 가격 요소만 고려하여 거래량 영향을 무시합니다.

적절하게 SMA 주기 파라미터를 조정하거나, 다른 기술 지표에 신호 필터링을 추가할 수 있다. 또한 양력 지표 등을 도입하여 종합적인 판단을 할 수 있다. 또한, 포지션 관리를 최적화하여 시장 상황에 따라 포지션 크기를 조정할 수 있다.

최적화 방향

  1. 다양한 SMA 빠른 느린 라인 조합을 테스트하여 최적의 파라미터를 찾습니다.

  2. 거래량 증가 등의 지표에 대한 신호 검사를 진행한다.

  3. 다른 기술 지표와 결합하여 전략 포트폴리오를 형성한다.

  4. 동적 포지션을 설정하고, 자금 관리를 최적화한다.

  5. 기계 학습을 사용하여 가격 동향과 전환점을 예측합니다.

  6. 손실을 막기 위한 최적화 전략과 과도한 손실을 방지하기 위한 전략

요약하다

이 전략은 전체적인 아이디어가 명확하며, 쌍SMA 시스템을 사용하여 트렌드를 판단하는 것이 더 일반적입니다. 그러나 평선 시스템만으로도 잘못된 신호가 발생하기 쉽고, 다른 기술 지표를 도입하여 최적화해야합니다. 더 많은 질적 및 양적 지표를 도입하여 검증 할 수 있다면 전략의 효과가 더 좋습니다.

전략 소스 코드
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Noro's Trend SMA Strategy v1.4", shorttitle = "Trend SMA str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

needlong = input(true, "long")
needshort = input(true, "short")
usefastsma = input(true, "Use fast SMA")
fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast SMA Period")
slowlen = input(20, defval = 20, minval = 2, maxval = 200, title = "slow SMA Period")
bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q")

fastsma = ema(close, fastlen)
slowsma = ema(close, slowlen)

//PriceChannel
src = ohlc4
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

trend = low > center ? 1 : high < center ? -1 : trend[1]

bar = close > open ? 1 : close < open ? -1 : 0
redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0
greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0

up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0
dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0

colorfastsma = usefastsma == true ? red : na
plot(fastsma, color = colorfastsma, title = "Fast SMA")
plot(center, color = blue, title = "Price Channel")

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)