이치모쿠 클라우드와 MACD 모멘텀 라이딩 전략

저자:차오장, 날짜: 2023-11-22 13:59:36
태그:

img

전반적인 설명

이치모쿠 클라우드와 MACD 모멘텀 라이딩은 이치모쿠 클라우드 지표와 MACD 모멘텀 지표를 결합한 트렌드 다음 전략이다. 이 전략은 트렌드 방향과 지원/저항 수준을 결정하기 위해 이치모쿠 클라우드와 모멘텀 역전을 감지하기 위해 MACD 지표를 활용하고 트렌드 중에 시기를 정하여 시장에 진입한다. 한편, 이 전략은 수익을 잠금하고 마감을 줄이기 위해 트레일링 스톱 로스를 채택한다.

전략 논리

이치모쿠 구름

이치모쿠 클라우드는 전환선 (텐칸-센), 기본선 (키준-센), 선도 스판 A (센코우-스판 A), 선도 스판 B (센코우-스판 B) 및 확인선 (치코우-스판) 으로 구성됩니다. 전략은 트렌드 방향과 지원/저항을 결정하기 위해 다음과 같은 신호를 사용합니다.

  • 클라우드 이상의 가격 - 상승 추세
  • 클라우드 이하의 가격 - 하락 추세
  • 돌림선이 기본선 위에 넘어가면 상승 신호가 나옵니다.
  • 돌림선이 기본선 아래를 가로지르면 하향 신호가 나타납니다.

MACD 지표

이동평균 컨버전스 디버전스 (Moving Average Convergence Divergence, MACD) 는 모멘텀 지표이다. 이 전략에서 MACD의 빠른 선이 느린 선 위에 넘어가면 구매 신호이며 빠른 선이 느린 선 아래에 넘어가면 판매 신호이다.

출입 및 출입

터닝 라인이 베이스 라인의 위를 넘을 때, 확정 라인은 26 바 전의 폐쇄 가격 위를 넘고, 클라우드의 상단 밴드 위를 닫고, MACD 의 빠른 라인은 느린 라인에 대한 상승적 크로스오버가 있습니다.

가격이 3% 상승하면 전략은 수익을 확보하고 상승 움직임을 추적하기 위해 현재 가격의 97%로 스톱 로스를 이동합니다. 마감률이 3%를 초과하면 손실을 중단합니다.

터닝 라인이 베이스 라인 아래로 넘어가면, 확정 라인이 26 바 전의 폐쇄 가격 아래로 넘어가고, 클라우드의 하단 밴드 아래로 닫는 가격 파열, MACD의 빠른 라인이 느린 라인 아래로 하향적인 크로스오버를 가지고, 짧게 이동합니다.

가격이 3% 하락하면 전략은 수익을 확보하고 하락 움직임을 추적하기 위해 현재 가격의 103%로 손해를 멈추게됩니다. 상승이 3%를 초과하면 손실을 멈추게됩니다.

이점 분석

이 전략은 트렌드 식별과 진입 시기를 결합하여 트렌드 시장에서 좋은 수익을 얻을 수 있습니다.

  1. 이치모쿠 클라우드는 트렌드 방향을 명확히 파악할 수 있습니다. 전략은 클라우드 방향에 맞춰서 트렌드 반대 트레이드를 피합니다.

  2. MACD는 단기적인 모멘텀 반전을 감지하는 데 효과적입니다. 클라우드와 결합하면 입력 정확도를 향상시킵니다.

  3. 트래일링 스톱 로스는 트렌드 도중 전략이 계속 실행되도록 허용합니다. 적절한 포지션 사이징은 거래 당 통제 된 위험을 보장합니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 클라우드는 비교적 긴 리크백 기간을 필요로 하고 단기적으로 부정확한 신호를 줄 수 있습니다.

  2. MACD는 가격에 따라 변동하여 잘못된 신호를 생성할 수 있습니다. 신호를 확인하려면 더 많은 필터가 필요합니다.

  3. 트레일링 스톱 로스는 트렌딩 시장에만 적합합니다. 스톱 로스 비율은 그에 따라 조정되어야합니다. 그렇지 않으면 윙사우는 랭징 시장에서 너무 자주 중단 될 수 있습니다.

  4. 전략 자체는 위험을 관리하지 않습니다. 사용자는 손실을 제어하기 위해 외부 위험 관리 기술을 구현해야합니다.

최적화 방향

이치모쿠 클라우드와 MACD 모멘텀 라이딩 전략은 다음과 같은 방법으로 최적화 될 수 있습니다.

  1. 매개 변수 조정 - 터닝 라인, 베이스 라인 룩백 기간을 조정하고 더 명확한 신호를 위해 MACD 매개 변수를 최적화합니다.

  2. 필터링을 추가합니다. RSI, 볼링거 밴드 같은 다른 지표를 사용하여 나쁜 신호를 필터링하여 잘못된 신호를 줄입니다.

  3. 소정의 지분 (주식) - 시장 변동성 및 위험 선호도에 따른 기본 지분 (주식)

  4. 포지션 크기를 포함 - 전체 마감을 제어하기 위해 거래 당 최대 손실을 제한하십시오.

  5. 자동 선택 계약 & 재균형 - 더 많은 시장에 적응력을 확장.

결론

이치모쿠 클라우드 및 MACD 모멘텀 라이딩 전략은 트렌드와 타이밍을 모두 고려하여 매개 변수가 적절하게 조정되고 위험 통제가 이루어지면 좋은 수익을 얻을 수 있습니다. 트렌드를 따르는 전략으로 일부 프로그래밍 기술을 가진 투자자에게 적합하며 기술 지표와 전략 개발을 배우기 위해 양자 거래 초보자에게 참조 역할을합니다.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-03 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Ichimoku Cloud with MACD and Trailing Stop Loss',
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 6, 1, 0, 0)


// Inputs
ts_bars = input.int(9, minval=1, title='Tenkan-Sen Bars')
ks_bars = input.int(26, minval=1, title='Kijun-Sen Bars')
ssb_bars = input.int(52, minval=1, title='Senkou-Span B Bars')
cs_offset = input.int(26, minval=1, title='Chikou-Span Offset')
ss_offset = input.int(26, minval=1, title='Senkou-Span Offset')
long_entry = input(true, title='Long Entry')
short_entry = input(true, title='Short Entry')

middle(len) => math.avg(ta.lowest(len), ta.highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_bars)

// Plot Ichimoku Kinko Hyo
plot(tenkan, color=color.new(#0496ff, 0), title='Tenkan-Sen')
plot(kijun, color=color.new(#991515, 0), title='Kijun-Sen')
plot(close, offset=-cs_offset + 1, color=color.new(#459915, 0), title='Chikou-Span')
sa = plot(senkouA, offset=ss_offset - 1, color=color.new(color.green, 0), title='Senkou-Span A')
sb = plot(senkouB, offset=ss_offset - 1, color=color.new(color.red, 0), title='Senkou-Span B')
fill(sa, sb, color=senkouA > senkouB ? color.green : color.red, title='Cloud color', transp=90)

ss_high = math.max(senkouA[ss_offset - 1], senkouB[ss_offset - 1])
ss_low = math.min(senkouA[ss_offset - 1], senkouB[ss_offset - 1])


// MACD
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)


// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = ta.mom(close, cs_offset - 1) > 0
cs_cross_bear = ta.mom(close, cs_offset - 1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low

bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and ta.crossover(macd, macd_signal)
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and ta.crossunder(macd, macd_signal)

// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01

// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999

strategy.entry('Long', strategy.long, when=bullish and long_entry and timePeriod)
strategy.exit('Exit', stop = longStopPrice, limit = shortStopPrice)
//strategy.close('Long', when=bearish and not short_entry)

//strategy.entry('Short', strategy.short, when=bearish and short_entry and timePeriod)
//strategy.close('Short', when=bullish and not long_entry)




더 많은