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

저자:차오장, 날짜: 2023-10-16 09:02:29
태그:

전반적인 설명

이치는 이치모쿠 클라우드 지표와 MACD 지표를 결합한 암호화폐 거래 전략이다. 이치는 이치모쿠 클라우드를 사용하여 전체 트렌드 방향과 지원/저항 수준을 결정하고, MACD를 사용하여 단기 트렌드 및 모멘텀을 측정하여 거래 신호를 생성한다. 이 전략은 중장기 트렌드를 효과적으로 식별하고 트렌드가 방향을 변경할 때 지위를 신속하게 조정할 수 있다.

전략 논리

이 전략은 중장기 트렌드를 결정하기 위해 Ichimoku Cloud의 전환선과 기본선의 교차를 사용하며, MACD 지표는 단기 트렌드와 동력을 결정합니다.

전환선이 기본선을 넘을 때, 그것은 상승 신호이며, 가격이 구름 위에 있는 것은 강한 경향을 나타냅니다. 전환선이 기본선을 넘을 때, 그것은 하락 신호이며, 가격이 구름 아래에 있는 것은 약한 경향을 나타냅니다.

MACD 히스토그램이 제로 라인 위에 있을 때, 상승 동력을 신호하고, 제로 라인 아래에 있을 때, 하락 동력을 신호합니다. MACD 라인이 신호 라인 위에 넘을 때, 구매 신호를 생성하고, 아래에 넘을 때, 판매 신호를 생성합니다.

구체적인 거래 규칙은 다음과 같습니다.

긴 입구 신호: 변환 선이 기본 선 위에 넘어가고, 가격 선이 구름 위에 넘어가고, MACD 선이 신호 선 위에 넘어가고, 길게 간다. 긴 출구 신호: 전환 선이 기본 선 아래를 가로질러, 가격 선이 구름 아래를 가로질러, MACD 선이 신호 선 아래를 가로질러, 긴 포지션을 닫습니다.

짧은 입력 신호: 변환 라인이 기본 라인 아래로 넘어가고, 가격이 구름 아래로 넘어가고, MACD 라인이 신호 라인 아래로 넘어가고, 짧습니다.
짧은 출구 신호: 전환 라인이 기본 라인의 위를 넘고, 가격 라인이 구름 위를 넘고, MACD 라인이 신호 라인의 위를 넘고, 짧은 포지션을 닫습니다.

전략 의 장점

  1. 이치모쿠 클라우드는 중장기 트렌드와 MACD 단기 트렌드를 결정할 수 있다. 이 둘을 결합하면 다른 시간 프레임에 걸쳐 거래 기회를 파악할 수 있다.

  2. 이치모쿠 구름의 구름 수준은 지지와 저항 구역을 명확히 나타냅니다.

  3. MACD는 단기적인 과반 구매 및 과반 판매 조건을 측정하는 데 효과적이며, 범위에 묶인 시장에서 위프사우를 피합니다.

  4. 전략 매개 변수는 최적화되어 있으며 다양한 암호화폐에 사용할 수 있으며, 안정성을 제공합니다.

전략 의 위험

  1. 이치모쿠 클라우드와 MACD는 잘못된 신호를 생성할 수 있고 다른 지표로부터 확인을 필요로 합니다.

  2. 이차는 종종 시장의 범위에서 발생하며 매개 변수를 조정하거나 거래를 중단해야합니다.

  3. 두꺼운 구름은 진입하기 전에 뚜렷한 탈출구를 필요로 하고, 잠재적으로 몇 가지 기회를 놓칠 수 있습니다.

  4. 역 테스트 데이터가 충분하지 않아 매개 변수 최적화를 위한 시간이 더 길어질 수 있습니다.

위험은 다른 지표로 신호를 확인하거나 시장 조건에 매개 변수를 조정하거나 특정 기간에 거래를 중단함으로써 관리될 수 있습니다.

최적화 방향

  1. 이치모쿠 매개 변수를 최적화하여 변환 기간과 기본 라인 기간을 조정하여 다른 자산에 더 잘 맞출 수 있습니다.

  2. MACD 매개 변수를 최적화하여 더 정확한 신호를 위해 빠른, 느린 및 신호 매끄러운 기간을 조정합니다.

  3. 스톱 로스 전략을 추가해 마감값이 일정 수준에 도달하면 손실을 줄이세요.

  4. 포지션 크기를 추가하여 시장 조건에 따라 거래 당 위험 자본의 비율을 조정합니다.

  5. 안정성을 평가하기 위해 다른 암호화폐 데이터에 대한 테스트 전략.

  6. 거짓 신호를 필터링하기 위해 추가 지표를 포함합니다.

결론

이 전략은 이치모쿠 클라우드 및 MACD 지표의 강점을 결합하여, 중장기 트렌드 방향을 결정하기 위해 전환 및 기본 라인을 사용하고, MACD를 사용하여 단기 과잉 구매 / 과잉 판매 수준을 측정하여 거래 신호를 생성합니다. 매개 변수는 다른 자산에 최적화 될 수 있으며, 다른 지표 또는 스톱 손실을 추가하여 위험을 관리 할 수 있습니다. 다른 암호화폐에 잘 작동하지만, 불안정한 시장에서 잘못된 신호는 매개 변수 조정 및 위험 관리를 통해 견고함을 개선해야합니다.


/*backtest
start: 2023-10-08 00:00:00
end: 2023-10-15 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=5
strategy('Ichimoku Cloud with MACD (By Coinrule)',
         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)


// Stop Loss and Take Profit for Shorting
Stop_loss = input(1) / 100
Take_profit = input(5) / 100
longStopPrice = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)


// 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)

strategy.entry('Long', strategy.long, when=bullish and long_entry and timePeriod)
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)




더 많은