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

일내 두 개의 이동 평균 거래 전략

저자:차오장, 날짜: 2024-02-27 16:36:31
태그:

img

전반적인 설명

이것은 이중 이동 평균에 기반한 간단한 내일 거래 전략이다. 그것은 서로 다른 기간을 가진 두 가지 간단한 이동 평균을 사용하고 이동 평균이 넘어가면 긴 또는 짧은 포지션을 취한다. 신호가 변경되면 두 배의 양을 사용하여 포지션은 역전된다. 모든 오픈 포지션은 내일 세션이 종료되면 제곱된다.

전략 논리

이 전략은 10일 및 40일 간단한 이동 평균을 사용합니다. 짧은 기간 이동 평균이 긴 기간 1을 넘어서면 길게 이동하고 역 교차가 발생하면 짧게 이동합니다. 신호가 변경되면 두 배의 양을 사용하여 포지션은 종료되고 역 포지션은 시작됩니다. 거래는 정의된 내일 세션 동안 이동 평균 신호에 따라만 발생합니다. 남은 모든 오픈 포지션은 세션이 끝나면 제곱됩니다.

이 전략은 주로 짧은 기간 이동 평균의 더 빠른 가격 변화 포착 능력을 활용합니다. 짧은 SMA가 긴 SMA를 넘으면 단기간에 가격 상승 추세를 나타냅니다. 따라서 장기간에 걸리는 것이 이것을 포착 할 수 있습니다. 역은 단기 하락 추세를 나타냅니다. 이중 양 역 입력은 수익 잠재력을 확장합니다.

장점

  1. 간단하고 명확한 전략 논리, 이해하기 쉽고 실행하기 쉽습니다.
  2. 이중 MA 크로스오버를 사용하여 단기 가격 추세를 효과적으로 파악합니다.
  3. 하루 동안의 위험을 방지하기 위해 하루 내 세션으로 제한합니다.
  4. 이중 양 역거래를 통해 수익 잠재력을 확장합니다.

위험 분석

  1. 소음 거래 오류가 짧은 기간 전략으로.
  2. 두 배의 양은 손실을 증폭시킬 수 있습니다.
  3. 더 긴 수익성 트렌드를 놓치는 강제 적분 위험.

위험 완화:

  1. 잘못된 신호를 줄이기 위해 MA 매개 변수를 최적화합니다.
  2. 다른 지표를 사용하여 필터를 추가합니다.
  3. 양적 매개 변수를 최적화합니다.
  4. 하루내 세션 기간을 느리게 하세요.

더 나은 기회

  1. 가장 잘 맞는 조합을 더 많이 테스트함으로써 MA 매개 변수를 최적화합니다.

  2. 잘못된 신호를 줄이기 위해 MACD 확인과 같은 필터를 추가합니다.

  3. 매개 변수 조정을 통해 역입수 양 곱셈을 최적화합니다.

  4. 더 나은 수익을 위해 하루 내 세션 기간을 연장하는 테스트.

결론

이 전략은 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")

더 많은