マルチタイムフレーム ボリンジャーバンド 暗号通貨戦略


作成日: 2024-02-27 14:13:39 最終変更日: 2024-02-27 14:13:39
コピー: 1 クリック数: 460
1
フォロー
1166
フォロワー

マルチタイムフレーム ボリンジャーバンド 暗号通貨戦略

概要

この戦略は,ブリン帯の指標を用いて,異なる時間軸 (一分,3分,5分,15分) の暗号通貨価格の変動を分析し,買入と売却の機会を探している.暗号通貨市場情勢の基準として,主にビットコインの5分間の価格に焦点を当てている.ビットコインの価格がブリン帯を突破すると,情勢は落状態にあると考えられる.逆に,ビットコインの価格がブリン帯を突破すると,情勢は落状態にあると考えられる.戦略は,異なる通貨の異なる時間軸でブリン帯の破裂または下線突破の形状を観察する.これらの形状は,通常,市場情勢とトレンドの変化を示し,したがって買入と売却の操作を行うシグナルである.

戦略原則

この戦略は同時に,1分,3分,5分,15分の時間軸でブリン帯を計算する.ブリン帯はn日 (デフォルトは20日) の移動平均と標準差の数倍 (デフォルトは1.5倍) を構成する.移動平均は,一定の期間における通貨の平均価格を表し,標準差は価格変動の幅を表している.価格がブリン帯に近づいたり突破したりすると,市場が高い位置にあり,波動が大きくなり,価格が反転する可能性があることを示す.価格がブリン帯に近づいたり破ったりすると,市場が低い位置にあり,波動が大きくなり,価格が反転する可能性があることを示す.

この戦略は,ブリン帯の指標のこの特性を利用して,異なる時間 (一分,3分,5分,15分) で市場の最新の進展を判断する. 3分または5分時間のの価格がブリン帯を突破して軌道上または下行し,1分および15分時間のにも関連する兆候が現れたとき,この戦略は,市場が最新の買入販売信号を発した判断する. さらに,戦略は,ビットコインの5分間の時間を参考にして,暗号通貨市場の全体的な動きと市場情勢を判断する.

ポジション開設後,戦略は,ストップ・ストップ条件も設定する. ポジションの価格が25%上昇または下落した場合,ストップを設定する. 価格が逆方向で25%以上上昇または下落した場合,ストップを設定する.

戦略的優位性

  1. この戦略は,市場の短期と中期の動きを総合的に判断する. 1分と5分間の時間軸は,市場の最新の動きを判断し,15分間の時間軸は,市場の短期的な変動に誤導されないように,中期的な傾向を判断する.

  2. この戦略は,ブリン帯の中線,上線,下線を突破して,買入・売却の機会を逃さないように注意を向けています.

  3. ビットコインは,市場基準と市場情緒の晴れ表として,意思決定の正確性を向上させることができます.

  4. ストップ・ストップ・損失の条件を設定して,リスクを効果的にコントロールできます.

戦略リスク

  1. ブリン・ベルトの突破形状は後退性があり,最高の入場時間を逃す可能性がある.

  2. この戦略は,暗号通貨市場全体で,パスワードなどのシステムリスクが発生した場合に効果的に対応することが困難である.

  3. ストップダストは設定されていますが,ストップダストの幅を超えた突発的な事件により大きな損失が発生します.

  4. 策略パラメータの設定が正しくない場合 (時間長さ,標準差倍数など) は,取引信号の質が低下する可能性があります.

解決策は次の通りです

  1. 学生の入学時期を判断する指標も追加された.

  2. 市場におけるシステムリスクの評価を高めること

  3. 各取引のポジションサイズとストップ・ロスの幅を適正に縮小する.

  4. オプティマイゼーションパラメータを設定し,フィードバックを検証する.

戦略の最適化

  1. 30分または60分 ブリン帯の指標など,より多くの時間判断を追加します.

  2. 異なる通貨の特徴に応じて,より適切なブリン帯のパラメータを選択して,指標の効果を向上させる.

  3. 取引量などの指標判断. 取引量によって価格変動の信頼性が確認されるからです.

  4. ストックRSI,MACDなどの他の指標と組み合わせて,意思決定の正確性を向上させる.これらの指標は,市場の実際の動きに対する判断を大幅に向上させることができる.

  5. 価格の動きと関連性を比較し,最も操作の余地のある取引相手を選びます.

  6. ストップ・ストップ・ロスの戦略を最適化し,事後の統計分析によって最適のパラメータを決定する.

要約する

この戦略は,多時間布林帯暗号通貨取引戦略である。この戦略は,市場における短期および中期時間スケールの価格変動を重視し,ブリン帯指標を適用して市場のMULIT空白状態を判断する。同時に,ビットコインの価格を市場基準および参照信号として使用し,暗号通貨市場全体の全体的な動きを判断する.この戦略は,参照時間の多様性,ストップロスの完善などの利点を持ち,市場機会を効果的に把握しながらリスクを制御する.将来,新しい指標の組み合わせ,パラメータ調整などの手段をさらに最適化することで,戦略の収益率をさらに向上させることができる.

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

//@version=5
strategy(shorttitle="Crypto BB", title="Multi-Interval Bollinger Band Crypto Strategy", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1.5, minval=0.001, maxval=50, title="StdDev")

interval1m = request.security(syminfo.tickerid, '1', src)
interval3m = request.security(syminfo.tickerid, '3', src)
interval5m = request.security(syminfo.tickerid, '5', src)
interval15m = request.security(syminfo.tickerid, '5', src)
btcinterval5m = request.security("BTC_USDT:swap", "5", src)
bitcoinSignal = 'flat'

var entryPrice = 0.000

ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

bitcoinBasis = ma(btcinterval5m, length, maType)
bitcoinDev = ta.stdev(btcinterval5m, length)
bitcoinUpper = bitcoinBasis + bitcoinDev
bitcoinLower = bitcoinBasis - bitcoinDev

basis1m = ma(interval1m, length, maType)
basis3m = ma(interval3m, length, maType)
basis5m = ma(interval5m, length, maType)
basis15m = ma(interval5m, length, maType)
dev1m = mult * ta.stdev(interval1m, length)
dev3m = mult * ta.stdev(interval3m, length)
dev5m = mult * ta.stdev(interval5m, length)
upper1m = basis1m + dev1m
lower1m = basis1m - dev1m
upper3m = basis3m + dev3m
lower3m = basis3m - dev3m
upper5m = basis5m + dev5m
lower5m = basis5m - dev5m
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis3m, "Basis 3 minute", color=#2962FF, offset = offset)
p3upper = plot(upper3m, "Upper", color=#2962FF, offset = offset)
p3lower = plot(lower3m, "Lower", color=#2962FF, offset = offset)

//Exit protocols
if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Buy'
    entryPrice := strategy.opentrades.entry_price(0)
    if ((interval1m - entryPrice)/entryPrice) * 30 > .25
        strategy.close('Buy', comment='Take Profit on Buy')
    if ((interval1m - entryPrice)/entryPrice) * 30 < -.25
        strategy.close('Buy', comment='Stop Loss on Buy')

if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Sell'
    entryPrice := strategy.opentrades.entry_price(0)
    if ((entryPrice - interval1m)/entryPrice) * 30 > .25
        strategy.close('Sell', comment='Take Profit on Sell')
    if ((entryPrice - interval1m)/entryPrice) * 30 < -.25
        strategy.close('Sell', comment='Stop Loss on Sell')

//Bitcoin Analysis
if (btcinterval5m < bitcoinUpper and btcinterval5m[1] > bitcoinUpper[1] and btcinterval5m[2] < bitcoinUpper[2] and btcinterval5m[3] < bitcoinUpper[3])
    bitcoinSignal := 'Bear'
if (btcinterval5m > bitcoinUpper and btcinterval5m[1] < bitcoinUpper[1] and btcinterval5m[2] > bitcoinUpper[2] and btcinterval5m[3] > bitcoinUpper[3])
    bitcoinSignal := 'Bull'

//Short protocols
if (interval3m < basis3m and interval3m[1] > basis3m[1] and interval3m[2] < basis3m[2] and interval3m[3] < basis3m[3]) or 
 (interval5m < basis5m and interval5m[1] > basis5m[1] and interval5m[2] < basis5m[2] and interval5m[3] < basis5m[3]) 
  and strategy.opentrades.entry_id(0) != 'Sell'
   and src < basis1m and src < basis15m
    if strategy.opentrades.entry_id(0) == 'Buy'
        strategy.close('Buy', 'Basis Band Bearish Reversal')
    //strategy.order('Sell', strategy.short, comment = 'Basis band fractal rejection', stop = (upper1m + basis1m)/2)

if (interval3m < upper3m and interval3m[1] > upper3m[1] and interval3m[2] < upper3m[2] and interval3m[3] < upper3m[3]) or 
 (interval5m < upper5m and interval5m[1] > upper5m[1] and interval5m[2] < upper5m[2] and interval5m[3] < upper5m[3]) 
  and strategy.opentrades.entry_id(0) != 'Sell' and bitcoinSignal == 'Bear' and src < upper1m  and src < basis15m
    if strategy.opentrades.entry_id(0) == 'Buy'
        strategy.close('Buy', 'Bearish Trend Reversal')
    strategy.order('Sell', strategy.short, comment = 'Upper band fractal rejection', stop = (upper1m + basis1m)/2)

if (interval3m > basis3m and interval3m[1] < basis3m[1] and interval3m[2] > basis3m[2] and interval3m[3] > basis3m[3]) or 
 (interval5m > basis5m and interval5m[1] < basis5m[1] and interval5m[2] > basis5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy' 
  and src > basis1m  and src > basis15m
    if strategy.opentrades.entry_id(0) == 'Sell'
        strategy.close('Sell', 'Basis Band Bullish Reversal')
    //strategy.order('Buy', strategy.long, comment = 'Basis band fractal rejection', stop = (lower1m + basis1m)/2)

if (interval3m > lower3m and interval3m[1] < lower3m[1] and interval3m[2] > lower3m[2] and interval3m[3] > lower3m[3]) or 
 (interval5m > lower5m and interval5m[1] < lower5m[1] and interval5m[2] > lower5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy' 
  and src > lower1m  and src > basis15m and bitcoinSignal == 'Bull' 
    if strategy.opentrades.entry_id(0) == 'Sell'
        strategy.close('Sell', 'Bullish Trend Reversal')
    strategy.order('Buy', strategy.long, comment = 'Lower band fractal rejection', stop = (lower1m + basis1m)/2)