資源の読み込みに... 荷物...

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

作者: リン・ハーンチャオチャン開催日:2024年5月24日17時54分47秒
タグ:SMA

img

概要

この戦略は,価格が上帯に触るとショート,下帯に触るとロングになるボリンジャーバンド指標を利用する.動的取利益レベルを設定し,1%の利益に達するとポジションを閉じる.コアアイディアは,価格がボリンジャーバンド内で常に変動し,平均逆転特性を有しているため,価格が価格差を把握するために移動平均から偏りすぎると逆転ポジションを取ることができます.

戦略の原則

  1. 移動平均値と標準偏差を計算する: 単純な移動平均値 (SMA) を使って閉店価格 (ベース) の移動平均値を計算し,閉店価格の移動平均値に対する標準偏差値 (dev) を計算する.
  2. 上部と下部帯を計算します 上部帯はベース+デブ*倍数で,下部帯はベース−デブ*倍数で,倍数は波動幅の倍数です
  3. 取引シグナルを生成する: 閉じる価格が下帯を超え,現在の閉じる値がオープン値より小さい場合,ロングシグナルを生成する. 閉じる価格が上帯を超え,現在の閉じる値がオープン値より大きい場合,ショートシグナルを生成する.
  4. ダイナミック・テイク・プロフィート: ポジションを開いた後,エントリー価格とテイク・プロフィートの割合に基づいて,テイク・プロフィートの価格を計算し,価格がテイク・プロフィートのレベルに達するとポジションを閉じる.
  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))


関連性

もっと