이중 이동 평균 압력 콜백 전략


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

이중 이동 평균 압력 콜백 전략

개요

쌍평평선 압력 회귀 전략은 매우 간단한 주식 지수 피난 전략이다. 그것은 단지 다단계 거래만 하고, 장기적인 추세가 상승할 때, 가격이 압력 지점에 가까워질 때 포지션을 세우고, 시장이 압력 지점의 대을 뚫고 나서야 입시를 피하여 더 나은 구매 가격을 잠금한다.

전략 원칙

이 전략은 장기 200일 이동 평균과 단기 10일 이동 평균을 동시에 사용한다. 종결 가격이 200일선 즉 장기적인 상승 추세보다 높을 때만 포지션을 열 수 있다. 종결 가격이 10일선보다 낮을 때 주식 지수가 압력 영역에 있는 것으로 간주되며, 이 때 RSI 지표가 30보다 작으면 주가가 부진할 수 있음을 나타내고, 이 때 더 많은 포지션을 열 수 있다.

일단 포지션을 열면 5%의 스톱로스와 10%의 스톱스을 설정하여 거래에서 탈퇴한다. 또한, 가격이 10일선을 상향으로 돌파할 때에도 적극적으로 스톱스을 설정한다.

우위 분석

쌍평평선 압력 회귀 전략의 가장 큰 장점은 트렌드를 따르는 능력이 뛰어나다는 것입니다. 긴 짧은 쌍평선을 채택함으로써 장기적인 트렌드의 방향을 효과적으로 판단 할 수 있습니다. 장기적인 트렌드가 올라갈 때만 다단위 포지션을 열 것을 고려합니다. 이것은 맹목적으로 과잉하는 위험을 피할 수 있습니다.

둘째, 이 전략의 진입 시기는 매우 정밀하다. 이 전략은 평평선 영역에서 오는 압력을 이용하고, 과매매 과매매 지표 판단과 결합하여, 반발의 최적의 시기를 선택한다. 이것은 진입 가격을 비교적 우월하게 만들어 더 큰 수익 공간을 얻을 수 있다.

위험 분석

쌍평선 압력 회귀 전략의 가장 큰 위험은 여러 개의 작은 손실을 유발할 수 있다는 것입니다. 압력 영역에서 가격이 반복적으로 건너뛰면 계속적으로 중지 손실을 유발할 수 있습니다. 이 경우 여러 개의 작은 손실의 위험이 있습니다.

또한, 장기적인 추세를 잘못 판단하여 경기 후 압력이 크게 증가하는 경우, 정지 손실이 더 커질 수 있으며, 더 큰 위험을 초래할 수 있습니다.

위험을 통제하기 위해, 적절히 휴면한 스톱로드를 사용하거나, 포지션 주기를 늘릴 수 있다. 또한, 장기적인 경향을 신중하게 판단하고, 잘못된 다중 포지션으로 인한 위험을 피해야 한다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 더 많은 요소를 추가하여 장기적인 추세를 판단한다. 단순한 이동 평균 이외에, 기본 요소, 거래량 변화와 같은 더 많은 지표를 도입하여 장기적인 추세를 더 정확하게 판단할 수 있다.

  2. 진입 시기를 최적화한다. 압력 지점을 돌파하기 전에, 양을 크게 증가시킬 수 있는 특성이 있는지 판단할 수 있다. 이것은 반발의 강도와 Amplitude를 판단하는데 도움이 된다.

  3. 정지 방법을 최적화한다. 기존의 정지 방법은 수동적이며, 상승세를 지속적으로 차단할 수 없다. 트레일 스톱과 같은 더 역동적인 정지 방법을 연구할 수 있으며, 위험을 통제할 수 있다는 전제하에 더 많은 상승세를 얻을 수 있다.

  4. 포지션 관리를 최적화한다. 포지션이 대시장 변동의 규모에 따라 실시간으로 조정될 수 있다. 이는 이익과 손실의 변동성을 줄이고, 보다 안정적인 수익 곡선을 얻을 수 있다.

요약하다

쌍평선 압력 회귀 전략은 간단하고 실용적인 피난 전략이다. 그것은 장기 동향을 효과적으로 추적하고, 우수한 반발 시기를 선택하여 포지션을 개시한다. 손실과 중지를 통해 수익을 잠금하고 위험을 피한다. 이 전략의 이론적 기반은 간단하며, 대부분의 사람들이 사용할 수 있으며, 좋은 피난 전략 선택이다.

진입 시점 선택, 동적 정지 방법, 위치 관리 등의 최적화로 이 전략은 개선 가능성이 매우 높으며, 더 많은 연구를 할 가치가 있다.

전략 소스 코드
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
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/
// © tsujimoto0403

//@version=5
strategy("simple pull back", overlay=true,default_qty_type=strategy.percent_of_equity,
     default_qty_value=100)

//input value 
malongperiod=input.int(200,"長期移動平均BASE200/period of long term sma",group = "パラメータ")
mashortperiod=input.int(10,"長期移動平均BASE10/period of short term sma",group = "パラメータ")
stoprate=input.int(5,title = "損切の割合%/stoploss percentages",group = "パラメータ")
profit=input.int(20,title = "利食いの割合%/take profit percentages",group = "パラメータ")
startday=input(title="バックテストを始める日/start trade day", defval=timestamp("01 Jan 2000 13:30 +0000"), group="期間")
endday=input(title="バックテスを終わる日/finish date day", defval=timestamp("1 Jan 2099 19:30 +0000"), group="期間")


//polt indicators that we use 
malong=ta.sma(close,malongperiod)
mashort=ta.sma(close,mashortperiod)

plot(malong,color=color.aqua,linewidth = 2)
plot(mashort,color=color.yellow,linewidth = 2)

//date range 
datefilter = true

//open conditions
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)
    
//sell conditions 
strategy.exit(id="cut",from_entry="long",stop=(1-0.01*stoprate)*strategy.position_avg_price,limit=(1+0.01*profit)*strategy.position_avg_price)


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