이 전략은 이동평균 크로스오버를 기반으로 장기 및 단기를 실행하고, 높은 오픈 변동성에 갇히지 않기 위해 초기 이익 취득 통계에 따라 오후에만 종료됩니다.
이 전략은 14일, 28일 및 56일 라인이라는 다른 매개 변수와 함께 3개의 이동 평균을 사용한다. 14일 라인이 56일 라인의 위를 넘을 때 길게, 56일 라인이 아래를 넘을 때 짧게 된다. 이 기본 접근법은 장기 트렌드를 추적한다. 약간의 잡음을 필터링하기 위해 28일 라인을 참조로 추가하여 14일 라인이 28일 라인의 위 또는 아래를 넘을 때만 신호가 트리거된다.
주요 혁신은 손실을 멈추고 오후 4시에서 5시 사이에만 수익을 취한다는 것입니다. 통계는 오픈 후 첫 시간 동안 매일 높은 / 낮은 확률이 70%가 있음을 보여줍니다. 높은 오픈 변동성의 영향을 피하기 위해, 출구는 일반 오후 거래 시간 동안만 허용됩니다.
이 전략의 장점은 다음과 같습니다.
또한 몇 가지 위험이 있습니다.
전략을 더 최적화 할 수있는 몇 가지 방법:
이 전략은 명확하고 간단한 논리를 가지고 있으며, 변동성 함정을 피하기 위해 스톱 로스를 위한 오픈 기능을 효과적으로 사용합니다. 그러나 기회를 놓치고 함정에 빠질 위험이 있습니다. 매개 변수를 주식별로 조정해야합니다. 전반적으로 초보자 양에 대한 간단하면서도 효과적인 아이디어입니다.
/*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)