월별 및 분기 이동 평균 운영에 기초한 양상 거래 전략

저자:차오장, 날짜: 2023-12-15 11:49:06
태그:

img

전반적인 설명

이 전략은 주로 운영을 위해 월간 및 분기 라인의 이동 평균에 기반합니다. 구체적으로 20일 라인은 월간 라인과 60일 라인은 분기 라인으로 사용됩니다. 전략 신호는 두 이동 평균의 황금 십자 및 죽음의 십자에서 나옵니다. 월간 라인이 분기 라인을 넘으면 길게 이동합니다. 월간 라인이 분기 라인 아래에 떨어지면 포지션을 닫습니다. 이 전략은 중장기 운영에 적합하며 통합 및 분산 기회를 포착합니다.

전략 논리

이 전략은 월간 라인 지표로 20일 간편 이동 평균과 분기 라인 지표로 60일 간편 이동 평균을 사용합니다. 구체적인 거래 신호 생성 논리는 다음과 같습니다.

  1. 20일 경계가 60일 경계를 넘어서면, 즉 황금색 십자가가 나타났을 때,
  2. 가격이 지난 10일 동안 가장 높은 지점에서 10% 이상 하락하면 수익을 얻기 위해 긴 포지션을 닫습니다.
  3. 20일 라인이 60일 라인 아래로 넘어가면, 즉, 죽음의 교차가 발생하면 모든 포지션을 닫습니다.
  4. 손실이 10%에 도달하면 손실을 중지합니다.

중장기 트렌드를 결정하기 위해 월별 및 분기 라인의 이동 평균 크로스오버를 사용하십시오. 장기간에 걸리는 황금 십자가는 중장기 황소 시장의 시작을 나타냅니다. 단기간에 걸리는 죽음의 십자가는 중장기 및 장기간에 걸리는 곰 시장의 시작을 나타냅니다. 동시에 위험을 제어하기 위해 스톱 이익 및 스톱 손실 전략을 사용하십시오.

전략 의 장점

  1. 월별 및 분기 이동 평균을 사용하면 시장 소음을 필터링하고 중장기 동향을 포착합니다.
  2. 전략 매개 변수들은 간단하고 쉽게 구현할 수 있습니다.
  3. 리스크를 통제하기 위해 수익을 취하고 손실을 멈추는 매개 변수를 조정할 수 있습니다.

위험 분석

  1. 트렌드 반전 포인트를 결정할 수 없습니다. 손실 위험이 있습니다.
  2. 월별 및 분기 이동 평균은 지연 효과를 가지고 있으며, 단기 기회를 놓칠 수 있습니다.
  3. 너무 빨리 멈추지 않도록 적절한 스톱 손실 지점을 선택해야 합니다.

해결책:

  1. 적시에 중단하기 위해 후속 스톱 손실을 채택하십시오.
  2. 신호를 필터링하고 트렌드를 결정하기 위해 다른 지표를 포함합니다.
  3. 전략 최적화를 위해 이동 평균 매개 변수를 조정합니다.

전략 최적화의 방향

  1. 가짜 브레이크를 피하기 위해 KD 지표 등 필터링을 위한 다른 지표를 추가합니다.
  2. 가장 좋은 매개 변수 조합을 찾기 위해 이동 평균 매개 변수를 최적화합니다.
  3. 더 많은 수익을 얻기 위해 수익을 추출하는 것과 같은 추가 수익을 취하는 전략을 포함하십시오.

요약

이 전략은 매월 및 분기 이동 평균의 장점을 체계적으로 활용하여 이동 평균의 황금 십자가 및 죽음의 십자가를 통해 중장기 트렌드 방향을 판단합니다. 동시에 합리적인 스톱 손실 및 수익 메커니즘을 구성하여 위험을 제어합니다. 이 전략을 최적화 할 수있는 여지가 여전히 많습니다. 추가 테스트 및 최적화 가치가 있습니다.


/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("均線操作-月季", overlay=true, initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30)
sma20 = sma(close, 20)
sma60 = sma(close, 60)

plot(sma20, title="月線", color=color.purple,linewidth=2)
plot(sma60, title="季線", color=color.yellow,linewidth=2)

backtest_year = input(title="backtest_year",type=input.integer,defval=2020)
backtest_month = input(title="backtest_month",type=input.integer,defval=10)
backtest_date = input(title="backtest_date",type=input.integer,defval=1)
backtest_start_time = timestamp(backtest_year,backtest_month,backtest_date,0,0,0)

to_long = sma20 > sma60  and close > highest(10)*0.9 // 黃金交叉
to_close = sma20 < sma60 // 死亡交叉
to_exit = close < highest(10)*0.9 //股價嚴重回檔
to_stop = close < 0.9*strategy.position_avg_price 

// to_long = crossover(sma20, sma60)   // 黃金交叉
// to_close = crossunder(sma20, sma60) // 死亡交叉

//plotchar(to_long, char="B", text="買", color=color.red, location=location.belowbar)
//plotchar(to_close, char="S", text="賣", color=color.green, location=location.abovebar)
//strategy.close("open long",when = tslide, comment="多單滑價7%出場")
if true
    strategy.entry("golden", strategy.long,  when=to_long,comment="多單入場")
    strategy.close("golden",  when=to_exit,comment="多單滑價7%出場")
    strategy.close("golden",  when=to_close,comment="月線季線死亡交叉")
    strategy.close("golden",  when=to_stop,comment="虧損10%強迫停損")


더 많은