이동평균선 돌파 트레이딩 전략


생성 날짜: 2023-12-04 15:57:06 마지막으로 수정됨: 2023-12-04 15:57:06
복사: 0 클릭수: 595
avatar of ChaoZhang ChaoZhang
1
집중하다
1619
수행원

이동평균선 돌파 트레이딩 전략

개요

이 전략은 비교적 약한 지수 ((RSI), 슈퍼 트렌드 라인 ((SuperTrend) 및 평균 실제 변동량 ((ATR) 의 세 가지 지표를 통합하여 포괄적이고 실용적인 수량 거래 전략을 구축합니다.

전략 원칙

상대적으로 약한 지수 (RSI)

RSI는 가격 변화의 속도와 강도를 측정하여 시장이 과매도 또는 과매도인지 판단하는 강력한 변동 지표입니다. RSI가 과매도 영역보다 낮을 때 과매도 신호이며, 반대로 과매도 영역보다 높을 때 과매도 신호입니다.

슈퍼 트렌드 선 (SuperTrend)

슈퍼트렌드 (SuperTrend) 는 트렌드를 추적하는 지표로, 현재 트렌드 방향을 식별할 수 있다. 가격이 슈퍼트렌드 라인보다 높으면 상승 추세에 있으며, 가격이 슈퍼트렌드 라인보다 낮으면 하락 추세에 있다.

평균 실제 변동폭 (ATR)

ATR은 시장의 변동성 및 위험 수준을 측정하는 데 사용됩니다. ATR이 높을수록 시장이 더 격렬하다는 것을 나타냅니다. 반대로 상대적으로 평평합니다. 이 전략은 ATR을 사용하여 중지 손실과 수익률을 설정합니다.

전략 작동 메커니즘

“이봐요.빠른 RSI가 느린 RSI보다 낮고, 가격이 슈퍼트렌드보다 높을 때 더 많이 할 수 있습니다.

“이봐, 이봐.빠른 라인 RSI가 느린 라인 RSI보다 높을 때, 그리고 가격이 슈퍼 트렌드 라인보다 낮을 때, 코팅;

손해배상금지여러 주문을 보유할 때, 빠른 라인 RSI가 느린 라인 RSI보다 높거나 가격이 슈퍼 트렌드 라인보다 낮으면 손실로 탈퇴한다. 공표를 보유할 때, 빠른 라인 RSI가 느린 라인 RSI보다 낮거나 가격이 슈퍼 트렌드 라인보다 높으면 손실로 탈퇴한다.

전략적 이점

  1. 트렌드 추적: SuperTrend은 트렌드 방향을 명확하게 식별합니다.

  2. 동력 확인: RSI는 거래가 현재 시장 정서에 부합하도록 보장합니다.

  3. 변동성 자조: ATR에 기반한 손해는 시장 변화에 적응할 수 있다.

위험과 대책

  1. 트렌드 오조 위험: 실제 트렌드 방향과 SuperTrend이 일치하지 않을 확률이 발생하면 손실이 발생한다. 파라미터를 최적화하여 오류율을 줄일 수 있다.

  2. 스톱더미가 활성화될 위험: 스톱더미가 너무 가까이 다가오면 깨질 수 있으며, 합리적인 스톱더미 거리를 설정해야 한다.

  3. 부적절한 매개 변수 위험: RSI 매개 변수 설정이 부적절하면 거래 시점 선택에 영향을 미칩니다. 적절한 매개 변수를 결정하기 위해 충분한 재검토가 필요합니다.

최적화 제안

  1. 다른 지표와 함께 필터링 신호를 사용하여 시스템의 안정성을 향상시킵니다.

  2. 최대 회수 (maximum retraction) 를 기준으로 RSI 변수 모음을 최적화합니다.

  3. SuperTrend의 최적의 매개 변수를 찾아내는 데에 릴레이 알고리즘을 사용한다.

요약하다

이 전략은 트렌드, 동력 및 변동률 지표를 통합하여 거래 신호의 명확성, 변수 설정의 유연성, 위험 통제의 위치에 있는 정량 거래 전략을 구축합니다. 지속적인 테스트 및 최적화를 통해 안정적인 초과 수익을 얻을 수 있습니다.

전략 소스 코드
/*backtest
start: 2022-11-27 00:00:00
end: 2023-12-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI, SuperTrend, and ATR Strategy", overlay=true)

// Define input parameters
rsiLength1 = input(14, title="RSI Length 1")
rsiLength2 = input(21, title="RSI Length 2")
supertrendMultiplier = input(1.5, title="SuperTrend Multiplier")

// Calculate indicators
rsi1 = ta.rsi(close, rsiLength1)
rsi2 = ta.rsi(close, rsiLength2)
supertrend = ta.atr(14) * supertrendMultiplier

// Define trading conditions
rsiLongCondition = rsi1 > rsi2
rsiShortCondition = rsi1 < rsi2
supertrendLongCondition = close > supertrend
supertrendShortCondition = close < supertrend

// Execute trades
if (rsiLongCondition and supertrendLongCondition)
    strategy.entry("Long", strategy.long)

if (rsiShortCondition and supertrendShortCondition)
    strategy.entry("Short", strategy.short)

if (strategy.position_size > 0 and (rsiShortCondition or supertrendShortCondition))
    strategy.close("Long")

if (strategy.position_size < 0 and (rsiLongCondition or supertrendLongCondition))
    strategy.close("Short")

// Plot indicators on the chart
plot(rsi1, color=color.orange, title="RSI 1")
plot(rsi2, color=color.yellow, title="RSI 2")
plot(supertrend, color=color.blue, title="SuperTrend")