ダイナミックボリンジャーバンドの時間範囲選択戦略


作成日: 2024-02-05 16:04:40 最終変更日: 2024-02-05 16:04:40
コピー: 0 クリック数: 624
1
フォロー
1617
フォロワー

ダイナミックボリンジャーバンドの時間範囲選択戦略

概要

この策略は,ブリン帯指数に基づく,歴史の時間帯を選択できるダイナミックブリン帯取引策を実現している.この策略は,ユーザーが反測の開始と終了時間を選択することを可能にする,それによって異なる時間帯のダイナミックブリン帯策略反測と比較を実現している.

戦略名

この策略は,動ブリン帯時間帯域選択策略と呼ばれています.この名前は,動ブリン帯と時間帯域選択の2つのキーワードを含んでおり,この策略の主要な機能を正確に概括しています.

戦略原則

この戦略の核心原理は,ブリン帯の指標の動的上下軌道に基づいて取引信号を生成することである.ブリン帯の中央軌道線はn日の単純移動平均であり,上下軌道線は中央軌道線にそれぞれm倍のn日の標準差を加算および減算する.価格が下下軌道線を横切るときは多頭入場を行う.価格が上上軌道線を横切るときは空頭入場を行う.

策略のもう一つの核心機能は,選択する策略の回測時間範囲を許可することです. 策略は,月,日,年,時間,分などの複数の次元で回測開始と終了時間を選択する入力パラメータを提供します. これは,ユーザが異なる歴史的時間帯を選択して,戦略の効果を回測し検証できるようにし,より全面的で動的な戦略分析を実現します.

具体的には,この策は,timestamp () 関数によって選択された開始と終了時間をタイム形式に変換し, time>=startとtime<=finishの条件によって策の有効な反測時間ウィンドウを設定する.このように動的な時間範囲選択機能が実現される.

戦略的優位性

この戦略の最大の利点は,ダイナミックなブリン帯の戦略と任意の時間範囲の選択の完全な組み合わせを実現することです.これは,ユーザがより柔軟で全面的に戦略を反省し,検証できるようにします.具体的利点は次のとおりです:

  1. 動的ブリン帯の戦略を導入し,市場の下落時にトレンドの逆転信号を捕捉し,トレンド取引に適しています.

  2. 任意の歴史的時間帯を選択して反省をサポートし,異なる市場環境下での戦略のパフォーマンスを分析し,戦略のダイナミックな最適化を可能にします.

  3. ブリン帯の指標の自律性により,より広範な市場環境の変化に合わせてパラメータを自動的に調整できます.

  4. 長期および短期パラメータの調整機能が提供され,ユーザーは自分のニーズに応じてパラメータを最適化して,戦略を現実状況により適合させることができる.

  5. 特定の時間と分を選択して測定し,精度が高く,より詳細な戦略分析を行うことができます.

  6. 中国語と英語の対応が良好で,ユーザー体験も良好です.

戦略リスク

この戦略の主なリスクは,ブリン帯指標がトレンド反転を判断する不確実性にある.具体的リスク点は以下の通りである.

  1. ブリン・バンド指数自体は市場の波動を完璧に判断できず,誤ったシグナルが出る可能性があります.

  2. ブリン帯のパラメータを正しく選択しない場合,戦略がうまく機能せず,損失を招く可能性があります.

  3. 特定の市場環境下での指標の失効の可能性

  4. 返信時間帯の選択が不適切で,重要な市場の状況が無視されている可能性があります.

これらのリスクは,以下のような方法で制御・改善できます.

  1. ブリン帯のパラメータを最適化し,中軌道線周期を調整し,異なる品種と時期に対応する.

  2. 移動平均線などの他の指標と組み合わせて確認し,誤信号を減らす.

  3. 戦略の安定性を評価するために,より多くの市場をテストする.

  4. ストップ・ロスを設定し,単一損失をコントロールする.

戦略最適化の方向性

この戦略には,以下の主な改善策があります.

  1. 機械学習アルゴリズムと組み合わせたブリン帯パラメータの動的最適化.

  2. パラメータ設定の安定性を全面的に評価する,突破回帰などの機能を追加します.

  3. モバイル・ストップ,ストップ・トラッキングなどの機能が追加され,利潤をロックし,リスクを低減する.

  4. 入場ロジックを最適化し,取引量急増の確認などの条件を設定します.

  5. 株価指数期貨の利回りなどの戦略と組み合わせて,戦略の適用範囲を広げます.

  6. 自動取引機能の追加,フィードバックからリリカルディスクへの移行の最適化.

戦略の実戦効果と安定した収益性を大幅に向上させることができる.

要約する

この戦略は,ブリン帯の戦略と任意の歴史時間帯の選択の有機的な組み合わせを成功的に実現した.この高度に柔軟で動的な反射分析機能は,異なる市場環境で,ユーザが戦略パラメータを全面的に正確に調整し,最適化できるようにする.同時に,提供された可視化操作は,ユーザ体験を大幅に改善した.この戦略は,ユーザに強力で効率的な量化取引ツールを提供することが予想される.

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

//@version=3

strategy("BB Range", shorttitle = "BB Range", overlay=true, max_bars_back=200)

// Revision:        1
// Author:          @allanster 

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 7, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 20, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2019, title = "From Year", minval = 2017)
FromHour  = input(defval = 17, title = "From Hour", minval = 00)
FromMinute  = input(defval = 00, title = "From Minute", minval = 00)

ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)
ToHour  = input(defval = 23, title = "To Hour", minval = 00)
ToMinute  = input(defval = 59, title = "To Minute", minval = 00)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, FromHour, FromMinute)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, ToHour, ToMinute)        // backtest finish window
window()  => true
source = close
length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

upper_stop = upper * 1.05
lower_stop = lower * 0.95

buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper)

if (crossover(source, lower))
    strategy.entry("BBandLE", strategy.long, stop=lower_stop, when = window(), oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, upper))
    strategy.entry("BBandSE", strategy.short, stop=upper_stop, when=window(), oca_name="BollingerBands",comment="BBandSE")
else
    strategy.cancel(id="BBandSE")