골든 비율 이동 평균 거래 전략

저자:차오장, 날짜: 2024-01-05 14:21:52
태그:

img

전반적인 설명

골든 비율 이동 평균 거래 전략은 단기 및 장기 이동 평균의 황금 십자가를 거래 신호로 사용하려고 시도하는 양적 거래 전략입니다. 이 전략은 또한 위험을 제어하기 위해 지역 최고 수준에서 포지션을 개척하는 것을 피하기 위해 RSI 지표를 통합합니다.

전략 논리

이 전략은 주로 두 개의 이동 평균을 기반으로 합니다. 200일 MA는 장기 MA와 10일 MA는 단기 MA입니다. 단기 MA가 장기 MA를 넘을 때 구매 신호가 생성됩니다. 단기 MA가 장기 MA를 넘을 때 판매 신호가 생성됩니다. 이것은 유명한 골든 크로스입니다. 이 전략은 또한 RSI 지표를 통합하여 전략은 RSI가 30 미만일 때 과소매 영역에서 긴 포지션을 열 수 있습니다.

특히, 다음 조건이 충족되면 긴 포지션이 열릴 것입니다.

  1. 10일 MA가 200일 MA를 넘어선 경우
  2. 현재 위치가 없습니다.
  3. RSI 30 이하

포지션 종료 조건은 다음과 같습니다.

  1. 스톱 로스 (Stop Loss): 가격이 개시 가격의 일정 비율 (조정 가능) 이하로 떨어지면 스톱 로스 (Stop Loss) 를 합니다.
  2. 이윤을 취하: 가격이 특정 비율을 초과할 때 이윤을 취하 (조정 가능)

이점 분석

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

  1. 그것은 고전적이고 효과적인 기술 지표 거래 신호인 이동 평균의 황금 십자 신호를 사용합니다.
  2. RSI를 포함하면 높은 가격으로 구매하는 것을 피할 수 있습니다. 이는 어느 정도 위험을 조절할 수 있습니다.
  3. 손해를 멈추고 수익을 취하는 설정으로, 그것은 이익을 잠금하고 위험을 피할 수 있습니다

위험 분석

이 전략은 또한 몇 가지 위험을 안고 있습니다.

  1. 이동 평균 전략은 잘못된 신호를 생성하는 경향이 있습니다
  2. RSI는 일부 강한 트렌드 시장에서 실패 할 수 있습니다.
  3. 스톱 로스가 너무 작게 설정되면 극히 단기 거래와 빈번한 스톱 로스 활성화로 이어질 수 있습니다.

이러한 위험을 줄이기 위해 다음과 같은 최적화 조치를 고려할 수 있습니다.

  1. MA 매개 변수를 조정하거나 더 많은 MA를 추가합니다.
  2. RSI 신호를 확인하기 위해 다른 지표를 포함합니다.
  3. 중지 손실 및 이익 매개 변수 설정을 조정

최적화 방향

전략의 더 많은 최적화를 위한 여지가 있습니다.

  1. 잘못된 신호를 피하기 위해 더 많은 지표 필터를 증가
  2. 이동 평균 매개 변수를 최적화
  3. 동적 스톱을 설정하기 위해 변동성 지표를 포함
  4. 시장 조건을 판단하기 위해 기계 학습 모델을 추가합니다.
  5. 알고리즘을 사용하여 자동으로 매개 변수를 최적화합니다.

결론

요약하자면, 황금 비율 이동 평균 거래 전략은 트렌드를 따르는 전략으로 간단하고 효과적입니다. 클래식 MA 크로스오버 신호를 사용하여 거래 기회를 생성하고 위험을 제어하기 위해 정지를 가지고 있습니다. 전략은 더 나은 전략 성능을 얻기 위해 멀티 지표 조합, 매개 변수 최적화, 기계 학습 등을 통해 더욱 향상 될 수 있습니다.


/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
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/
// © tsujimoto0403

//@version=5
strategy("聖杯", overlay=true,default_qty_type=strategy.percent_of_equity,
     default_qty_value=100)

//ユーザーインプットの準備
malongperiod=input.int(200,"長期移動平均BASE200",group = "パラメータ")
mashortperiod=input.int(10,"長期移動平均BASE10",group = "パラメータ")
stop=input.int(20,title = "損切の割合%",group = "パラメータ")
profit=input.int(5,title = "利食いの割合%",group = "パラメータ")
startday=input(title="バックテストを始める日", defval=timestamp("01 Jan 2018 13:30 +0000"), group="期間")
endday=input(title="バックテスを終わる日", defval=timestamp("1 Jan 2099 19:30 +0000"), group="期間")

//使う変数
var float stopprice=0
var float takeprofit=0

//とりあえず使うインジケーターをプロット
malong=ta.sma(close,malongperiod)
mashort=ta.sma(close,mashortperiod)


plot(malong,color=color.aqua,linewidth = 2)
plot(mashort,color=color.yellow,linewidth = 2)
bgcolor(ta.rsi(close,3)<30?color.rgb(229, 86, 86, 48):na)

//期間条件
datefilter = true

//エントリー条件
if close>malong and close<mashort and strategy.position_size == 0 and datefilter and ta.rsi(close,3)<30
    strategy.entry(id="long", direction=strategy.long)

if strategy.position_size>0 
    strategy.exit(id="long",stop=(1-0.01*stop)*strategy.position_avg_price)

//売り
if  strategy.position_size > 0 and close>mashort and close<low[1] 
    strategy.close(id ="long")




더 많은