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

MACD와 RSI 결합 자연 거래 전략

저자:차오장, 날짜: 2024-06-03 17:22:03
태그:MACDRSIWMAMAEMASMMARMAVWMA

img

전반적인 설명

이 전략은 MACD 크로스오버 신호와 RSI 오버바운트/오버셀드 신호를 사용하여 MACD 크로스오버 신호와 RSI 오버바운트/오버셀드 신호를 사용하여 두 가지 기술 지표를 결합하여 거래 시기를 결정한다. 한편, 전략의 신뢰성을 향상시키기 위한 보조 판단으로 가중 이동 평균 (WMA) 을 도입한다. 이 전략은 1시간 시간 프레임으로 실행되며, MACD가 황금 십자가를 형성하고 RSI가 50보다 높을 때 긴 포지션을 열고, MACD가 죽음의 십자가를 형성하고 RSI가 50보다 낮을 때 짧은 포지션을 열고, 동시에, RSI가 70보다 높을 때 긴 포지션을 닫고 RSI가 30보다 낮을 때 짧은 포지션을 닫는다. 또한, 전략은 다양한 시간 스케일에서 트렌드 변화를 판단하기 위해 여러 시간 프레임에 대한 변수를 설정한다.

전략 원칙

이 전략의 핵심은 두 가지 기술 지표인 MACD와 RSI의 결합 사용이다. MACD는 빠른 라인 (단기 이동 평균) 과 느린 라인 (장기 이동 평균) 사이의 차이로 구성되어 시장 트렌드 변화를 반영할 수 있다. 빠른 라인이 느린 라인 위에 넘어가면 상승 추세를 나타내는 황금 십자가를 형성하고 반대로 하락 추세를 나타내는 죽음의 십자가를 형성한다. RSI는 시장의 과소매와 과소매 상태를 측정하는 지표이다. RSI가 70을 넘으면 시장이 과소매되어 복귀 위험에 직면할 수 있음을 나타냅니다. RSI가 30 이하일 때 시장이 과소매되어 리바운드 기회를 가져올 수 있음을 나타냅니다.

이 전략은 MACD와 RSI를 결합하여, MACD의 트렌드 판단과 RSI의 과반 구매/ 과반 판매 판단을 사용하여 거래 시기를 더 정확하게 파악합니다. 동시에, 전략은 또한 가중 이동 평균 (WMA) 을 보조 판단으로 도입합니다. WMA는 일반 이동 평균에 비해 최근 가격에 더 중점을 두고 있으며 가격 변화를 더 민감하게 반영 할 수 있습니다.

또한, 전략은 다양한 시간 스케일에서 트렌드 변화를 판단하기 위해 여러 시간 프레임 (예를 들어 15 분, 30 분, 1 시간, 2 시간, 등) 에 대해 변수를 설정합니다. 이 다 시간 프레임 분석 방법은 전략이 시장 트렌드를 보다 포괄적으로 파악하고 의사 결정의 정확성을 향상시키는 데 도움이 될 수 있습니다.

이점 분석

  1. 두 가지 효과적인 기술 지표인 MACD와 RSI를 결합하여 시장 추세와 과잉 구매/ 과잉 판매 상황을 더 잘 파악하여 거래 결정의 정확성을 향상시킵니다.
  2. 그것은 가중화 이동 평균 (WMA) 을 보조 판단으로 도입합니다. WMA는 최근 가격에 더 중점을 두고 가격 변화를 더 민감하게 반영하여 전략의 적응력을 향상시킵니다.
  3. 여러 시간 프레임에 대해 변수를 설정하여 여러 시간 프레임의 공동 분석을 실현하여 시장 추세를 보다 포괄적으로 파악하고 결정의 신뢰성을 향상시킬 수 있습니다.
  4. 1시간의 시간 프레임으로 진행되며, 적당한 거래 빈도로 거래 비용과 수익을 더 잘 균형을 잡을 수 있습니다.
  5. 그것은 MACD 황금 십자/죽음 십자, RSI 과잉 구매/ 과잉 판매 등과 같이 이해하기 쉽고 실행하기 쉬운 명확한 개시 및 폐쇄 조건을 설정합니다.

위험 분석

  1. MACD와 RSI 모두 뒤떨어진 지표입니다. 시장이 빠르게 변하면 지표 신호와 가격 사이에 단절이 발생할 수 있으며 잘못된 신호로 이어질 수 있습니다.
  2. 이 전략은 단일 시간 프레임 (1시간) 에 실행되며, 다른 시간 스케일에서 트렌드 변화를 완전히 포착하지 않을 수 있으며, 특정 제한이 있습니다.
  3. 이 전략에는 스톱 로스 및 포지션 관리와 같은 위험 관리 조치가 없습니다. 시장이 격렬하게 변동할 때 더 큰 유출 위험에 직면 할 수 있습니다.
  4. 전략의 매개 변수 설정 (MACD의 빠른 및 느린 라인 기간, RSI의 시간 기간 등) 은 다른 시장 조건에 따라 조정해야 할 수 있습니다. 매개 변수 선택은 특정 주관성과 불확실성을 가지고 있습니다.

최적화 방향

  1. 더 강력한 거래 신호를 구축하고 전략의 신뢰성을 향상시키기 위해 볼링거 밴드, ATR 등과 같은 더 많은 기술적 지표를 도입하십시오.
  2. 큰 추세를 더 잘 파악하기 위해 일일 차트와 같은 더 높은 수준의 시간 프레임을 추가하는 것과 같은 전략의 시간 프레임의 선택을 최적화하고, 전략의 정확성을 향상시키기 위해 낮은 수준의 시간 프레임에 특정 입구 지점을 설정합니다.
  3. 적립 리스크를 제어하기 위해 합리적인 스톱 로스 포지션을 설정하고 포지션 크기를 제한하는 등의 리스크 제어 조치를 추가합니다.
  4. 전략의 매개 변수를 최적화합니다. 기계 학습 및 다른 방법을 사용하여 역사적 데이터에 기반하여 최적의 매개 변수 조합을 자동으로 찾을 수 있으며 주관적 판단의 영향을 줄일 수 있습니다.
  5. 시장 정서, 거래량, 개방된 관심 등과 같은 다른 요소를 도입하는 것을 고려하여 시장 상태를 보다 포괄적으로 파악하고 전략의 적응력을 향상시킵니다.

요약

이 전략은 두 가지 효과적인 기술적 지표인 MACD와 RSI를 결합하면서 WMA를 1시간 시간 프레임에서 거래 결정을 내리는 보조 판단으로 도입합니다. 전략 논리는 명확하고 이해하기 쉽고 구현하기 쉽고 특정 실현 가능성과 함께 시장 추세와 과소 구매 / 과소 판매 조건을 더 잘 파악 할 수 있습니다. 그러나 전략에는 지연, 단일 시간 프레임, 위험 통제 부족 등과 같은 일부 제한과 위험이 있습니다. 미래에 전략은 더 많은 지표, 지속적인 시간 프레임, 위험 통제 강화, 매개 변수 최적화 등을 도입하여 안정성과 수익성을 향상시킬 수 있습니다. 전반적으로이 전략은 양적 거래에 대한 사고 방식을 제공하지만 여전히 실용적으로 최적화하고 정밀해야합니다.


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

//@version=5
strategy("Improved MACD and RSI Trading Strategy", overlay=true, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.01, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// MACD 設置
fast_length = input(12, title="MACD Fast Length")
slow_length = input(26, title="MACD Slow Length")
signal_smoothing = input(9, title="MACD Signal Smoothing")

// RSI 設置
input_rsi_length = input.int(14, title="RSI Length")
input_rsi_source = input(close, "RSI Source")

RSI = ta.rsi(input_rsi_source, input_rsi_length)

// 計算MACD和信號線
[macdLine, signalLine, _] = ta.macd(close, fast_length, slow_length, signal_smoothing)

// 自然交易理論:利用MACD和RSI的結合
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

maTypeInput = input.string("SMA", title="Moving Average Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="Moving Average Length", group="MA Settings")

macdMA = ma(macdLine, maLengthInput, maTypeInput)

// 設置交易信號
longCondition = ta.crossover(macdLine, signalLine) and macdLine > macdMA and RSI < 70
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine < macdMA and RSI > 30

// 定義時間框架
tf_15m = ta.change(RSI, 15) > 0 ? 1 : 0
tf_30m = ta.change(RSI, 30) > 0 ? 1 : 0
tf_1h = ta.change(RSI, 60) > 0 ? 1 : 0
tf_2h = ta.change(RSI, 120) > 0 ? 1 : 0
tf_4h = ta.change(RSI, 240) > 0 ? 1 : 0
tf_6h = ta.change(RSI, 360) > 0 ? 1 : 0
tf_8h = ta.change(RSI, 480) > 0 ? 1 : 0
tf_12h = ta.change(RSI, 720) > 0 ? 1 : 0
tf_1d = ta.change(RSI, 1440) > 0 ? 1 : 0

// 設置開倉、平倉和空倉條件
if (longCondition and tf_1h and RSI > 50)
    strategy.entry("Long", strategy.long)
if (shortCondition and tf_1h and RSI < 50)
    strategy.entry("Short", strategy.short)

if (tf_1h and RSI > 70)
    strategy.close("Long")
if (tf_1h and RSI < 30)
    strategy.close("Short")

// 加入其他策略
// 定義加權平均價格
wma(source, length) =>
    wma = 0.0
    sum = 0.0
    sum_wts = 0.0
    for i = 0 to length - 1
        wts = (length - i) * (length - i)
        sum := sum + source[i] * wts
        sum_wts := sum_wts + wts
    wma := sum / sum_wts

wmaLength = input.int(20, title="WMA Length", group="Other Strategies")
wmaValue = wma(close, wmaLength)

// 設置交易信號
longWMACondition = close > wmaValue
shortWMACondition = close < wmaValue

if (longWMACondition and tf_1h and RSI > 50)
    strategy.entry("Long WMA", strategy.long)
if (shortWMACondition and tf_1h and RSI < 50)
    strategy.entry("Short WMA", strategy.short)

if (tf_1h and RSI > 70)
    strategy.close("Long WMA")
if (tf_1h and RSI < 30)
    strategy.close("Short WMA")

// 繪製MACD和RSI
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")


관련

더 많은