초기 수익 취득 이동 평균 개막 벨 출구 전략

저자:차오장, 날짜: 2023-12-01 14:32:48
태그:

img

전반적인 설명

이 전략은 이동평균 크로스오버를 기반으로 장기 및 단기를 실행하고, 높은 오픈 변동성에 갇히지 않기 위해 초기 이익 취득 통계에 따라 오후에만 종료됩니다.

전략 논리

이 전략은 14일, 28일 및 56일 라인이라는 다른 매개 변수와 함께 3개의 이동 평균을 사용한다. 14일 라인이 56일 라인의 위를 넘을 때 길게, 56일 라인이 아래를 넘을 때 짧게 된다. 이 기본 접근법은 장기 트렌드를 추적한다. 약간의 잡음을 필터링하기 위해 28일 라인을 참조로 추가하여 14일 라인이 28일 라인의 위 또는 아래를 넘을 때만 신호가 트리거된다.

주요 혁신은 손실을 멈추고 오후 4시에서 5시 사이에만 수익을 취한다는 것입니다. 통계는 오픈 후 첫 시간 동안 매일 높은 / 낮은 확률이 70%가 있음을 보여줍니다. 높은 오픈 변동성의 영향을 피하기 위해, 출구는 일반 오후 거래 시간 동안만 허용됩니다.

이점 분석

이 전략의 장점은 다음과 같습니다.

  1. 중장기 동향을 추적하고 과도한 소음을 피하십시오.
  2. 가짜 브레이크오프를 피하기 위해 스톱 로스 논리를 위해 오픈 변동성의 통계를 활용합니다.
  3. 단순하고 직관적인 논리, 이해하기 쉽고 수정하기 쉽습니다

위험 과 해결책

또한 몇 가지 위험이 있습니다.

  1. 하루 일찍 반전되면 기회를 놓칠 수 있습니다. 특정 주식과의 호환성을 테스트 할 수 있습니다.
  2. 아직은 시간이 지나면 갇힐 위험이 있습니다.
  3. 백테스트 기간의 잘못된 설정이 오버파이팅으로 이어집니다.

더 나은 기회

전략을 더 최적화 할 수있는 몇 가지 방법:

  1. 최적의 매개 변수를 찾기 위해 다른 이동 평균 조합을 테스트
  2. 특정 주식의 변동성 패턴에 기초한 미세 조정 중지 손실 범위
  3. 함정을 피하기 위해 볼륨 필터를 추가합니다
  4. 브레이크아웃 후 트레일 풀백에 동적 중지 추가

결론

이 전략은 명확하고 간단한 논리를 가지고 있으며, 변동성 함정을 피하기 위해 스톱 로스를 위한 오픈 기능을 효과적으로 사용합니다. 그러나 기회를 놓치고 함정에 빠질 위험이 있습니다. 매개 변수를 주식별로 조정해야합니다. 전반적으로 초보자 양에 대한 간단하면서도 효과적인 아이디어입니다.


/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MAC 1st Trading Hour Walkover", overlay=true)

// Setting up timeperiod for testing
startPeriodYear = input(2014, "Backtest Start Year")
startPeriodMonth = input(1, "Backtest Start Month")
startPeriodDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0)

stopPeriodYear = input(2025, "Backtest Stop Year")
stopPeriodMonth = input(12, "Backtest Stop Month")
stopPeriodDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0)

// Moving Averages
ema14 = ema(close, 14)
ema28 = ema(close, 28)
sma56 = sma(close, 56)

// Plot
plot(ema14, title="ema14", linewidth=2, color=green)
plot(ema28, title="ema28", linewidth=2, color=red)
plot(sma56, title="sma56", linewidth=3, color=blue)

// Strategy
goLong = cross(ema14, sma56) and ema14 > ema28
goShort = cross(ema14, sma56) and ema14 < ema28

// Strategy.When to enter
if time >= testPeriodStart
    if time <= testPeriodStop
        strategy.entry("Go Long", strategy.long, 1.0, when=goLong)
        strategy.entry("Go Short", strategy.short, 1.0, when=goShort)

// Strategy.When to take profit 
if time >= testPeriodStart 
    if time <= testPeriodStop 
        strategy.exit("Close Long", "Go Long", profit=2000) 
        strategy.exit("Close Short", "Go Short", profit=2000) 

// Strategy.When to stop out 
// Some studies show that 70% of the days high low happen in the first hour 
// of trading. To avoid having that volatility fire our loss stop we 
// ignore price action in the morning, but allow stops to fire in the afternoon. 
if time("60", "1000-1600") 
    strategy.exit("Close Long", "Go Long", loss=500) 
    strategy.exit("Close Short", "Go Short", loss=500)

더 많은