이동 평균 방향 역전 거래 전략

저자:차오장, 날짜: 2023-09-28 15:50:01
태그:

전반적인 설명

이동 평균 방향 역전 거래 전략은 이동 평균이 여러 촛불에서 연속적으로 상향 또는 하향을 표시할 때 트렌드 역전을 판단하는 전략이다. 이 전략은 이동 평균의 방향을 판단하여 길거나 짧게 유지하는 거래 기회를 결정한다.

전략 논리

이동 평균 방향 역전 거래 전략의 핵심 논리는 다음과 같습니다.

  1. 선택된 이동 평균을 계산합니다. 단순 이동 평균 (SMA), 기하급수 이동 평균 (EMA), 가중 이동 평균 (WMA) 또는 선형 회귀 평균이 될 수 있습니다.

  2. 현재 기간 이동 평균과 이전 기간 이동 평균 사이의 크기 관계를 판단합니다. 현재 이동 평균이 이전 기간보다 높다면 1, 그렇지 않으면 0을 할당합니다.

  3. 연속 상승과 하락 기간의 수를 기록합니다. 현재 기간의 이동 평균이 이전 기간보다 높다면, 연속 상승 기간 +1, 그리고 연속 하락 기간은 0으로 클리어됩니다. 현재 기간의 이동 평균이 이전 기간보다 낮다면, 연속 하락 기간 +1, 그리고 연속 상승 기간은 0으로 클리어됩니다.

  4. 연속 상승 또는 하락 기간의 수가 사용자 정의 임계치를 초과하면 해당 긴 또는 짧은 작업을 수행합니다.

  5. 동시에 촛불 띠와 배경 색상을 색칠하여 트렌드 방향의 변화를 시각적으로 표시하십시오.

  6. 선택적으로 이동 평균 변화 곡선을 그래프로 표시하여 굴곡점을 표시합니다.

이 전략은 트렌드를 판단하여 여러 개의 연속 촛불의 이동 평균의 방향을 계산하고 단일 촛불을 보는 대신 연속적인 긴 또는 짧은 보유 기간에 따라 거래를합니다. 이것은 거래에 충격의 영향을 효과적으로 필터 할 수 있습니다.

장점

이동 평균 방향 역전 거래 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 트렌드 방향을 결정하기 위해 이동 평균을 사용하면 시장 소음을 효과적으로 필터 할 수 있습니다.

  2. 트렌드 반전 시기를 결정하고 거래 위험을 줄이기 위해 일정 기간 동안 이동 평균의 방향의 통계적 변화

  3. 다른 품종과 시장 조건에 적응하기 위해 조정 가능한 이동 평균 매개 변수 및 통계 기간 매개 변수.

  4. 촛불 색상은 시각적 보조로 트렌드 방향 변화를 직관적으로 표시합니다.

  5. 다양한 종류의 이동 평균을 선택할 수 있는 유연성

  6. 이동 평균 변화 곡선을 그리면 반전이 일어나는지 명확하게 관찰할 수 있습니다.

  7. 간단하고 명확한 규칙, 이해하기 쉽고 적용하기 쉽고 초보자에게 적합합니다.

위험성

이동 평균 방향 역전 거래 전략은 또한 몇 가지 위험을 가지고 있습니다:

  1. 이동평균의 지연은 전환점의 적시에 포착하는 데 영향을 미칩니다.

  2. 통계 기간으로 인해 장기 및 단기 결정의 지연은 더 빠른 역행 기회를 놓칠 수 있습니다.

  3. 과도하게 긴 연속 주기 설정은 추세를 놓칠 수 있지만 너무 짧으면 함정에 빠질 가능성이 있습니다.

  4. 오스실레이션 시장에서 많은 수의 단기 거래 신호가 발생할 수 있습니다.

  5. 이동 평균의 방향에만 의존하면 잘못된 신호의 위험이있는 실제 트렌드 반전을 완전히 결정할 수 없습니다.

  6. 시장이 급격하게 변할 때, 이동평균 지표 자체도 빠르게 변하고, 잘못된 신호를 생성할 확률이 높습니다.

  7. 이동평균 매개 변수 선택의 합리성을 고려해야 합니다. 그렇지 않으면 실패할 것입니다.

해결책:

  1. 감수성을 향상시키기 위해 이동 평균 주기를 적절히 단축합니다.

  2. 다른 지표를 사용하여 신호를 필터하고 트렌드 반전을 확인합니다.

  3. 반응 속도와 안정성 사이의 균형을 찾기 위해 통계 주기 매개 변수를 최적화합니다.

  4. 손실을 통제하기 위해 헤지링을 위한 스톱 로스 범위를 늘려야 합니다.

  5. 정확도를 높이기 위해 이동 평균의 여러 조합을 사용하십시오.

최적화 방향

이동 평균 방향 역전 거래 전략은 다음과 같은 측면에서 최적화 될 수 있습니다:

  1. 이동 평균 매개 변수를 최적화, 다른 길이 기간의 이동 평균을 테스트하고 최고의 매개 변수를 찾습니다. SMA, EMA 및 WMA의 조합을 시도 할 수 있습니다.

  2. 신호 신뢰성을 높이기 위해 RSI와 KD와 같은 다른 보조 지표를 포함합니다.

  3. 추세 반전을 반영하고 가능한 한 잘못된 신호를 필터링하는 것을 보장하기 위해 통계 연속 기간 매개 변수를 최적화하십시오.

  4. 단일 거래 손실을 제어하기 위해 스톱 로스 메커니즘을 추가합니다.

  5. 다른 품종에 매개 변수 최적화 결과를 테스트하고 다른 거래 품종에 따라 매개 변수를 조정합니다.

  6. 고정 통계 기간을 적응 통계 기간으로 변경하는 것을 고려하여 전략을 더 유연하게하십시오.

  7. 이동평균이 실제로 돌파할 때 포지션을 열려고 해보세요.

  8. 전체 트렌드 방향에 대한 판단을 추가하여 트렌드에 반대되는 거래를 피합니다.

  9. 곡선의 부드러움을 높이는 것과 같은 이동 평균 곡선의 그래핑 방식을 개선하십시오.

요약

이동평균 방향 역전 거래 전략은 이동평균의 연속 상승 또는 하락 기간을 계산함으로써 지속적인 트렌드 추적의 시기를 결정합니다. 트렌드 역전 발생 시 시장 소음을 효과적으로 필터하고 기회를 잡을 수 있습니다. 이 전략은 사용자 정의 가능한 이동평균 매개 변수 및 통계 주기 수치를 통해 다양한 거래 품종 및 시장 환경에 유연하게 적응 할 수 있습니다. 그러나 이동평균의 지연 자체는 빠른 역전에 대한 식별 지연을 쉽게 유발합니다. 따라서 매개 변수를 최적화하고 조정해야하며 다른 기술적 지표가 신호 정확성을 향상시키는 데 도움이됩니다. 일반적으로 이동평균 방향 역전 거래 전략은 쉽게 파악 할 수있는 장점이 있으며 실용적이고 권장되는 거래 전략입니다.


/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Moving Average Consecutive Up/Down Strategy (by ChartArt)", overlay=true)

// ChartArt's Moving Average Consecutive Up/Down Strategy
//
// Version 1.0
// Idea by ChartArt on December 30, 2015.
//
// This strategy goes long (or short) if there are several
// consecutive increasing (or decreasing) moving average
// values in a row in the same direction.
//
// The bars can be colored using the raw moving average trend.
// And the background can be colored using the consecutive
// moving average trend setting. In addition a experimental
// line of the moving average change can be drawn.
//
// The strategy is based upon the "Consecutive Up/Down Strategy"
// created by Tradingview.


// Input
Switch1 = input(true, title="Enable Bar Color?")
Switch2 = input(true, title="Enable Background Color?")
Switch3 = input(false, title="Enable Moving Average Trend Line?")

ConsecutiveBars = input(4,title="Consecutive Trend in Bars",minval=1)

// MA Calculation
MAlen = input(1,title="Moving Average Length: (1 = off)",minval=1)
SelectMA = input(2, minval=1, maxval=4, title='Moving Average: (1 = SMA), (2 = EMA), (3 = WMA), (4 = Linear)')
Price = input(close, title="Price Source")
Current =
 SelectMA == 1 ? sma(Price, MAlen) :
 SelectMA == 2 ? ema(Price, MAlen) :
 SelectMA == 3 ? wma(Price, MAlen) :
 SelectMA == 4 ? linreg(Price, MAlen,0) :
 na
Last =
 SelectMA == 1 ? sma(Price[1], MAlen) :
 SelectMA == 2 ? ema(Price[1], MAlen) :
 SelectMA == 3 ? wma(Price[1], MAlen) :
 SelectMA == 4 ? linreg(Price[1], MAlen,0) :
 na

// Calculation
MovingAverageTrend = if Current > Last
    1
else
    0

ConsecutiveBarsUp = MovingAverageTrend > 0.5 ? nz(ConsecutiveBarsUp[1]) + 1 : 0
ConsecutiveBarsDown = MovingAverageTrend < 0.5 ? nz(ConsecutiveBarsDown[1]) + 1 : 0
BarColor = MovingAverageTrend > 0.5 ? green : MovingAverageTrend < 0.5 ? red : blue
BackgroundColor = ConsecutiveBarsUp >= ConsecutiveBars ? green : ConsecutiveBarsDown >= ConsecutiveBars ? red : gray
MovingAverageLine = change(MovingAverageTrend) != 0 ? close : na

// Strategy
if (ConsecutiveBarsUp >= ConsecutiveBars)
    strategy.entry("ConsUpLE", strategy.long, comment="Bullish")
    
if (ConsecutiveBarsDown >= ConsecutiveBars)
    strategy.entry("ConsDnSE", strategy.short, comment="Bearish")

// output
barcolor(Switch1?BarColor:na)
bgcolor(Switch2?BackgroundColor:na)
plot(Switch3?MovingAverageLine:na, color=change(MovingAverageTrend)<0?green:red, linewidth=4)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

더 많은