DAKELAX-XRPUSDT ボリンジャーバンド回帰移動平均戦略


作成日: 2023-11-02 16:18:34 最終変更日: 2023-11-02 16:18:34
コピー: 3 クリック数: 676
1
フォロー
1617
フォロワー

DAKELAX-XRPUSDT ボリンジャーバンド回帰移動平均戦略

概要

DAKELAX-XRPUSDTは,BinanceのXRPUSDTのための取引ロボット戦略であり,単純に平均線に逆転する戦略であり,2019年5月~8月のH1タイムサイクルで反測され,リアルタイムで動作する.

戦略原則

この戦略は,まず20周期のSMA平均線と上線,下線波動帯を計算する.上線はSMA平均線に標準差1.5倍,下線はSMA平均線に標準差2.2倍を減算する.それから波動帯収縮率を計算し,収縮率1.3以上なら黒で,0.1未満なら黄色で,そうでないなら赤で記入する.

閉盘価格が下位線を下回ると,20コインの量で増やし,閉盘価格が上位線を超えると,すべてのポジションをクリアする.

この戦略はまた,7日EMA快線,18日EMA慢線を計算し,快線上を通過すると買信として判断し,快線下を通過すると売信として判断する.

優位分析

  • 波動帯とその収縮率を使用して,トレンドと波動を判断し,非常に直感的に
  • 均等な線金フォークと死フォークを組み合わせて判断し,信号を強化する
  • レーター性能が優れ,リッドディスクも安定している.

リスク分析

  • 波動帯の収縮後,破裂の失敗の確率が高く,損失を止めやすい.
  • ポジション管理を考慮せずに固定量で購入し,過剰買いや過剰販売のリスクがある
  • 震災では金叉が多く,損失を招く可能性が高い.
  • 日線要素のみを考慮し,より高い時間周期を組み込まないと,より大きな方向を見逃す可能性があります.

リスクを制御するために,購入量を動的に調整するか,ストップを設定することを考えることができます. 金叉死叉戦略を最適化して,震動の状況で閉じ込められることを避ける. より高度なトレンド指標と組み合わせて,大きな方向を決定します.

最適化の方向

  • 波動帯の幅に応じて購入量を調整し,波動帯が狭くなると購入量が少なく,広くなると購入量が適切に増加する.

  • 波動帯が収縮しているのにまだ信号が触発されていないとき,空き倉庫のポジションの構築を考慮する

  • 全体の長線INDICATOR指標と組み合わせて,トレンドの方向を判断し,大きなトレンドが不明な場合は,戦略を一時停止することができます.

  • リスク管理には,ストップと組み合わせて,ストップポイントを最近の波動帯の低点に設定できます.

  • 金叉死叉戦略のパラメータを最適化し,均線周期を調整し,套装を避ける

要約する

DAKELAX-XRPUSDTは,波動帯収縮と均線戦略を組み合わせた取引ロボットプログラムである.この戦略は直感的に理解しやすく,反測効果は良いが,一定のリスクがある.購入数量を調整し,ストップ戦略,ストップロスを設定し,均線戦略を最適化することでリスクを軽減することができる.全体的に,この戦略の構想は明確で操作が容易であり,ボリンジャーバンド戦略の参考例である.しかし,異なる通貨種と市場環境に対して最適化された調整を行うことが必要である.

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

//@version=3
//study(title="Tradebotler DAKELAX Binance:XRPUSDT Study-strategy", overlay=true)
strategy(title="Tradebotler DAKELAX Binance:XRPUSDT Strategy", overlay=true)

buyAmount = input(20, minval=1)

// SMA20
len2 = input(20, minval=1)
src2 = input(close)
out2 = sma(src2, len2)

// BB contraction value (medium tight)
contraction_value = 1.3
// BB contraction value (very tight)
contraction_value2 = 0.1

// 2xSTDEV BB calculation
dev = stdev(src2, len2)
upper_BB = out2  + 1.5*dev
lower_BB = out2  - 2.2*dev
x1 = plot(upper_BB, color=blue, linewidth = 2)
x2 = plot(lower_BB, color=blue, linewidth = 2)

contraction = (upper_BB-lower_BB)/out2

//fills the BBands according to the contraction value (threshold)

// Calculate values
fastMA  = ema(close, 7)
slowMA  = ema(close, 18)

// Determine alert setups
crossUp   = crossover(fastMA, slowMA)
crossDown = crossunder(fastMA, slowMA)

buySignal   = (crossUp or crossUp[1]) and (low > slowMA)
shortSignal = (crossDown or crossDown[1]) and (high < slowMA)

// Highlight alerts on the chart
bgColour =
     (buySignal and barstate.isrealtime) ? green :
     (shortSignal and barstate.isrealtime) ? red :
     na

signalBuy = (buySignal ) ? true : false
signalSell = (shortSignal ) ? true : false

test = true

test := not test[1]

closesBelowLowerBB = close < lower_BB
closesAboveUpperBB = close > upper_BB

tmptext = "blah"

// Plot values
plot(series=fastMA, color=teal)
plot(series=slowMA, color=orange)

plot(out2, color=black, linewidth = 1)
fill(x1, x2, color = contraction > contraction_value ? black : contraction < contraction_value2 ? yellow: red)

isInRed = contraction < contraction_value and contraction >= contraction_value2
isInYellow = contraction < contraction_value and contraction < contraction_value2

if ( closesBelowLowerBB )
    strategy.order('Buy', strategy.long, buyAmount)

if ( closesAboveUpperBB )
    strategy.close_all()