리소스 로딩... 로딩...

전략에 따른 다중 지표 트렌드

저자:차오장, 날짜: 2024-04-28 14:25:12
태그:MACDMARSIATR

img

전반적인 설명

잔코크 전략 v3이라는 전략은 이동 평균 (MA), 이동 평균 컨버전스 디버전스 (MACD), 상대 강도 지수 (RSI), 평균 진정한 범위 (ATR) 를 기반으로 한 다중 지표 트렌드 다음 전략이다. 이 전략의 주요 아이디어는 시장 추세를 결정하고 트렌드 방향으로 거래를하기 위해 여러 지표의 조합을 사용하는 것입니다. 또한 전략은 역동적 인 스톱 로스 및 수익 취득 방법뿐만 아니라 ATR 기반 리스크 관리를 사용하여 위험을 제어하고 수익을 최적화합니다.

전략 원칙

이 전략은 다음 네 가지 지표를 사용하여 시장 동향을 결정합니다.

  1. 이동 평균 (MA): 단기 (9 기간) 및 장기 (21 기간) 이동 평균을 계산합니다. 단기 MA가 장기 MA를 넘으면 상승 추세를 나타냅니다. 단기 MA가 장기 MA를 넘으면 하락 추세를 나타냅니다.
  2. 이동 평균 컨버전스 디버전스 (MACD): MACD 라인과 신호 라인을 계산합니다. MACD 라인이 신호 라인의 위를 넘을 때 상승 추세를 나타냅니다. MACD 라인이 신호 라인의 아래를 넘을 때 하락 추세를 나타냅니다.
  3. 상대적 강도 지수 (RSI): 14 기간의 RSI를 계산합니다. RSI가 70 이상이면 시장이 과잉 매입 될 수 있음을 암시합니다. RSI가 30 이하라면 시장이 과잉 판매 될 수 있음을 암시합니다.
  4. 평균 실제 범위 (ATR): 시장 변동성을 측정하고 스톱 로스 및 영업점치를 설정하기 위해 14 기간 ATR을 계산합니다.

전략의 거래 논리는 다음과 같습니다.

  • 단기 MA가 장기 MA를 넘어서면 MACD 라인이 신호 라인을 넘어서면 거래 부피가 이동 평균보다 커지고 변동성이 임계 이하일 때 긴 포지션을 입력합니다.
  • 단기 MA가 장기 MA보다 낮을 때, MACD 라인이 신호 라인보다 낮을 때, 거래 부피가 이동 평균보다 높고 변동성이 임계 이하일 때, 짧은 포지션을 입력합니다.
  • 스톱 러스 포인트와 트레이프 포인트는 ATR을 기반으로 동적으로 설정되며, 스톱 러스 포인트는 ATR의 2배, 트레이프 포인트는 ATR의 4배입니다.
  • ATR에 기반한 선택적 트레일 스톱을 사용할 수 있으며, 트레일 스톱 포인트는 ATR의 2.5배입니다.

전략적 장점

  1. 트렌드 규정을 위한 다중 지표 조합, 트렌드 식별의 정확성을 향상
  2. 동적 스톱 로스 및 취리 수익, 시장 변동성에 따라 적응적으로 조정, 더 나은 위험 통제 및 수익 최적화
  3. 유동성이 낮고 유동성이 높은 기간 동안 거래를 피하기 위해 부피 및 변동성 필터를 도입하여 잘못된 신호를 줄입니다.
  4. 트렌드가 지속될 때 더 많은 수익을 유지하기 위해 선택적인 후속 정지.

전략 위험

  1. 시장 통합이나 트렌드 반전 시에는 잘못된 신호가 발생하여 손실이 발생할 수 있습니다.
  2. 매개 변수 설정은 전략 성과에 상당한 영향을 미치며 다른 시장과 자산에 최적화되어야 합니다.
  3. 매개 변수들을 과도하게 최적화하면 실제 거래에서 과도한 적합성과 낮은 성능을 초래할 수 있습니다.
  4. 이 전략은 비정상적인 시장 변동이나 블랙 스완 사건으로 인해 상당한 손실을 입을 수 있습니다.

전략 최적화 방향

  1. 추세 식별 정확도를 더욱 향상시키기 위해 볼링거 밴드, 스토카스틱 오시레이터 등과 같은 더 많은 지표를 도입하십시오.
  2. 최적의 매개 변수 조합을 찾기 위해 유전 알고리즘이나 그리드 검색과 같은 방법을 사용하여 매개 변수 선택을 최적화하십시오.
  3. 전략의 적응성을 향상시키기 위해 다른 시장과 자산에 대한 다른 매개 변수와 규칙을 설정합니다.
  4. 트렌드 강도와 계정 리스크에 따라 포지션 크기를 동적으로 조정하는 포지션 사이징을 포함합니다.
  5. 최대 유출 한도를 설정하고, 거래 중지 또는 최대 유출을 달성 할 때 지점 크기를 줄여 위험을 제어합니다.

요약

Jancok Strategycs v3는 여러 지표의 조합에 기반한 트렌드 다음 전략으로, 시장 트렌드를 결정하기 위해 이동 평균, MACD, RSI 및 ATR을 사용하여, 그리고 위험을 제어하고 수익을 최적화하기 위해 동적 스톱 로스 및 테이크프로프트, 트레일링 스톱과 같은 위험 관리 기술을 사용합니다. 이 전략의 장점은 트렌드 식별의 높은 정확성, 유연한 위험 관리 및 강력한 적응력입니다. 그러나 잘못된 신호, 매개 변수 설정에 대한 민감성 및 블랙 스완 이벤트와 같은 특정 위험도 포함합니다. 미래에 더 많은 지표를 도입하고 매개 변수 선택을 최적화하고 위치 사이징을 통합하고 최대 마감 한도를 설정함으로써 전략의 성능과 안정성을 더욱 향상시킬 수 있습니다.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © financialAccou42381

//@version=5
strategy("Jancok Strategycs v3", overlay=true, initial_capital=100, currency="USD")

// Inputs
short_ma_length = input.int(9, title="Short MA Length", minval=1)
long_ma_length = input.int(21, title="Long MA Length", minval=1)
atr_multiplier_for_sl = input.float(2, title="ATR Multiplier for Stop Loss", minval=1.0)
atr_multiplier_for_tp = input.float(4, title="ATR Multiplier for Take Profit", minval=1.0)
volume_ma_length = input.int(20, title="Volume MA Length", minval=1)
volatility_threshold = input.float(1.5, title="Volatility Threshold", minval=0.1, step=0.1)
use_trailing_stop = input.bool(false, title="Use Trailing Stop")
trailing_stop_atr_multiplier = input.float(2.5, title="Trailing Stop ATR Multiplier", minval=1.0)

// Calculating indicators
short_ma = ta.sma(close, short_ma_length)
long_ma = ta.sma(close, long_ma_length)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
atr = ta.atr(14)
volume_ma = ta.sma(volume, volume_ma_length)
volatility = atr / close

// Plotting indicators
plot(short_ma, color=color.red)
plot(long_ma, color=color.blue)

// Defining entry conditions with added indicators and filters
long_condition = ta.crossover(short_ma, long_ma) and (macdLine > signalLine) and (volume > volume_ma) and (volatility < volatility_threshold)
short_condition = ta.crossunder(short_ma, long_ma) and (macdLine < signalLine) and (volume > volume_ma) and (volatility < volatility_threshold)

// Entering trades with dynamic stop loss and take profit based on ATR
if (long_condition)
    strategy.entry("Long", strategy.long)
    if use_trailing_stop
        strategy.exit("Exit Long", "Long", trail_points=atr * trailing_stop_atr_multiplier, trail_offset=atr * 0.5)
    else
        strategy.exit("Exit Long", "Long", loss=atr * atr_multiplier_for_sl, profit=atr * atr_multiplier_for_tp)

if (short_condition)
    strategy.entry("Short", strategy.short)
    if use_trailing_stop
        strategy.exit("Exit Short", "Short", trail_points=atr * trailing_stop_atr_multiplier, trail_offset=atr * 0.5)
    else
        strategy.exit("Exit Short", "Short", loss=atr * atr_multiplier_for_sl, profit=atr * atr_multiplier_for_tp)

관련

더 많은