이중 이동 평균선 조임 추세 추종 전략


생성 날짜: 2023-12-28 17:24:53 마지막으로 수정됨: 2023-12-28 17:24:53
복사: 0 클릭수: 626
avatar of ChaoZhang ChaoZhang
1
집중하다
1623
수행원

이중 이동 평균선 조임 추세 추종 전략

개요

이중 이동 평균 컨버전스 트렌드 추적 전략 (Dual Moving Average Convergence Trend Tracking Strategy) 은 빠른 이동 평균, 느린 이동 평균 및 초 느린 이동 평균을 계산하여 MACD 지표와 결합하여 가격 트렌드 방향을 판단하여 트렌드 추적 거래를 구현합니다. 빠른 이동 평균이 금색 교차가 발생하면 더 많이하고, 사망 교차가 발생하면 공백합니다. 동시에 장기 평균을 통해 필터링 휴가를 뚫고 있습니다.

전략 원칙

이 전략은 먼저 12일 빠른 이동 평균, 26일 느린 이동 평균, 200일 초 느린 이동 평균을 계산한다. 빠른 이동 평균 위에 느린 이동 평균을 통과할 때 황금으로 교차하는 것은 황소 시장을 시작하는 것을 나타냅니다. 빠른 이동 평균이 위로 내려가 느린 이동 평균을 넘어서는 경우 사망으로 교차하는 것은 곰 시장을 시작하는 것을 나타냅니다. 전략은 황금으로 교차할 때 더하고, 사망으로 교차할 때 공백을 만든다.

동시에, 이 전략은 MACD 지표와 결합하여 트렌드 방향을 판단한다. MACD는 빠른 선, 느린 선 및 MACD 기둥으로 구성된다. 빠른 선에서 느린 선을 통과하면 다중 신호이며, 하단에는 허공 신호이다.

느린, 일률적인 시스템과 MACD 지표의 이중 확인을 통해, 단일 지표로 인해 발생하는 가짜 신호를 피하고, 트렌드가 시작될 때만 입장을 보장한다.

전략적 이점

  1. 속속평균선 시스템과 MACD 지표가 두 번 확인하여 가짜 돌파구를 피하고 트렌드 시작일 때만 출전을 보장한다.

  2. 200일 이동 평균 필터링, 시장의 불안정 기간에 잘못된 거래를 피하십시오.

  3. 최대 손실을 제한할 수 있는 Stop Loss 설정이 있습니다.

  4. 이동 평균 길이, 상해 수평등 등과 같은 파라미터를 사용자 정의할 수 있으며, 다양한 품종에 적합하다.

  5. 전략은 명확하고 간단하며, 이해하기 쉽고, 최적화하기 쉽습니다.

전략적 위험

  1. 장기적인 트렌드를 추적하는 전략으로, 단기적인 기회를 잡을 수 없습니다.

  2. 트래킹 효과는 변수 설정에 달려 있으며, 변수가 잘못되면 트렌드를 제대로 잡을 수 없습니다.

  3. 잘못 설정된 스톱로드는 너무 느슨하거나 너무 긴축되어 손실이 커지거나 조기 스톱로드를 초래할 수 있다.

  4. 장기적으로 지분을 많이 보유하는 것은 재정적 압박을 받는다는 뜻입니다.

전략 최적화

  1. 이동 평균 길이 변수를 최적화하여 최적의 변수 조합을 찾습니다.

  2. KDJ 지표와 같은 보조 판단 신호로 다른 지표를 추가하십시오.

  3. 스톱로스를 줄이고, 스톱로스를 추적하는 등의 방법으로 스톱로스 전략을 최적화한다.

  4. 품종과 거래 주기에 따라 이동 평균 변수를 조정한다.

  5. 결합량은 교역량과 같은 가위 신호를 필터링할 수 있다.

요약하다

쌍평선 쇄도 트렌드 추적 전략은 여러 평선 시스템을 계산하여 트렌드 방향을 판단하고 MACD 지표를 사용하여 신호를 필터링합니다. 이 전략은 작동 아이디어가 간단하고 위험은 제어할 수 있으며 트렌드를 추적하기에 적합합니다. 이 전략은 파라미터 최적화, 스톱 전략 최적화, 보조 지표 등의 여러 가지 방법으로 개선 할 수 있으며, 추천 할 만한 트렌드 추적 전략입니다.

전략 소스 코드
/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Trend Strategy", shorttitle="TSTrend Strategy", overlay=true)


// Trend Strategy
// If the inverse logic is true, the strategy
// goes short. For the worst case there is a
// max intraday equity loss of 50% filter.


// Input
source = input(close)
fastLength = input(12, minval=1, title="MACD fast moving average")
slowLength=input(26,minval=1, title="MACD slow moving average")
signalLength=input(9,minval=1, title="MACD signal line moving average")
veryslowLength=input(200,minval=1, title="Very slow moving average")
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Moving Averages?")
switch3=input(true, title="Enable Background Color?")

// Calculation
fastMA = sma(source, fastLength)
slowMA = sma(source, slowLength)
veryslowMA = sma(source, veryslowLength)
macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal

// Colors
MAtrendcolor = change(veryslowMA) > 0 ? green : red
trendcolor = fastMA > slowMA and change(veryslowMA) > 0 and close > slowMA ? green : fastMA < slowMA and change(veryslowMA) < 0 and close < slowMA ? red : blue
bartrendcolor = close > fastMA and close > slowMA and close > veryslowMA and change(slowMA) > 0 ? green : close < fastMA and close < slowMA and close < veryslowMA and change(slowMA) < 0 ? red : blue
backgroundcolor = slowMA > veryslowMA and crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA ? green : slowMA < veryslowMA and crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA ? red : na
bgcolor(switch3?backgroundcolor:na,transp=80)
barcolor(switch1?bartrendcolor:na)

// Output
F=plot(switch2?fastMA:na,color=trendcolor)
S=plot(switch2?slowMA:na,color=trendcolor,linewidth=2)
V=plot(switch2?veryslowMA:na,color=MAtrendcolor,linewidth=4)
fill(F,V,color=gray)

// Strategy
buyprice = low
sellprice = high
cancelLong = slowMA < veryslowMA
cancelShort = slowMA > veryslowMA

if (cancelLong)
    strategy.cancel("MACDLE")

if crossover(hist, 0) and macd > 0 and fastMA > slowMA and close[slowLength] > veryslowMA 
    strategy.entry("MACDLE", strategy.long, stop=buyprice, comment="Bullish")

if (cancelShort)
    strategy.cancel("MACDSE")

if crossunder(hist, 0) and macd < 0 and fastMA < slowMA and close[slowLength] < veryslowMA 
    strategy.entry("MACDSE", strategy.short, stop=sellprice, comment="Bearish")

// maxIdLossPcnt = input(50, "Max Intraday Loss(%)", type=float)
// strategy.risk.max_intraday_loss(maxIdLossPcnt, strategy.percent_of_equity)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)