이중 이동평균 파업 전략

저자:차오장, 날짜: 2024-02-04 16:06:46
태그:

img

전반적인 설명

이중 이동 평균 브레이크아웃 전략은 양적 거래 전략을 따르는 전형적인 트렌드이다. 이 전략은 다양한 기간의 간단한 이동 평균을 계산하고 포지션을 결정하기 위해 가격을 깨는지 확인하여 거래 신호를 생성합니다. 이 전략은 20 일 및 60 일 이동 평균을 거래 신호로 사용합니다.

전략 논리

이중 주식 투자 전략의 핵심 논리는다른 기간의 이동 평균을 사용하여 가격 추세를 파악하고 가격이 이동 평균을 깨면 거래 신호를 생성합니다..

특히, 이 전략은 20일 및 60일 간단한 이동 평균을 사용한다. 이 두 이동 평균은 각각 단기 및 중장기 트렌드를 포착하는 도구로 볼 수 있다. 단기 가격이 중장기 가격을 뚫을 때, 시장이 상승 추세에 있으며 따라서 길게 가야한다는 신호를 준다. 단기 가격이 중장기 가격 이하로 떨어지면, 시장이 하락 추세에 있다는 신호를 주고 따라서 포지션을 줄여야 한다.

코드는ta.crossover그리고ta.crossunder가격이 이동 평균을 통과했거나 그 이하로 떨어졌는지 확인하기 위해. 브레이크오웃이 발생하면 긴 또는 감소 포지션의 거래 신호가 그에 따라 발산됩니다.

장점

이중 이동 평균 파업 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 이 개념은 간단하고 이해하기 쉽고 구현하기 쉽습니다.
  2. 시장 트렌드를 효과적으로 추적하고 노이즈 간섭을 피할 수 있습니다.
  3. 몇 가지 전략 매개 변수가 있고 최적화하기 쉽습니다.
  4. 유연한 이동 평균 기간을 선택하여 시장 감수성을 조정합니다.

위험성

이 전략에는 몇 가지 위험도 있습니다.

  1. 시장이 변동할 때 휘파람에 취약합니다. 보유 기간을 늘림으로써 완화 될 수 있습니다.
  2. 빠른 시장 전환을 감지하는 데 효과적이지 않습니다. 필터로 다른 지표를 추가 할 수 있습니다.
  3. 이동 평균은 본질적으로 뒤쳐져 있으며 가격 변화를 일찍 알릴 수 없습니다. 기간을 단축하는 것이 도움이 될 수 있습니다.

개선 영역

이 전략은 다음 차원에서 강화될 수 있습니다.

  1. 가장 좋은 매개 변수 집합을 찾기 위해 이동 평균 기간을 최적화합니다.
  2. 잘못된 신호를 필터링하기 위해 다른 지표를 추가합니다. 예를 들어 MACD, KD 등
  3. 스톱 손실 논리를 추가합니다.
  4. 안정성을 위한 다중 시간 프레임 분석을 포함합니다.

요약

이중 이동 평균 브레이크아웃 전략은 트렌드를 따르는 간단하고 실용적인 전략입니다. 단기 시장 소음을 피하면서 중장기 트렌드를 효과적으로 파악할 수 있습니다. 또한 이해하기 쉬운 논리와 제한된 매개 변수는 양적 거래에 매우 적합합니다. 물론 매개 변수 조정, 신호 필터링 및 더 안정적이고 수익성있게 만들기 위해 스톱 로스와 같은 개선의 여지가 있습니다.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 4h
basePeriod: 15m
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/
// © Astorhsu

//@version=5
strategy("Astor SMA20/60", overlay=true)
backtest_year = input(2018, title='backtest_year') //回測開始年分
backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份
backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31)  //回測開始日期
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00)  //回測開始的時間函數

//Indicators
sma10 = ta.sma(close,10)
sma20 = ta.sma(close,20)
sma60 = ta.sma(close,60)
plot(sma20, color=color.green, title="sma(20)")
plot(sma60, color=color.red, title="sma(60)")

//進場條件
// trend1 = sma60 > sma20 //假設目前趨勢為60>20
longCondition = ta.crossover(close, ta.sma(close, 20))
if (longCondition) 
    strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多")


shortCondition = ta.crossunder(close, ta.sma(close, 20))
if (shortCondition) 
    strategy.close("open long20",comment="跌破m20平倉", qty=1)     
    
longCondition1 = ta.crossover(close, ta.sma(close, 60))
if (longCondition1) 
    strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多")


shortCondition1 = ta.crossunder(close, ta.sma(close, 60))
if (shortCondition1) 
    strategy.close("open long60",comment="跌破m60平倉", qty=1)     
    
// longCondition2 = ta.crossover(close, ta.sma(close, 10))
// if (longCondition2) 
//     strategy.entry("open long10", strategy.long, qty=1, comment="站上m10做多")


// shortCondition2 = ta.crossunder(close, ta.sma(close, 10))
// if (shortCondition2)
//     strategy.close("open long10",comment="跌破m10平倉", qty=1)   


더 많은