突破口のコールバック・トレーディング戦略

作者: リン・ハーンチャオチャン開催日:2024年2月28日 18:01:56
タグ:

img

概要

突破コールバック・トレード戦略は,絶対強度指数と価格のMACD指数を計算することによって,特定のトレンドの下で突破コールバック・トレードを実現する.短期取引戦略に属している.この戦略は,主要なトレンド,中期トレンド,短期トレンドを判断するために複数の指標を統合している.トレンドを順位付けし,インジケーターを補完する確認信号を通じてトレンド追跡取引を実施する.

戦略原則

この戦略は,主に絶対強度指数と価格のMACD指数に依存し,突破コールバック取引を実施する.まず,主要トレンド方向を判断するために価格の9期,21期,50期EMAを計算し,その後,短期調整の強さを反映するために価格の絶対強度指数を計算し,最後に短期トレンド方向を判断するためにMACD指数を計算する.主要トレンドが上昇し,短期調整があるとき,購入し,主要なトレンドが下落し,短期リバウンドがあるときに販売する.

特に,多様性の主要な上昇傾向は,9日EMAが21日EMAよりも高く,21日EMAが50日EMAよりも高くなる必要がある.短期調整を判断する基準は,絶対強度指数の差が0未満,MACDDIFFが0未満である.多様性の主要な下落傾向は,9日EMAが21日EMAよりも低く,21日EMAが50日EMAよりも低くなる必要がある.短期リバウンドを判断する基準は,絶対強度指数の差が0より大きく,MACDDIFFが0より大きいことである.

利点分析

この戦略には以下の利点があります.

  1. 誤ったブレイクを避けるために主要な傾向と短期調整を組み合わせる
  2. 複数の指標の組み合わせによりより高い信頼性
  3. 絶対強度指数は,コールバックの質を判断するための調整の強さを反映しています.
  4. MACD は短期的動向や過買い/過売地域を判断できる

リスク分析

この戦略にはいくつかのリスクもあります:

  1. 主要な動向を誤って判断すると,貿易失敗につながる
  2. コールバックの時間と強さを誤って判断すると,コールバックが無効になる可能性があります.
  3. 極端な市場状況下で誤った信号をもたらす指標の差異

上記のリスクに対応して,パラメータを最適化し,異なるサイクルの指標を判断し,単一の損失を制御するために位置規則を調整し,より多くの指標をフィルター信号に組み合わせ,精度を向上させるような方法が戦略を改善するために使用できます.

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

戦略は以下の側面で最適化できます.

  1. より適した取引戦略を見つけるためにより多くの指標組み合わせをテストする
  2. インディケーターのセンシビリティを向上させるためにインディケーターのパラメータを最適化
  3. 最大単一の損失を減らすためにストップ損失方法を調整する.
  4. より効率的な領域で信号を発信するためにフィルタリング条件を増やす
  5. 判断の精度を向上させるため,より多くの時間枠指標を組み合わせる

概要

概要すると,ブレークスルーコールバック・トレード戦略は,一般的に比較的安定した短期的トレード戦略である.振動する市場で誤った取引を避けるために,多時間枠のトレンド判断を組み合わせます.同時に,指標の組み合わせ使用は判断の正確性も向上させます.その後のテストと最適化により,この戦略は長期にわたって保持する価値のある安定した戦略になることができます.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5 
strategy("Divergence Scalper [30MIN]", overlay=true , commission_value=0.04 ) 
message_long_entry = input("long entry message") 
message_long_exit = input("long exit message") 
message_short_entry = input("short entry message") 
message_short_exit = input("short exit message") 
//3x ema 
out9 = ta.ema(close,9) 
out21 = ta.ema(close,21) 
out50 = ta.ema(close,50) 
//abs 
absolute_str_formula( ) => 
    top=0.0 
    bottom=0.0 
    if(close>close[1]) 
        top:= nz(top[1])+(close/close[1]) 
    else 
        top:=nz(top[1]) 
    if(close<=close[1]) 
        bottom:= nz(bottom[1])+(close[1]/close) 
    else 
        bottom:=nz(bottom[1]) 
    if (top+bottom/2>=0) 
        1-1/(1+(top/2)/(bottom/2)) 
abs_partial=absolute_str_formula() 
abs_final = abs_partial - ta.sma(abs_partial,50) 
//macd 
fast_length = input(title="Fast Length", defval=23) 
slow_length = input(title="Slow Length", defval=11) 
src = input(title="Source", defval=open) 
signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 50, defval = 6) 
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"]) 
sma_signal = input.string(title="Signal Line MA Type", defval="SMA", options=["SMA", "EMA"]) 
// Calculating 
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) 
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) 
macd = fast_ma - slow_ma 
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) 
hist = macd - signal 
long= abs_final > 0 and hist <0 and out9<out21 and out21<out50 
short = abs_final <0 and hist >0 and out9>out21 and out21>out50 
long_exit = abs_final <0 and hist >0 and out9>out21 and out21>out50 
short_exit = abs_final > 0 and hist <0 and out9<out21 and out21<out50 
strategy.entry("long", strategy.long, when = long and barstate.isconfirmed, alert_message = message_long_entry) 
strategy.entry("short", strategy.short, when = short and barstate.isconfirmed, alert_message = message_short_entry) 
strategy.close("long", when = long_exit and barstate.isconfirmed, alert_message = message_long_exit) 
strategy.close("short", when = short_exit and barstate.isconfirmed, alert_message = message_short_exit) 


もっと