이것은 이중 이동 평균에 기반한 간단한 내일 거래 전략이다. 그것은 서로 다른 기간을 가진 두 가지 간단한 이동 평균을 사용하고 이동 평균이 넘어가면 긴 또는 짧은 포지션을 취한다. 신호가 변경되면 두 배의 양을 사용하여 포지션은 역전된다. 모든 오픈 포지션은 내일 세션이 종료되면 제곱된다.
이 전략은 10일 및 40일 간단한 이동 평균을 사용합니다. 짧은 기간 이동 평균이 긴 기간 1을 넘어서면 길게 이동하고 역 교차가 발생하면 짧게 이동합니다. 신호가 변경되면 두 배의 양을 사용하여 포지션은 종료되고 역 포지션은 시작됩니다. 거래는 정의된 내일 세션 동안 이동 평균 신호에 따라만 발생합니다. 남은 모든 오픈 포지션은 세션이 끝나면 제곱됩니다.
이 전략은 주로 짧은 기간 이동 평균의 더 빠른 가격 변화 포착 능력을 활용합니다. 짧은 SMA가 긴 SMA를 넘으면 단기간에 가격 상승 추세를 나타냅니다. 따라서 장기간에 걸리는 것이 이것을 포착 할 수 있습니다. 역은 단기 하락 추세를 나타냅니다. 이중 양 역 입력은 수익 잠재력을 확장합니다.
위험 완화:
가장 잘 맞는 조합을 더 많이 테스트함으로써 MA 매개 변수를 최적화합니다.
잘못된 신호를 줄이기 위해 MACD 확인과 같은 필터를 추가합니다.
매개 변수 조정을 통해 역입수 양 곱셈을 최적화합니다.
더 나은 수익을 위해 하루 내 세션 기간을 연장하는 테스트.
이 전략은 MA 크로스오버 신호에서 형성된 단기 트렌드를 포착하고, 이중 양 역 거래를 사용하여 수익을 확장하고, 내일 세션에서만 거래함으로써 오버나이트 위험을 제한합니다. 매개 변수 및 필터 추가에 대한 추가 최적화는 전략 성능을 향상시킬 수 있습니다. 전체적으로, 그것은 내일 거래에 적합한 효과적인 전략입니다.
/*backtest start: 2024-02-19 00:00:00 end: 2024-02-26 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Pritesh-StocksDeveloper //@version=4 strategy("Moving Average - Intraday", shorttitle = "MA - Intraday", overlay=true, calc_on_every_tick = true) // Used for intraday handling // Session value should be from market start to the time you want to square-off // your intraday strategy var i_marketSession = input(title="Market session", type=input.session, defval="0915-1455", confirm=true) // Short & Long moving avg. period var int i_shortPeriod = input(title = "Short MA Period", type = input.integer, defval = 10, minval = 2, maxval = 20, confirm=true) var int i_longPeriod = input(title = "Long MA Period", type = input.integer, defval = 40, minval = 3, maxval = 120, confirm=true) // A function to check whether the bar is in intraday session barInSession(sess) => time(timeframe.period, sess) != 0 // Calculate moving averages shortAvg = sma(close, i_shortPeriod) longAvg = sma(close, i_longPeriod) // Plot moving averages plot(series = shortAvg, color = color.red, title = "Short MA", linewidth = 2) plot(series = longAvg, color = color.blue, title = "Long MA", linewidth = 2) // Long/short condition longCondition = crossover(shortAvg, longAvg) shortCondition = crossunder(shortAvg, longAvg) // See if intraday session is active bool intradaySession = barInSession(i_marketSession) // Trade only if intraday session is active // Long position strategy.entry(id = "Long", long = strategy.long, when = longCondition and intradaySession) // Short position strategy.entry(id = "Short", long = strategy.short, when = shortCondition and intradaySession) // Square-off position (when session is over and position is open) squareOff = (not intradaySession) and (strategy.position_size != 0) strategy.close_all(when = squareOff, comment = "Square-off")