デュアルインジケーター戦略


作成日: 2023-11-02 15:30:54 最終変更日: 2023-11-02 15:30:54
コピー: 0 クリック数: 566
1
フォロー
1617
フォロワー

デュアルインジケーター戦略

概要

二重指標戦略 (Dual Indicator Strategy) は,単一の移動平均 (SMA) と移動平均収束散布指標 (MACD) を同時に組み合わせた定量取引戦略である.この戦略は,取引決定の正確性を向上させるために,複数の技術指標を使用して取引信号を確認する.

戦略原則

ダブル指標戦略は,主に2つの技術指標:SMAとMACDに基づいています. 7根,15根と60根のK線のSMAと,標準12/26/9パラメータ設定のMACDを使用しています.

7のSMAが15と60のSMAより高く,また15のSMAが60のSMAより高く,SMA指数で与えられた看板信号とみなされ,確率は0.5。

また,MACD指標のMACD線上で信号線を穿越すると,MACD指標が与える看板信号とみなされ,確率は0.5。

2つの指標の看板信号の確率を合計して1に達したときに,買入してポジションを開きます.

逆に,7つのSMAが15と60のSMAより低いとき,また15のSMAが60のSMAより低いとき,SMA指標が与える下落信号とみなされ,確率は0.5である.

また,MACD指数のMACD線下を通過する信号線も,MACD指数による下落信号とみなされ,確率は0.5。

2つの指数の下落信号の概率が加算して1に達したときに,売り出しを開始する.

さらに,戦略は2つの異なる止まり点を採用します. 価格が9%上昇または下落すると,50%のポジションを平準化します. 価格が21%上昇または下落すると,残りのすべてのポジションを平準化します.

現在のポジションの方向に逆のシグナルが生じた場合,先のポジションをクリアし,新しいシグナルに従ってポジションを開きます.

優位分析

二重指標戦略の最大の利点は,SMAとMACDの両方の指標を同時に利用できるという利点である.SMAは,価格の傾向の変化を効果的に追跡し,市場のノイズをフィルターし,MACDは,短期的なトレンドの逆転のタイミングを検出することができる.両者は,取引信号の信頼性を向上させることができる.

さらに,異なるパラメータ設定の複数のSMAは,中長期のトレンドを識別するのに役立ちます. ストップストップ戦略は,利益の一部をロックし,リスクを制御することができます.

リスク分析

二重指数戦略には注意すべき潜在的リスクもあります.技術指数のみに依存しているため,指数が誤った信号を発する状況が発生する可能性があります.また,止まりを正しく設定しないことも,早めに出場し,大を逃す大落下を引き起こす可能性があります.

SMA周期パラメータを調整したり,他の波指標を追加したりして,戦略を最適化して,取引信号をより信頼できるようにすることができます.同時に,ストップレベルは,市場の波動程度に応じて動的に調整する必要があり,トレンドの動きを継続的にキャプチャできるように保証します.

最適化の方向

双重指数戦略には改善の余地があります.

  1. テストはRSI,ブリン帯などの他の技術指標を加え,複数の指標のフィルターを形成します.

  2. 複数の変数を使って取引信号判断モデルを構築する機械学習アルゴリズムを試す.

  3. 異なる品種や周期のパラメータに合わせて戦略を調整する.

  4. 損失を抑える戦略を増やし,単一損失を厳しく管理する.

  5. ストップ・ストップ戦略を最適化して,トレンドの中で継続的に利益を得る.

システムの反省と最適化により,戦略の安定性と収益性を向上させることができます.

要約する

二重指数戦略は,SMAとMACDの2つの指標の優位性を統合して,信号の正確性を向上させながら,取引リスクを効果的に制御する.この戦略は,優れた最適化スペースとスケーラビリティがあり,信頼性の高い,適応性の強い量化取引戦略である.継続的なデータ駆動と戦略の調整により,この戦略は,徐々に強力な量化取引システムに発展することができる.

ストラテジーソースコード
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA & MACD Dual Direction Strategy", shorttitle="SMDDS", overlay=true, initial_capital=1000)

// SMA settings
sma7_length = input.int(7, title="7 Candle SMA Length")
sma15_length = input.int(15, title="15 Candle SMA Length")
sma60_length = input.int(60, title="60 Candle SMA Length")

// MACD settings
fast_length = input.int(12, title="Fast Length")
slow_length = input.int(26, title="Slow Length")
signal_length = input.int(9, title="Signal Length")

// Leverage
leverage = 10

// Calculate the SMAs
sma7 = ta.sma(close, sma7_length)
sma15 = ta.sma(close, sma15_length)
sma60 = ta.sma(close, sma60_length)

// Calculate the MACD line and Signal line
[macdLine, signalLine, _] = ta.macd(close, fast_length, slow_length, signal_length)

// SMA-based Probabilities
smaBullishProb = (sma7 > sma15 and sma7 > sma60 and sma15 > sma60) ? 0.5 : 0.0
smaBearishProb = (sma7 < sma15 and sma7 < sma60 and sma15 < sma60) ? 0.5 : 0.0

// MACD-based Probabilities
macdBullishProb = ta.crossover(macdLine, signalLine) ? 0.5 : 0.0
macdBearishProb = ta.crossunder(macdLine, signalLine) ? 0.5 : 0.0

// Combined Probabilities
combinedBullishProb = smaBullishProb + macdBullishProb
combinedBearishProb = smaBearishProb + macdBearishProb

// Trade logic using `if` conditions
if combinedBullishProb == 1.0
    strategy.close("Short")
    strategy.entry("Long", strategy.long, qty=leverage)

if combinedBearishProb == 1.0
    strategy.close("Long")
    strategy.entry("Short", strategy.short, qty=leverage)

// Exit conditions based on profit points
longTargetProfit1 = close * 1.09
longTargetProfit2 = close * 1.21

shortTargetProfit1 = close * 0.91
shortTargetProfit2 = close * 0.79

strategy.exit("Long TP1", from_entry="Long", limit=longTargetProfit1, qty_percent=0.5)
strategy.exit("Long TP2", from_entry="Long", limit=longTargetProfit2)

strategy.exit("Short TP1", from_entry="Short", limit=shortTargetProfit1, qty_percent=0.5)
strategy.exit("Short TP2", from_entry="Short", limit=shortTargetProfit2)

// Visualization (optional)
plot(sma7, color=color.green, title="7 Candle SMA")
plot(sma15, color=color.blue, title="15 Candle SMA")
plot(sma60, color=color.red, title="60 Candle SMA")
hline(0, "Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.blue, title="MACD Histogram")