단기 및 장기 이동평균선의 교차를 기반으로 한 전략


생성 날짜: 2024-02-22 15:36:49 마지막으로 수정됨: 2024-02-22 15:36:49
복사: 0 클릭수: 649
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

단기 및 장기 이동평균선의 교차를 기반으로 한 전략

개요

이 전략은 단기 및 장기 이동 평균의 교차에 기반한 간단한 이동 평균을 가로지르는 거래 전략이다. 34주기 및 89주기 이동 평균을 사용하여, 아침 거래 시간 동안 그들의 교차를 구매 및 판매 신호로 관찰한다. 단기 이동 평균이 하향에서 장기 이동 평균을 돌파 할 때 구매 신호를 생성하고, 상향에서 하향으로 돌파 할 때 판매 신호를 생성한다.

전략 원칙

이 전략의 핵심 논리는 거래 신호로 단기 및 장기 이동 평균의 교차를 기반으로합니다. 구체적으로, 전략은 34주기 및 89주기의 단기 및 장기 간단한 이동 평균을 정의합니다. SMA는 오전 거래 시간 동안만 관찰됩니다.

구매 또는 판매 신호를 수신한 후, 전략은 입장에 들어가며, 입장을 종료하는 조건을 설정합니다. 즉, 입장이 지명된 루트 K 라인 수를 보유한 후 적극적으로 손실을 중지합니다. 이렇게하면 손실이 더 확장되는 것을 방지하기 위해 수익의 일부를 잠금 할 수 있습니다.

주의해야 할 점은, 전략은 오전 상장 시간대에만 교차 신호를 인식한다는 것입니다. 이것은 시장 거래량이 더 많고 트렌드 전환 신호의 신뢰성이 더 높기 때문입니다. 다른 시간대에는 시장의 변동성이 더 많고 잘못된 신호가 발생할 수 있습니다.

우위 분석

이 전략에는 다음과 같은 장점이 있습니다.

  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)