移動平均とMACDに基づく戦略


作成日: 2023-10-16 09:02:29 最終変更日: 2023-10-16 09:02:29
コピー: 0 クリック数: 1062
1
フォロー
1617
フォロワー

概要

これは,煙霧指標とMACD指標を組み合わせた仮想通貨取引戦略である.それは,煙霧指標を使用して,全体的なトレンドの方向とサポート抵抗の位置を判断し,MACD指標と組み合わせて,短期的な傾向と動力を判断し,取引信号を形成する.この戦略は,中長期の傾向を効果的に識別し,トレンドの方向が変化した時にポジションを調整することができます.

戦略原則

この戦略は,煙霧指標の変換線と基準線を交差して中期的な傾向を判断し,短期的な傾向と動力を判断するために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の2つの指標の優位性を統合し,変換線と基準線によって中期トレンドの方向を判断し,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)