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

Bollinger Bands をベースにしたインテリジェント・トラッキング・トレーディング・戦略

作者: リン・ハーンチャオチャン開催日:2024年1月17日 (火) 14:05:36
タグ:

img

概要

この戦略は,ボリンジャーバンド指標に基づいて設計されています. 価格が上部帯を超えるとショートで,価格が下部帯を超えるとロングで,インテリジェント・トラッキング・トレードを実現します.

戦略の論理

この戦略は,ボリンジャーバンドの中間線,上部帯,下部帯をベース指標として使用する.中間線は,n日間の閉盤価格の移動平均線である.上部帯は,中間線が2つの標準偏差で上昇し,下部帯は2つの標準偏差で下がる.価格が下部帯を上向きに突破すると,ロングに行く.価格が上部帯を下向きに突破すると,ショートに行く.これは市場の変動に基づいて価格の知的な追跡を可能にします.

具体的には,この戦略は主に2つの指標を評価しています.

  1. ta.crossover ((ソース,下): 閉値が下帯以上に突破し,ロング

  2. ta.crossunder ((ソース,上方): 閉じる価格が上部帯を下回り,ショート

出口条件が起動すると,既存のポジションを平らにするために,strategy.cancel (キャンセル) 関数を使用します.

利点分析

この戦略の主な利点は以下の通りです.

  1. 市場変動を把握し,価格動向を効果的に追跡できるボリンジャー・バンド指標に基づいています
  2. わかりやすく,シンプルな論理,理解し実行しやすい
  3. 期間長さと標準偏差倍数などのパーマータをカスタマイズできます
  4. 戦略のパフォーマンスを最適化するための設定可能なストップ・ロース,ブレイク・イブン,またはトレーリング・ストップ・メカニズム

リスク分析

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

  1. ボリンジャー・バンドのブレイクが誤った信号に易い
  2. パラメータの最適化によってパフォーマンスが向上し,不適切なパラメータは収益性に影響を与える
  3. ストップ・ロスの追跡が困難で,単一の取引損失を効果的に制御できない

対応する解法:

  1. 偽のブレイクを避けるために他の指標でフィルターを追加します
  2. 最適なパラメータセットを見つけるために徹底的にパラメータをテスト
  3. 移動またはトレンドフォローストップ損失メカニズムを追加する

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

戦略は以下によってさらに最適化できます.

  1. 傾向の方向性を決定するための他の指標を追加し,ボリンガー戦略に不適切な市場条件を回避する
  2. 最適な期間を見つけるために異なる期間をテストする
  3. 単一の取引損失を効果的に制御するための移動または遅延停止メカニズムを組み込む

結論

この戦略は,ボリンジャーバンド指標に基づいて設計され,上下帯の価格ブレイクを使用して価格を自動的に追跡する.論理はシンプルで市場の変動に敏感である.パラメータチューニングとストップロスのメカニズムを通じてさらなる最適化が可能である.全体として,この戦略は,波動性が高い指数や商品にうまく機能する.トレーダーは,アスティカ取引戦略を導き出すために,彼らの取引好みに基づいてバックテストと最適化することができます.


/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands Strategy with alerts (incl. pending orders) via TradingConnector to Forex", overlay=true)
source = close
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)
if (ta.crossover(source, lower))
	strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE")
    alert(message='long price='+str.tostring(lower), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandLE")
    alert(message='cancel long', freq=alert.freq_once_per_bar_close)
if (ta.crossunder(source, upper))
	strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE")
    alert(message='short price='+str.tostring(upper), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandSE")
    alert(message='cancel short', freq=alert.freq_once_per_bar_close)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

//Lines of code added to the original built-in script: 14, 17, 20 and 23 only.
//They trigger alerts ready to be executed on real markets through TradingConnector
//available for Forex, indices, crypto, stocks - anything your broker offers for trading via MetaTrader4/5


もっと