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

MACD와 RSI 결합된 장기 거래 전략

저자:차오장, 날짜: 2024-04-29 14:31:53
태그:MACDRSI

img

전반적인 설명

스크립트 전문가 스네하시쉬가 능숙하게 제작한 이 전략은 시장에서 최적의 진입점과 출구점을 식별하기 위해 이동 평균 컨버전스 디버전스 (MACD) 와 상대적 강도 지수 (RSI) 의 강점을 혁신적으로 결합합니다. 이 접근법은 MACD 라인이 신호선을 넘을 때 정확히 긴 거래를하기 위해 세심하게 설계되었습니다.

포지션을 닫는 경우 전략은 출구 신호를 표시하기 위해 두 가지 중요한 조건을 사용합니다. 첫째, MACD 히스토그램이 0보다 높고 MACD 라인이 신호 라인 아래에 넘어가면 거래가 종료되며 상승 동력의 잠재적 인 반전을 나타냅니다. 둘째, RSI가 5 촛불 전에 과잉 구매 상태가 발견되면 출구 신호가 생성되며 시장이 정점에 도달하고 침체로 향할 수 있음을 시사합니다.

스네하시쉬의 방법은 이러한 기술적 지표를 우아하게 결합하여 특정 조건 하에서 MACD 및 RSI에서 확인을 기다리는 소리를 필터링하여 성공 가능성이 높은 거래를 목표로합니다. 이 전략적 조합은 입구 및 출구 지점을 최적화하여 시장 변동성과 관련된 위험을 완화하기 위해 지표의 강점을 활용하여 거래의 수익성을 향상시키는 것을 목표로합니다.

전략 원칙

이 전략의 핵심 원칙은 시장 전환점을 더 정확하게 포착하기 위해 MACD 및 RSI 기술 지표를 결합하는 것입니다. 이 전략은 RSI가 최근 촛불에서 시장이 과판되었음을 보여주면 긴 거래에 들어가고, 그 다음 MACD 라인이 신호 라인의 위를 넘어서게됩니다. 이 조합은 가격 움직임이 잠재적 인 반전의 초기 징후를 보여주자마자 전략이 포지션을 여는 것을 보장합니다.

포지션을 닫는 경우, 전략은 MACD와 RSI에 의해 표시되는 잠재적 인 트렌드 역전 신호에 초점을 맞추고 있습니다. MACD 히스토그램이 0보다 높고 MACD 라인이 신호 라인 아래에 넘어가면 전략은 거래를 종료합니다. 또한, RSI가 이전에 시장이 과소 구매 수준에 도달하는 것을 보여준 경우 또한 포지션을 닫습니다. 이러한 조건은 함께 전략이 가격이 정점에 도달하고 상승 동력이 감소 할 때 긴 포지션을 닫는 것을 의미합니다.

전체적으로, MACD와 RSI가 제공하는 신호를 결합함으로써 전략은 트렌드가 초기 반전 징후를 보이는 즉시 포지션을 열고 트렌드가 끝날 때 포지션을 닫는 것을 목표로 하며, 따라서 전체 거래 성과를 향상시키기 위해 입점 및 출구 지점을 최적화합니다.

전략적 장점

  1. MACD와 RSI 지표를 결합함으로써 전략은 시장 전환점을 더 정확하게 파악하고 입시 및 출시 시기를 최적화 할 수 있습니다.
  2. RSI는 과잉 판매 및 과잉 구매 시장 조건을 확인하는 데 사용됩니다. 신호선을 가로 지르는 MACD 라인은 입점 신호를 제공하며 두 지표의 조합은 가격 움직임에 대한 더 신뢰할 수있는 예측자입니다.
  3. 포지션에 들어가기 전에 RSI가 과잉 판매 상태를 확인하도록 기다리는 것은 하락 추세 중 조기 입력을 피하는 데 도움이됩니다.
  4. MACD 히스토그램이 0보다 높고 MACD 라인이 신호 라인 아래를 넘을 때 종료하면 상승 추세의 끝으로 긴 포지션을 적시에 종료하여 잠재적인 인회 위험을 피할 수 있습니다.
  5. 유연한 매개 변수 설정, 예를 들어 RSI의 과잉 구매 및 과잉 판매 기준 및 MACD의 빠른 및 느린 라인 기간, 사용자는 자신의 위험 선호도와 시장 특성에 따라 전략을 최적화 할 수 있습니다.

전략 위험

  1. 불안정한 시장에서 MACD 및 RSI 신호가 자주 발생하면 거래가 과잉되고 거래 비용이 증가하고 잠재적 인 손실이 발생할 수 있습니다.
  2. 시장 트렌드가 강하다면, RSI는 장기간 과잉 매입 구역에 머물러 있어 전략이 상승세를 놓칠 수 있습니다.
  3. 이 전략은 주로 지체된 지표에 의존하고 있으며, 이는 급격한 시장 변동에 따라 적시에 위치 조정을 허용하지 않을 수 있습니다.
  4. 전략의 성능은 매개 변수 설정에 의해 크게 영향을 받으며, 부적절한 매개 변수는 수많은 잘못된 신호로 이어질 수 있으며, 전략의 효율성을 감소시킬 수 있습니다.

이러한 위험을 완화하기 위해 필터로 다른 주요 지표를 도입하고, 다른 시장 조건에 맞게 매개 변수를 최적화하고, 개별 거래에서 위험을 관리하기 위해 적절한 스톱 로스 및 영업 수익을 설정하는 것을 고려할 수 있습니다.

전략 최적화 방향

  1. 볼린저 밴드, 이동 평균 등과 같은 추가 기술 지표를 포함하여 추가 트렌드 확인 및 지원/저항 레벨 식별을 제공하여 신호 신뢰성을 향상시킵니다.
  2. 현재 시장 조건과 목표 자산에 가장 적합한 조합을 찾기 위해 RSI와 MACD의 매개 변수를 최적화하여 잘못된 신호를 줄이십시오.
  3. 거래량, 변동성 등과 같은 시장 환경 분석을 도입하여 다른 시장 상태에 따라 전략 매개 변수를 동적으로 조정하여 적응력을 향상시킵니다.
  4. 신호 강도와 위험 수준에 따라 포지션 크기를 조정하는 것과 같은 적절한 포지션 크기 규칙을 적용하여 전체 위험 노출을 관리합니다.
  5. 전략 성과를 정기적으로 백테스트하고 평가하고, 시장 변화에 따라 전략 논리와 매개 변수를 신속하게 조정하여 전략이 효과적이고 견고하게 유지되도록 보장합니다.

이러한 최적화 조치가 시행되면 전략의 위험 조정 수익률이 더욱 향상될 수 있으며, 끊임없이 변화하는 시장 환경에 더 잘 적응할 수 있습니다.

결론

스네하시시의 장기 거래 전략은 시장 전환점을 더 정확하게 파악하기 위해 MACD 및 RSI 기술 지표를 능숙하게 결합하여 입점 및 출구 시기를 최적화합니다. RSI가 과잉 판매 상태를 확인하고 신호선을 통과하는 MACD 라인을 입력 신호로 사용하여 전략은 트렌드가 초기 반전 징후를 보여주자마자 입장에 들어갈 수 있습니다. 마찬가지로, MACD 히스토그램과 신호 라인의 상대적 위치를 RSI의 과잉 구매 신호와 함께 활용함으로써 전략은 상승 추세가 끝날 때 적시에 입장에서 벗어날 수 있습니다.

이 전략은 좋은 잠재력을 보여 주지만, 여전히 불안한 시장에서 과잉 거래 및 강한 트렌드 중 신호 지연과 같은 몇 가지 위험을 안고 있습니다. 이러한 위험을 완화하기 위해 다른 지표를 도입하고 매개 변수 설정을 최적화하고 시장 환경 분석을 강화하고 포지션 사이즈를 개선하는 것을 고려할 수 있습니다.

전반적으로,이 MACD 및 RSI 기반의 장기 거래 전략은 투자자에게 시장 전환점을 파악하고 입출시기를 최적화하는 신뢰할 수있는 틀을 제공합니다. 추가 최적화 및 정밀화로 전략은 투자자가 변화하는 시장 조건에 직면하여 강력한 장기 수익을 달성하는 강력한 도구가 될 수 있습니다.


/*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"}]
*/

//@version=5
// snehashish 2024
strategy(title='spl Long Strategy', initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, currency='USD', overlay=true)

//// Stoploss and Take Profit Parameters
// Enable Long Strategy
enable_long_strategy = input.bool(true, title='Enable Long Strategy', group='SL/TP For Long Strategy', inline='1')
long_stoploss_value = input.float(50, title='Stoploss %', minval=0, group='SL/TP For Long Strategy', inline='2')
long_takeprofit_value = input.float(50, title='Take Profit %', minval=0, group='SL/TP For Long Strategy', inline='2')

// Enable Short Strategy
enable_short_strategy = input.bool(true, title='Enable Short Strategy', group='SL/TP For Short Strategy', inline='3')
short_stoploss_value = input.float(50, title='Stoploss %', minval=0, group='SL/TP For Short Strategy', inline='4')
short_takeprofit_value = input.float(50, title='Take Profit %', minval=0, group='SL/TP For Short Strategy', inline='4')

// Date Range
start_date = input.int(1, title='Start Date', minval=1, maxval=31, group='Date Range', inline='1')
start_month = input.int(1, title='Start Month', minval=1, maxval=12, group='Date Range', inline='2')
start_year = input.int(2023, title='Start Year', minval=1800, maxval=3000, group='Date Range', inline='3')
end_date = input.int(1, title='End Date', minval=1, maxval=31, group='Date Range', inline='4')
end_month = input.int(12, title='End Month', minval=1, maxval=12, group='Date Range', inline='5')
end_year = input.int(2077, title='End Year', minval=1800, maxval=3000, group='Date Range', inline='6')
in_date_range = true

//// Indicator Inputs
// RSI
rsi_over_sold = input.int(30, title='Over Sold Level', group='RSI')
rsi_over_bought = input.int(70, title='Over Bought Level', group='RSI')
rsi_length = input.int(14, title='RSI Length', group='RSI')
rsi = ta.rsi(close, rsi_length)

// MACD
fast_ma = input.int(12, title='FastMA Length', group='MACD')
slow_ma = input.int(26, title='SlowMA Length', group='MACD')
signal_length = input.int(9, title='Signal Length', group='MACD')
[macd_line, signal_line, _] = ta.macd(close, fast_ma, slow_ma, signal_length)

//// Strategy Logic
was_over_sold = ta.barssince(rsi <= rsi_over_sold) <= 10
was_over_bought = ta.barssince(rsi >= rsi_over_bought) <= 10
crossover_bull = ta.crossover(macd_line, signal_line)
crossover_bear = ta.crossunder(macd_line, signal_line)
buy_signal = was_over_sold and crossover_bull and in_date_range
sell_signal = was_over_bought and crossover_bear and in_date_range

// Long Strategy
if (enable_long_strategy and buy_signal)
    strategy.entry('Long', strategy.long)
    strategy.exit('Long SL/TP', from_entry='Long', stop=strategy.position_avg_price * (1 - long_stoploss_value / 100), limit=strategy.position_avg_price * (1 + long_takeprofit_value / 100))

// Short Strategy
if (enable_short_strategy and sell_signal)
    strategy.entry('Short', strategy.short)
    strategy.exit('Short SL/TP', from_entry='Short', stop=strategy.position_avg_price * (1 + short_stoploss_value / 100), limit=strategy.position_avg_price * (1 - short_takeprofit_value / 100))

관련

더 많은