
バイレールトラッキング振動型戦略は,ブリンバンドとEMA指標に基づいた定量取引戦略である.この戦略は,Bollinger BandsとEMAに基づいたオシレータパターンを特定することにより,短期価格変動をキャプチャしようと試みている.
この戦略は,ブリン帯とEMAを同時に技術指標として使用する.ブリン帯は,上線,中線,下線を含み,価格が震動区間にあるかどうかを判断することができる.EMAは,価格の動向を判断できるトレンド追跡指標である.
この策略は,まずブリン帯の中間軌道,つまり価格のn日間の簡易移動平均を計算し,そのn値は20日のデフォルトである. ブリン帯上線と下線は,それぞれの中間軌道加減の2つの標準差である. そして,9日間のEMAを計算する.
価格がEMAを上を走るときは買取信号とみなされ,価格がEMAを下を走るときは売り信号とみなされる.このように,EMAは急速な平均線として,価格の短期的なトレンドを捕捉することができる.ブリン帯中軌は緩やかな平均線として,部分的な偽信号をフィルターすることができる.
したがって,この戦略は,EMAとブリン帯の双線追跡を介して,可能な限り価格の短期的な変動を捕捉します.EMAの上を通過するときに購入し,EMA下を通過するときに販売します.
この2つのトラッキング戦略には以下の利点があります.
EMAとブリン帯の中間線双線追跡を使用し,傾向と振動を同時に判断し,短期価格の変動をより正確に捉えることができます.
EMAは高速平均線として,ブリン帯中軌は遅速平均線として,両方が配合して使用され,偽信号を効果的にフィルターして信号品質を向上させる.
指標パラメータは調整可能で,n値とブリン帯標準差は市場に応じて調整可能で,適応性が強い.
戦略はシンプルでわかりやすく,短期的な震動に適しています.
適切なパラメータを最適化して,他の指標のフィルターと組み合わせて,戦略の安定性をさらに向上させることができます.
この戦略にはいくつかの潜在的リスクがあります.
ブリン帯の上下線は,サポートと圧力が形成されやすく,早期に止損を誘発する可能性があります.
EMAとブリン帯の中央交差点の交差点では,価格が逸脱し,誤った信号を発する可能性があります.
大幅なトレンドのとき,EMAはサンカップの底買いポイントや三山の頂売りポイントを形成し,トレンドを逃す可能性があります.
震動が弱くなり,取引のシグナルが減り,継続的な利益は得られない.
パラメータの設定を間違えた場合,過剰取引や取引機会を逃す可能性があります.
取引費用は実際の利益を低下させ,ポジションの規模を制御する必要があります.
この戦略は以下の点で最適化できます.
交通量などの指標を増やし,信号の質が悪い交差信号をフィルターします.
RSIなどの超買超売の指標と組み合わせて,極限地域での買出を避ける.
ATR値に基づいてストップとストップを設定し,ストップを合理的にします.
トレンドの判断を高め,トレンドの状況下で誤ったシグナルを生じさせないようにする.
EMA周期,ブリン帯パラメータなどの最適化パラメータを,異なる市場環境により適合させる.
マシン・ラーニングによる動的最適化パラメータにより,戦略がより柔軟になる.
アルゴリズムによる取引により,より厳格な入場・出場条件を設定し,人間の介入を減らす.
双軌追跡振動型戦略は,EMAとブリン帯双軌追跡価格を同時に利用し,EMA上を通過して中間軌道で買い,EMA下を通過して中間軌道で売り,短期的な価格振動を捕捉する,よりシンプルで実用的ショートライン戦略である.この戦略は,傾向を判断し,偽信号を排除する利点があるが,一定のリスクもある.パラメータ設定,入場出場条件などの継続的な最適化により,この戦略はより安定して信頼性が高くなり,より多くの市場環境に適用できる.これは学ぶことと適用する価値のある戦略思考である.
/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(shorttitle="BBXEMA", title="Bollinger Bands Cross EMA", default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=true)
length = input(20, minval=1)
lengthEMA = input(9)
src = input(close, title="Source")
srcEMA = input(close, title="Source EMA")
//mult = input(2.0, minval=0.001, maxval=50)
// === INPUT BACKTEST RANGE ===
FromYear = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true
basis = sma(src, length)
EMA = ema(srcEMA,lengthEMA)
//dev = mult * stdev(src, length)
//upper = basis + dev
//lower = basis - dev
Buy = crossover(EMA,basis)
Sell = crossunder(EMA,basis)
bb = plot(basis, color=color.red)
signal = plot(EMA, color=color.green)
//p1 = plot(upper, color=color.blue)
//p2 = plot(lower, color=color.blue)
//fill(p1, p2)
strategy.entry("Buy",true,when=window() and Buy)
strategy.close_all(when=window() and Sell)