この戦略は,ボリンジャー・バンドの指標に基づい,価格がボリンジャー・バンドの上または下線を突破したとき,ロングまたはショートポジションを取ります.これは突破動きを捕獲して利益を得ることを目的としています.
特に,最初に長さの長さの中間線SMAと,標準偏差の複数倍の上下線を計算する. 閉じるが下線から上へと突破すると,ロングに行く. 閉じるが上線から突破すると,ショートに行く. また,取引時間を制限するために開始と終了時間を設定する. 日常開業前に退出する.
この戦略は,価格がバンドを突破した後,拡大する動きを捕捉しようとしています. 下帯を突破すると上昇力強化が示されます.上帯を突破すると下降力強化が示されます. したがって,ブレイクラインに沿った取引は有利です.
エントリールールを最適化したり,ストップ・ロスを追加したり,トレンドフィルターを導入したりすることでリスクを減らすことができます.
これはボリンジャーバンドに基づいたブレイクアウト戦略である.ブレイクアウト動きから利益を得る.利点はシンプルな論理と簡単な実装である.デメリットは偽ブレイクアウトへの易感性である.リスクはパラメータ最適化,ストップ損失,取引時間制御などによって管理することができる.トレーダーは指標と取引ブレイクアウトの使用の基礎を理解することができます.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy("Noro's Bollinger Strategy v1.0", shorttitle = "Bollinger str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") length = input(20, minval=1) mult = input(1.0, minval=0.001, maxval=50) fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") source = close basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev up = close < lower dn = close > upper exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) if up strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if time > timestamp(toyear, tomonth, 31, 00, 00) or exit strategy.close_all()