MA 크로스오버 거래 전략 단기 및 장기 이동 평균 크로스오버를 기반으로

저자:차오장, 날짜: 2024-02-22 15:36:49
태그:

img

전반적인 설명

이 전략은 단기 및 장기 이동 평균 크로스오버에 기반한 간단한 이동 평균 크로스오버 거래 전략이다. 아침 세션 동안 구매 및 판매 신호로 크로스오버를 관찰하기 위해 34 기간 및 89 기간 이동 평균을 사용합니다. 단기 이동 평균이 아래에서 장기 이동 평균을 넘을 때 구매 신호가 생성됩니다. 위에서 아래로 넘을 때 판매 신호가 생성됩니다.

전략 논리

이 전략의 핵심 논리는 단기 및 장기 이동 평균 사이의 교차를 거래 신호로 기반으로합니다. 구체적으로, 전략은 34 기간 및 89 기간 단기 및 장기 간 간단한 이동 평균 (SMA) 을 정의합니다. 아침 세션 (08:00 - 10:00) 동안만 이 두 SMA 사이의 교차를 관찰합니다. 단기 SMA가 아래에서 장기 SMA를 넘으면 시장은 상승 추세로 간주되며 구매 신호를 생성합니다. 단기 SMA가 위에서 장기 SMA를 넘으면 시장은 하향 추세로 간주되며 판매 신호를 생성합니다.

구매 또는 판매 신호를 수신하면 전략은 입장을 입력하고 입장에서 지정된 수의 촛불을 보유 한 후 수익을 취하는 조건을 설정합니다. 이것은 부분적 이익을 잠금하고 추가 손실을 피합니다.

이 전략은 아침 세션 동안 크로스오버 신호를 식별하는 것 뿐이라는 점에 유의해야 한다. 이 이유는 이 시간 프레임이 더 높은 거래량을 가지고 있고 트렌드 변화 신호가 더 신뢰할 수 있기 때문이다. 다른 시간 프레임은 더 큰 가격 변동을 가지고 있으며 잘못된 신호를 생성하는 것이 더 쉽기 때문이다.

이점 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 단순하고 보편적인 이동 평균 교차 규칙을 사용하여 이해하기 쉽고 초보자에게 적합합니다.

  2. 양질의 신호가 풍부할 때 아침 세션 동안 신호를 식별하는 것, 이는 다른 시간 프레임에서 잘못된 신호를 필터링합니다.

  3. 시간적 스톱 손실을 허용 하 고 부분적 이윤을 잠금 하 고 손실 위험을 줄이는 스톱 손실 조건을 가지고 있습니다

  4. 시장 조건과 개인 거래 스타일에 따라 조정 할 수있는 많은 사용자 정의 가능한 매개 변수

  5. 더 복잡한 전략을 설계하기 위해 다른 지표와 쉽게 결합 할 수 있습니다.

위험 분석

이 전략은 또한 다음과 같은 측면에서 주로 몇 가지 위험을 가지고 있습니다.

  1. 이동 평균 자체는 더 큰 지연 특성을 가지고 있으며, 단기 가격 반전 지점을 놓칠 수 있습니다.

  2. 단순한 지표에만 의존하고, 특정 시장 환경에서 실패할 수 있습니다 (트렌드 쇼크, 범위 제한 등)

  3. 부적절한 스톱 로스 포지셔닝은 불필요한 손실을 유발할 수 있습니다.

  4. 부적절한 매개 변수 설정 (가동 평균 기간, 보유 기간 등) 은 또한 전략 성과에 영향을 줄 수 있습니다.

대응 솔루션:

  1. 단기 변화에 대한 감수성을 높이기 위해 다른 주요 지표를 포함합니다.

  2. 쇼크 및 범위에 묶인 시장에서 잘못된 신호에 영향을 받지 않도록 필터링 조건을 추가합니다.

  3. 스톱 로스 로직을 최적화하고 시장 변동성에 따라 스톱 로스 범위를 동적으로 조정합니다.

  4. 최적의 매개 변수 설정을 찾기 위해 여러 매개 변수 최적화

최적화 방향

이 전략은 또한 다음과 같은 측면에서 주로 최적화 할 수있는 큰 잠재력을 가지고 있습니다.

  1. 쇼크 및 범위에 묶인 시장에서 잘못된 신호를 피하기 위해 다른 필터링 조건을 추가합니다.

  2. 더 강한 파업 신호를 식별하기 위해 추진력 지표를 포함합니다.

  3. 가장 좋은 매개 변수 조합을 찾기 위해 이동 평균 기간 매개 변수를 최적화

  4. 시장 변동성에 따라 자동으로 스톱 로스 범위를 최적화합니다.

  5. 기계 학습 기술을 기반으로 전체 전략을 자동으로 최적화하는 시도

  6. 다른 전략과 결합하여 더 복잡한 다중 전략 시스템을 설계하려는 시도

결론

일반적으로, 이 전략은 비교적 간단하고 실용적이며, 초보자도 배울 수 있습니다. 이동 평균 크로스오버 전략의 전형적인 패턴을 구현하고 위험을 제어하기 위해 스톱을 사용합니다. 그러나 더 많은 시장 조건에 대한 성능을 향상시키기 위해 추가 최적화가 이루어질 수 있습니다. 투자자는이 기본 프레임워크를 활용하여 더 고급 양적 거래 전략을 설계할 수 있습니다.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("34 89 SMA Crossover Strategy", overlay=true)

// Define the length for the SMAs
short_length = input(34, title="Short SMA Length")
long_length = input(89, title="Long SMA Length")
exit_candles = input(3, title="Exit after how many candles?")
exit_at_open = input(true, title="Exit at Open?")

// Define morning session
morning_session = input("0800-1000", "Morning Session")

// Calculate SMAs
short_sma = ta.sma(close, short_length)
long_sma = ta.sma(close, long_length)

// Function to check if current time is within specified session
in_session(session) =>
    session_start = na(time(timeframe.period, "0800-1000")) ? na : true
    session_start

// Condition for buy signal (short SMA crosses over long SMA) within specified trading hours
buy_signal = ta.crossover(short_sma, long_sma)

// Condition for sell signal (short SMA crosses under long SMA) within specified trading hours
sell_signal = ta.crossunder(short_sma, long_sma)

// Function to exit the trade after specified number of candles
var int trade_entry_bar = na
var int trade_exit_bar = na
if (buy_signal or sell_signal)
    trade_entry_bar := bar_index
if (not na(trade_entry_bar))
    trade_exit_bar := trade_entry_bar + exit_candles

// Exit condition
exit_condition = (not na(trade_exit_bar) and (exit_at_open ? bar_index + 1 >= trade_exit_bar : bar_index >= trade_exit_bar))

// Execute trades
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)
if (exit_condition)
    strategy.close("Buy")
    strategy.close("Sell")

// Plot SMAs on the chart
plot(short_sma, color=color.blue, linewidth=1)
plot(long_sma, color=color.red, linewidth=1)


더 많은