ボリンジャーバンドダイナミックテイクプロフィット戦略

SMA
作成日: 2024-05-24 17:54:47 最終変更日: 2024-05-24 17:54:47
コピー: 0 クリック数: 599
1
フォロー
1617
フォロワー

ボリンジャーバンドダイナミックテイクプロフィット戦略

概要

この戦略は,ポーリング帯 (Bollinger Bands) の指標を利用し,価格が上線に触れたときに空白をしたり,下線に触れたときに多額をしたり,動的ストップを設定し,持仓が1%の利益に達したときに平仓する.この戦略の核心思想は,価格は常にポーリング帯内で波動し,平均値の還元特性を有するので,価格が移動平均線から遠ざかったときに逆操作を行い,差分を獲ることができる.

戦略原則

  1. 移動平均と標準差を計算する: 簡単な移動平均 ((SMA) を用いて,閉店価格の移動平均を計算する (basis),それから閉店価格の移動平均に対する標準差を計算する (dev) 〔
  2. 上線と下線を計算する:上線 ((upper) は base + dev になる.*base - dev について*multiplier,ここで multiplier は波動幅の倍数である。
  3. 取引シグナルを生成する: 閉盘価格の上から下線を突破し,現在の閉盘価格が開盤価格より小さいときに多値シグナルを生成する. 閉盘価格の下から下線を突破し,現在の閉盘価格が開盤価格より大きいときに空白シグナルを生成する.
  4. ダイナミックストップ: ポジションを開設した後,開設価格とストップの比率 ((takeProfitPercentage) によってストップ価格を計算し,価格がストップ価格に達すると平仓する.
  5. 視覚化:ポーリング帯,移動平均,取引シグナルをグラフに描画する.

戦略的優位性

  1. シンプルで効果的:この戦略は論理的に明確で,技術指標を1つだけ使って,理解し,実行しやすい.
  2. 適用性:ポリング帯は,様々な取引標識と市場で使用できる普遍性がある.
  3. ダイナミックストップ: 固定ストップと比べて,ダイナミックストップは,利回り表の利潤を最大化し,リスクを制御します.
  4. 効果的トレンドキャプチャ:トレンドの状況で,価格が上線または下線に触れた後,通常は元の方向に沿ってしばらく動作し続けます.この戦略は,このトレンドの機会を効果的にキャプチャすることができます.

戦略リスク

  1. 波動的な市場では不良: 市場が幅広く波動しているとき,価格がポーリング帯内で繰り返し突破するときに,この戦略は取引信号が頻繁に発生し,取引回数が過剰になり,手数料コストが上昇する可能性があります.
  2. トレンド行情における深層の逆戻り: トレンドが長期間続く場合,価格が長期にわたって平均線から偏っている場合,この戦略の逆転により,逆戻りは深層になる可能性があります.
  3. 参数選択の難しさ:ポリンガー帯の参数 (長さ,倍数など) は戦略のパフォーマンスに大きな影響を与えるが,四海四海ですべてに準拠する最適参数ではない.

戦略最適化の方向性

  1. トレンド判断と組み合わせる:戦略にトレンド判断指標を組み込む (移動平均など),トレンドの状況で取引を一時停止するか,順位取引を行う.
  2. ストップ・ストップ・損失を最適化:ATRなどの波動率指標に基づいてストップ・ストップ・損失を動的に調整して,よりよい利益リスク比を得ることができる.
  3. 多要素組み合わせ:ポーリング帯と他の技術指標 (RSI,MACDなど) と組み合わせて使用することを検討し,信号の正確性を向上させ,偽信号を減らす.
  4. 基本的フィルタリング:取引シグナルが生成された後,基本的データ (収益報告,業界データなど) を使って二次確認を行うことで,戦略の安定性を高める.

要約する

この戦略は,波リンガー帯を利用して,価格が上下軌道に触れるようにシグナルとしてシンプルで効果的な取引システムを構築し,同時にダイナミックなストップ方式でリスクを制御する.この戦略は,トレンドの状況で良好なパフォーマンスを発揮しますが,震動的な市場では頻繁に取引の問題に直面する可能性があります.その後,トレンド判断,ストップ・ストップ・損失の最適化,因子組合せ,基本的フィルタなどの面で戦略を完善することができ,より堅固な収益を期待できます.

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

//@version=5
strategy("Future Price Prediction", overlay=true)

// Ayarlar
length = input.int(14, "Length")
mult = input.float(2.0, "Multiplier")
showBands = input.bool(true, "Show Bands")
takeProfitPercentage = 1.0

// Ortalama ve Standart Sapma Hesaplamaları
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)

// Üst ve Alt Bantlar
upper = basis + dev
lower = basis - dev

// Grafikte Gösterim
plot(basis, color=color.blue, linewidth=2, title="Basis")
plot(showBands ? upper : na, color=color.red, linewidth=1, title="Upper Band")
plot(showBands ? lower : na, color=color.green, linewidth=1, title="Lower Band")

// Al-Sat Sinyalleri
longCondition = ta.crossover(close[1], lower[1]) and close[1] < open[1]
shortCondition = ta.crossunder(close[1], upper[1]) and close[1] > open[1]

// Kar al seviyeleri
float longTakeProfit = na
float shortTakeProfit = na

if longCondition
    longTakeProfit := close * (1 + takeProfitPercentage / 100)
if shortCondition
    shortTakeProfit := close * (1 - takeProfitPercentage / 100)

// Strateji Giriş ve Çıkış
if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit", from_entry="Buy", limit=longTakeProfit)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit", from_entry="Sell", limit=shortTakeProfit)

// Al-Sat Sinyalleri Grafikte Gösterim
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Bilgi Tablosu
var table data = table.new(position.bottom_right, 2, 2, frame_color=color.black, frame_width=1)
if barstate.islast
    table.cell(data, 0, 0, "Current Price", text_color=color.white)
    table.cell(data, 1, 0, str.tostring(close))
    table.cell(data, 0, 1, "Predicted Basis", text_color=color.white)
    table.cell(data, 1, 1, str.tostring(basis))