
この戦略はブリン帯に基づくトレンド追跡戦略である.これは,ブリン帯を計算して株価の上下区間を用い,K線実体と組み合わせてトレンドの方向を判断し,トレンド区間突破時にロング/ショートリング操作を行う.この戦略は,明らかなトレンドがある株に適用され,トレンドの中長線利益の機会を掴むことができる.
この策略は,ブリン帯の上帯,中線,下帯を用い,価格区間を判断する.ブリン帯の上下2帯は価格を包み,中線は均線であり,帯幅は価格の変動度に応じて変化する.価格が上からブリン帯を突破すると,価格が上から突破区間を始めることを示し,リエーブは多作する.価格が上から下からブリン帯を突破すると,価格が下から突破区間を始めることを示し,空き信号である.
ブリン帯域の突破がトレンド方向を判断した後,戦略はK線実体方向と組み合わせて確認する.K線実体方向がトレンド方向と一致する場合は,多頭トレンドの陽線が発生した場合,ポジション開設操作を行う.K線実体方向がトレンド方向と反対する場合は,多頭トレンドの陰線が発生した場合,この信号をスキップする.この設計の目的は,偽突破によるさらなるリスクを回避することである.
具体的には,戦略の取引シグナル生成規則は以下の通りです.
ブリン帯の上下線と中線を計算して,価格の位置を判断します.
価格がブリン帯を上から下へ突破すると,多頭信号と判断します.
この時点で,K線が陽線で,トレンドを確認すると,多ポジションを開きます.
価格が上から下へとブリン帯下線を突破すると,空頭信号と判断する.
K線が陰線であれば,トレンドを確認し,空白をします.
ストップまたはストップ損失の割合
ブリン帯域を突破して入場し,K線実体方向と組み合わせて二次確認を行うことで,トレンド方向を効果的に識別し,トレンド初期に好ましいENTRYを得て,トレンド中期に利な出場を得ることができる。
これは典型的なトレンド追跡戦略で,以下の利点があります.
ブリン帯を使用し,波動率の異なる株に適応し,突破区間を動的に調整できます.
K線実体との組み合わせで二次確認を行うことで,偽突破をフィルタリングできます.
中長線保有により,取引頻度が低く,取引コストと滑点損失を削減する.
トレンドを中期に追跡し,短期的な波動を避けることで,よりよいリスク/利益の比率を得ることができます.
プログラム量化実行,優れたフィードバック結果,安定したリールディスクパフォーマンス
戦略コンセプト 明確で分かりやすい,拡張可能な
ブリン帯によってトレンドの方向を判断し,K線は入場タイミングを確認し,中長線の数値優位性による収益の機会を効果的に捉えることができる.これは,より強力な実戦性を持つ戦略である.
この戦略にはいくつかのリスクがあります.
突破失敗のリスク ブルリン帯突破は本質的に確率的な出来事であり,必ず偽突破の可能性が存在する.
逆転リスク。中長線トレンドも逆転が起こりうるため,リスクを管理するために合理的な止損点を設定する必要がある。
パラメータ最適化リスク ブルイン帯のパラメータとストップポイントは,異なる株式に応じて合理的に最適化する必要がある.そうでなければ,戦略の安定性に影響を与えるだろう.
過剰最適化のリスク. 過去データに対する過剰最適化のパラメータは,策略のカーブフィッティングを引き起こす.
实体実行のリスク. 程序反測と实体実行にも一定の偏差がある.
リスクの改善には,以下の方法があります.
ブリン帯域のパラメータを最適化して,適切な帯域幅を選択します.
取引量などの他の要因と組み合わせて,トレンドを確認します.
ダイナミックにストップポイントを調整し,過剰な反転が損失を引き起こすのを防ぐ.
ウォーク・フォワード・アナリティクスなどの方法により,過適合を回避する.
注文の仕方を最適化し,实体ディスクの実行効率を制御する.
この戦略は,以下の側面からさらに改善できます.
KDJ,MACDなど,より多くの指標確認トレンドと組み合わせて,信号の精度を向上させる.
固定パラメータではなくブリン帯パラメータを動的に最適化する機械学習の方法.
突破点の近くで取引区間を設定し,より正確な取引信号を生成します.
ストップ・ストップ・ストップ戦略を最適化し,動的トラッキングストップまたは部分ストップ方法を採用する.
資金管理の最適化,ポジションの動的調整,単一リスクの管理を導入する.
高級実行方法と組み合わせて,実盤の効果を向上させ,取引コストと滑り点を削減します.
市場環境に対する判断を高め,特定の状況で戦略を閉じて,リスクをコントロールする.
より多くの技術指標と最適化手段を導入することで,戦略の安定性と収益性をさらに高め,より優れた反省と実績を得ることができます.
この戦略は,典型的なトレンド追跡戦略であり,中心的な考え方は,ブリン帯を動的区間として使用して,価格トレンドの方向を判断することです.K線実体と組み合わせて二次確認を行い,トレンドの初期にブリン帯の突破点に入場し,トレンドの中期における量級優位性を目標としています.
この戦略には,ブリン帯判断傾向,K線確認信号,取引頻度の低下,プログラム化された実行などの利点がある.また,偽突破のリスク,ストップダメージ最適化の難しさ,リッドディスク効果偏差などの問題がある.より多くの技術指標,動態最適化パラメータ,および高度な実行手段の導入により,戦略の安定性とリッドディスクパフォーマンスをさらに強化することができる.
概して,この戦略は,典型的なトレンド追跡戦略として,その核心思想は明確で,実行しやすい,強力な可行性を持っています.継続的な最適化と厳格なリスク管理の下で,量化取引システムの有効な戦略モジュールになることができます.
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Noro's Bands Scalper Strategy v1.2", shorttitle = "Scalper str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close
//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2
//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd1 = center + distsma / 2
ld1 = center - distsma / 2
//Trend
trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]
//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")
//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)
//Body
body = abs(close - open)
smabody = sma(body, 100)
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and close < open)) ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and close > open)) ? 1 : 0
if up7 == 1 or up8 == 1
strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)
if dn7 == 1 or dn8 == 1
strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)