이동평균에 기초한 전략을 따르는 경향

저자:차오장, 날짜: 2023-12-20 14:23:49
태그:

img

전반적인 설명

이 전략은 자동 엔트리 및 스톱 로스의 가격 트렌드를 결정하기 위해 마크 미네르비니의 주식 선택 템플릿과 이동 평균 지표를 사용합니다. 주로 주식 가격이 상승 추세에 있는지 여부를 판단하고 구매 신호를 생성하기 위해 주요 이동 평균을 통과했는지 여부를 판단합니다. 동시에 전략은 가격이 다시 떨어지면 손실을 적극적으로 중지하기 위해 스톱 로스 라인을 설정합니다.

전략 원칙

이 전략은 주로 다음 조건을 판단하고 동시에 충족되면 구매 신호를 생성합니다.

  1. 현재 주식 가격은 150일 평균과 200일 평균보다 높습니다.
  2. 150일 이동 평균은 200일 이동 평균보다 높습니다.
  3. 200일 이동평균은 적어도 1개월 동안 상승 추세를 보이고 있습니다.
  4. 50일 이동평균은 150일 이동평균과 200일 이동평균 모두보다 높습니다.
  5. 현재 주식 가격은 50일 이동평균보다 높습니다.
  6. 현재 주가는 52주 만에 가장 낮은 가격보다 25% 이상 높습니다.
  7. 현재 주가는 52주기 최고점의 25% 이상입니다.

위의 조건이 충족되면 전략은 주가가 상승 추세라고 판단하고 구매 신호를 생성합니다.

또한 전략은 스톱 로스 라인을 설정합니다. 주가가 최고점에서 5%로 떨어지거나 10% 상승하면 손실을 멈추거나 이익을 취합니다.

이점 분석

  1. 수익성을 높이기 위해 마크 미네르비니의 주식 선택 아이디어를 사용하세요.
  2. 트렌드를 확인하고 구매 포인트를 놓치지 않도록 여러 이동 평균을 사용하십시오.
  3. 엄청난 손실을 피하기 위해 손해를 막는 메커니즘을 설정합니다.

위험 분석

  1. 주식 가격은 단기적으로 조정될 수 있고, 스톱 로스를 유발할 수 있습니다.
  2. 이동 평균은 트렌드를 완전히 결정할 수 없으며 잘못된 파열이 발생할 수 있습니다.
  3. 스톱 로즈와 이윤 취득 비율은 완벽하지 않으며, 이윤을 취하거나 손실을 조기에 늘릴 수 있습니다.

최적화

  1. 서로 다른 매개 변수를 가진 이동 평균의 조합을 테스트합니다.
  2. 입력 시기를 결정하기 위해 다른 기술적 지표를 추가합니다.
  3. 스톱 로스를 최적화하고 수익률을 취합니다.

요약

이 전략은 전체적으로 트렌드 트레이딩의 아이디어를 따르고 있으며, 주식 가격의 상승 추세가 확인되면 구매 신호를 생성합니다. 동시에 위험을 제어하기 위해 스톱 로스 메커니즘이 설정됩니다. 다양한 세부 매개 변수를 최적화함으로써 전략의 안정성과 수익성이 더욱 향상 될 수 있습니다. 그러나 어떤 전략도 시장 위험을 완전히 피할 수 없습니다. 따라서 투자자는 신중하게 다루어야합니다.


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

//@version=4
strategy(title="Pure Mark Minervini 10%TP 5%CL", pyramiding = 0, commission_type=strategy.commission.percent, commission_value=0.08, overlay=true)

ma50 = sma(close,50)
ma150 = sma(close,150)
ma200 = sma(close,200)
ma200_22 = ma200[22]

high_loopback = input(260, "High Lookback Length")
low_loopback = input(260, "Low Lookback Length")
highest_price = highest(high, high_loopback)
lowest_price = lowest(low, low_loopback)
above52lo = ((close/lowest_price)-1)*100
below52hi = (1-(close/highest_price))*100
ep = strategy.position_avg_price

trigger = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
var label maLabel = na
if (trigger)
    yLocation = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
         yloc.abovebar :
         yloc.belowbar

    // labelStyle = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
    //      label.style_labeldown :
    //      label.style_labelup

buy = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
sell = close>ep*1.1 or close<ep*0.95

strategy.entry("TF", strategy.long, when = buy)
strategy.close("TF", when = sell)

더 많은