イチモク・クラウドと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)




もっと