ボーアバンドのブレークスルー戦略


作成日: 2023-09-21 10:38:13 最終変更日: 2023-09-21 10:38:13
コピー: 0 クリック数: 607
1
フォロー
1617
フォロワー

概要

この戦略は,ボール帯の指標設計に基づいており,価格がボール帯を突破して下軌道に乗るとき,それに応じて多かれ少なかれの操作が行われます. 戦略は,突破の動きを捉えることで利益を得ます.

戦略原則

  1. ボール帯の中線,上線,下線を計算する
  2. 突破下線時に多量作動;突破上線時に空作動
  3. 取引開始時刻を設定し,取引区間を制限する
  4. ポジション保持時間を設定し,デフォルトは当日の平仓です.

具体的には,この戦略は最初に長さである中道SMAを計算し,また,標準差の複数倍で計算された上下道を行います. 閉盘価格が下から上へ下線を突破すると,多入場を行います. 上から下へ上線を突破すると,空き入場を行います. 同時に,止まり時間制限の取引区間を設定します.

この戦略は,価格が上下軌道突破した後の拡大状況を捉えようとする.下下軌道突破時に多方勢力が強化され,上下軌道突破時に空側勢力が強化され,取引は同じ方向に有利である.

優位分析

  1. シンプルで直感的で,理解し,実行しやすい
  2. ボール帯の指数でトレンドの突破を判断し,トレンドを追跡する能力がある.
  3. 柔軟に調整できるパラメータ,異なる周期と品種に適用
  4. 昼間を空けても夜間リスクは抑えられる
  5. 単独で多頭または空頭取引を開始できます.

リスク分析

  1. 突破の偽突破のリスク. 突破後,価格が再び下がる可能性がある.
  2. 適度にパラメータを調整する.異なる周期でパラメータを調整する.
  3. 潜在的損失はリスクを拡大する. 突破幅を拡大することは単一の損失を拡大する可能性がある.
  4. 取引コストはリスクを拡大します. 頻繁に取引する場合は取引コストが増加する可能性があります.

入場条件の最適化,ストップ・ロスの追加,トレンド・フィルターの導入などにより,上記のリスクを低減することができる.

最適化の方向

  1. パラメータを周期ごとに最適化
  2. トレンドを追跡するために再入場と加減条件を追加
  3. リスク管理のための ストップ・ロスの策略を増やす
  4. 重要なニュースイベントを避けるために取引時間を設定する
  5. トレンドフィルター条件を曲折フィルターで評価する
  6. 異なるポジション保持時間をテストし,結果を比較する

要約する

この戦略は,ボール帯に基づく突破策であり,突破が展開するトレンドを捕捉して利益を得る.優点は,アイデアがシンプルで,実行しやすいこと;欠点は,曲折トレンドの誤導に容易である.パラメータ最適化,ストップ・ロズ戦略,取引時間制御などの方法で戦略の効果を高め,リスクを制御することができる.この戦略は,トレーダーが指標の適用と突破取引の基本的な方法を理解できるようにする.

ストラテジーソースコード
/*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()