逆MACDモメンタムとDMIブレイク短期スカルピング戦略が絡んでいる

作者: リン・ハーンチャオチャン,日付: 2023年11月13日 17:42:23
タグ:

img

概要

この戦略は,2つの強度指数を使用して,短期下落傾向の始まりが起きたことを確認し,できるだけ早くショートラインの機会を把握することで,熊市状況下でショートラインを設定することに焦点を当てています.

この戦略は,長期的に取引を計画しているコインでうまく機能し,あなたのために取引を実行できる自動化取引ボットを使用する際に特にうまく機能します.これは,あなたの所有物をすべて危険にさらすことなく,取引にコインの割合を割り当てて投資をヘッジすることができます.これは,作られた利益から追加の現金を提供するため,取引から実現されていない損失を軽減します.その後,この現金をホードしたり,市場が魅力的な購入レベルに達したとき再投資するために使用することもできます.

換言すれば,先物取引先の取引において,その先物取引先を短縮する前に,その先物保有する必要がない場合でも,これを使用できます.

戦略の論理

取引システムは,モメンタム平均収束差異 (MACD) インジケーターとダイレクショナル・ムーブメント・インデックス (DMI) インジケーターを使用して,売却の最適な時期を確認します.これらの2つのインジケーターを組み合わせることで,上昇傾向の際に取引を防止し,変動が低い市場で滞りやすい可能性が低下します.

MACDは,短期のトレンド方向を特定するトレンドフォローモメント指標である.この変異では,シグナルスムージングが9で設定された12期を高速で26期をスロー長さのEMAとして利用する.

DMIは,価格がどの方向に動いているかを示し,前回の低値と高値をそれぞれの間に描かれた2つの線 - ポジティブな方向の動き線 (+DI) と負の方向の動き線 (-DI) と比較する.トレンドは,2つの線を比較し,どの線が大きいかを解釈することができます.負のDMIがポジティブなDMIよりも大きいとき,資産が持続的なダウントレンドで取引されている可能性が高く,その逆もあります.

このシステムは2つの条件を満たすときに取引を開始します.

  1. MACDヒストグラムは下落方向に変わります.

  2. 負のDMIが正のDMIより大きいとき

この戦略は,トレンドの強さに適応するためにトレーリングストップとして機能する変動停止と組み合わせた固定テイク利益が付いています.資産に対する長期的な信頼に応じて,固定テイク利益をより保守的または攻撃的に編集することができます.

ポジションは以下の場合に閉じる.

利益の引き出: 入場価格より8%値下がり.

または

ストップ・ロスの出口: 価格が波動ストップを上回る.

一般的には,このアプローチは中長期戦略に適しています.この戦略のバックテストは,2022年4月1日から2022年7月18日まで,熊市での結果を実証するために開始されます.2022年初頭以降のバックテストは,さらに良い収益を生み出します.

非常に強い結果を生むペアには,45mタイムフレームでSOLUSDT,2hタイムフレームでMATICUSDT,1hタイムフレームでAVAUSDTが含まれます.一般的に,バックテストは,ほとんどのペアで45m/1hタイムフレームで最もうまく機能することを示唆しています.

また,0.1%の取引手数料も考慮され,Binanceで適用される基本手数料に準拠しています.

利点分析

この戦略の利点は以下の通りです.

  • MACDとDMIの両方の強みを活用してエントリーシグナルの精度を向上させ,誤ったブレイクを回避します.

  • リスクをコントロールしながら高い利益を確保するために,固定テイク・プロフィートと波動性トレーリングストップ・アウト・メカニズムを組み合わせています.

  • 低迷する市場傾向に適して 短期的に大幅な利益を得られる

  • 追加収入を得るためにロングポジションをヘッジしたり 直接ショート・フューチャー契約で スカルピングしたりできます

  • 特に高周波取引に適した 1時間と 45m のタイムフレームで

リスク分析

この戦略のリスクは以下のとおりです.

  • DMIとMACDは遅れている指標として,トレンドターニングポイントの周りに誤った信号を生む可能性が高く,ストップロスのモニタリングが必要です.

  • 不適切な固定テイク・プロフィートの設定は,テイク・プロフィートが小さすぎたり,大きすぎたりすることがあります.異なるコインの変動に基づいて調整することが推奨されます.

  • 波動性トレリングストップは,激しい変動の期間中に破られるため,追加のストップ・ロスの組み合わせが必要です.

  • バックテストの時期の選択が不適切である場合,過剰に楽観的な結果をもたらす可能性があります.異なる市場条件でより長いテストを行う必要があります.

  • 現実世界での業績は,取引手数料,市場オーダーの変動などによって影響され,バックテストからの偏差につながる.

オプティマイゼーションの方向性

この戦略は,次の側面でさらに最適化できます.

  • 機械学習を利用して MACD と DMI パラメータの組み合わせを自動的に最適化し,異なるタイムフレームとコインに適応します.

  • 市場波動性に基づいて 波動性取利益の範囲を調整します

  • フィルタリングを改善するための多要素モデルを構成する追加指標を組み込む.BVNとOBVなど.

  • MACDとDMIのシグナリングを助ける機械学習モデルを追加します

  • スリップ効果を減らすために,市場オーダーの代わりに制限オーダーを使用します.

  • 個々のコインでテストして 最適な時間枠のパラメータを見つけます

結論

概要すると,この短期ベアスカルピング戦略は,強力なMACDとDMIの組み合わせを通じて最適なショートシート瞬間を特定することによって,実質的な定量的な利益をもたらす.それはロングポジションと直接ショートフューチャー契約をヘッジするために使用することができます.ストップとチューニングパラメータを最適化することで,勝ち率をさらに改善することができます.この戦略はベア市場のトレーダーによって積極的な適用と最適化に値します.


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

//@version=5
strategy("Inverse MACD + DMI Scalping with Volatility Stop (Shorting) (By Coinrule)",

         overlay=true,
         initial_capital=10000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=100,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 4, 1, 0, 0)
notInTrade = strategy.position_size <= 0

// DMI and MACD inputs and calculations
[pos_dm, neg_dm, avg_dm] = ta.dmi(14, 14)
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)

Take_profit = input(3) / 100
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

length = input.int(20, 'Length', minval=2)
src = input(close, 'Source')
factor = input.float(2.0, 'vStop Multiplier', minval=0.25, step=0.25)
volStop(src, atrlen, atrfactor) =>
    var max = src
    var min = src
    var uptrend = true
    var stop = 0.0
    atrM = nz(ta.atr(atrlen) * atrfactor, ta.tr)
    max := math.max(max, src)
    min := math.min(min, src)
    stop := nz(uptrend ? math.max(stop, max - atrM) : math.min(stop, min + atrM), src)
    uptrend := src - stop >= 0.0
    if uptrend != nz(uptrend[1], true)
        max := src
        min := src
        stop := uptrend ? max - atrM : min + atrM
        stop
    [stop, uptrend]
    
[vStop, uptrend] = volStop(src, length, factor)

closeShort = close > longTakeProfit or ta.crossunder(close, vStop)

//Entry
strategy.entry(id='short', direction=strategy.short, when=ta.crossover(macd_signal, macd) and pos_dm < neg_dm and timePeriod)

//Exit
strategy.close('short', when=closeShort and timePeriod)


もっと