리소스 로딩... 로딩...

이중 이동 평균 다음 전략

저자:차오장, 날짜: 2024-02-27 14:49:58
태그:

img

전반적인 설명

이중 이동 평균 추종 전략은 이동 평균에 기반한 트렌드 추종 전략이다. 그것은 다른 기간의 이동 평균을 계산하여 트렌드 방향을 결정하고 그에 따라 거래 신호를 생성한다. 단기 이동 평균이 장기 평균을 넘을 때 길게, 단기 이동 평균이 장기 평균을 넘을 때 짧게 간다. 전략은 수익을 얻는 경향을 따른다.

전략 논리

이중 이동 평균 다음 전략은 폐쇄 가격의 14 기간 및 28 기간 간단한 이동 평균 (SMA) 을 계산하여 트렌드 방향을 판단합니다. 구체적으로, 각 기간의 끝에서 14 기간 SMA 및 28 기간 SMA를 계산합니다. 14 기간 SMA가 28 기간 SMA를 넘어서면 긴 신호를 보내고 긴 포지션을 개척합니다. 14 기간 SMA가 28 기간 SMA 아래로 넘어가면 짧은 신호를 보내고 짧은 포지션을 개척합니다.

포지션을 입력 한 후, 이윤을 취하고 손실을 멈추는 수준을 설정하여 위험을 관리합니다. 이윤을 취하고 손실을 멈추는 지점은 입력 매개 변수에 따라 가격으로 변환됩니다. 이윤과 위험을 시각적으로 판단하기 위해 차트에 이윤을 취하고 손실을 멈추고 평균 가격 라인을 그려줍니다.

이점 분석

이중 이동 평균에 따른 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 실행과 조작이 간단합니다.
  2. 추세에 따라 소액수출 위험이 낮습니다.
  3. 거래 빈도는 주기 매개 변수를 조정하여 제어 할 수 있습니다.
  4. 유연하게 수익을 취하고 손실을 중지하여 위험을 통제합니다.

위험 분석

이중 이동 평균 전략은 다음과 같은 몇 가지 위험을 가지고 있습니다.

  1. 급격한 사건들이 시장 트렌드를 방해하면 상당한 손실이 발생할 수 있습니다.
  2. 만약 스톱 로즈 포인트가 너무 작게 설정되면 조기 스톱 로스가 발생할 수 있습니다.
  3. 손실 범위가 너무 커질 수 있습니다.
  4. 거래 빈도는 너무 높거나 너무 낮을 수 있어 자본 효율에 영향을 줄 수 있습니다.

위험은 다음과 같은 측면에서 관리 될 수 있습니다.

  1. 변동성을 기반으로 동적으로 스톱 로스 포인트를 설정합니다.
  2. 이동 평균 사이클 매개 변수를 최적화합니다.
  3. 트렌드 전환점 근처에서 잘못된 신호를 피하기 위해 트렌드 필터를 추가합니다.

최적화 방향

이중 이동 평균은 다음 전략으로 최적화 될 수 있습니다.

  1. 역동적 스톱 로스 포인트에 대한 변동성 지표를 추가합니다. 예를 들어, ATR와 결합하여 변동성이 증가하면 조기 출출을 피하기 위해 스톱 로스를 확장하십시오.

  2. 더 많은 조합을 테스트하고 거래 신호의 적절한 빈도와 적절한 기간을 선택하여 이동 평균 주기의 매개 변수를 최적화하십시오.

  3. 트렌드 전환점 근처에서 잘못된 신호를 피하기 위해 MACD, DMI와 같은 트렌드 필터 지표를 추가하여 불필요한 거래를 줄이십시오.

  4. 가격 동향을 예측하고 전통적인 규칙을 대체하기 위해 기계 학습 모델을 증가시킵니다. LSTM, GRU 딥 러닝 모델은 더 나은 결과를 창출 할 수 있습니다.

  5. 전체 마취를 줄이기 위해 낮은 상관관계를 이용한 거래 품종을 다양화합니다.

결론

결론적으로, 이중 이동 평균 다음 전략은 간단하고 실용적인 트렌드 다음 시스템입니다. 그것은 트렌드를 따라 움직여 더 낮은 드라우다운 위험을 가지고 있으며 구현하기가 쉽습니다. 우리는 주기 매개 변수를 조정하여 최적화 할 수 있습니다.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © coinilandBot
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © adolgov

// @description
// 

//@version=4
strategy("coiniland  copy trading platform", overlay=true)

// random entry condition

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

moneyToSLPoints(money) =>
    strategy.position_size !=0 ? (money / syminfo.pointvalue / abs(strategy.position_size)) / syminfo.mintick : na

p = moneyToSLPoints(input(200, title = "Take Profit $$"))
l = moneyToSLPoints(input(100, title = "Stop Loss $$"))
strategy.exit("x", profit = p, loss = l)

// debug plots for visualize SL & TP levels
pointsToPrice(pp) =>
    na(pp) ? na : strategy.position_avg_price + pp * sign(strategy.position_size) * syminfo.mintick
    
pp = plot(pointsToPrice(p), style = plot.style_linebr )
lp = plot(pointsToPrice(-l), style = plot.style_linebr )
avg = plot( strategy.position_avg_price, style = plot.style_linebr )
fill(pp, avg, color = color.green)
fill(avg, lp, color = color.red)


더 많은