
この記事では,自己適応指数平滑移動平均 (Adaptive Exponential Moving Average, AEMA) に基づく量化取引戦略を詳しく分析する.この戦略は,ランダム運動量指数指数 (Stochastic Momentum Index, SMI) の無限波動率の形式を使用し,指数移動平均の信号を線として組み合わせ,取引実行の確率を高めるために,カスタマイズ可能な超買超売の値を設定する.
この戦略は,2つの異なる長さのSMI,すなわち短長と長長の2つの長さの差が取引信号を生成する.さらに,戦略は指数移動平均を信号ラインとして利用する.短周期SMIで長周期SMAを横切るときは多,短周期SMIの下では長周期SMAを横切るときは空である.偽の信号を排除するために,多頭入場シグナルはSMIが超売りラインより低く,シグナルラインも超売りラインより低い場合にのみ発生する.空頭シグナルには,SMIが超買いラインより高く,シグナルラインも超買いラインより高い条件が求められる.この二重設定は,戦略を突破事件に対してより敏感にし,偽の突破を効果的に防ぐ.
この戦略の最大の利点は,自主的な適応性にある. この戦略は,カスタマイズ可能な超買超売の値を動的に調整して多空の基準を使用する. この仕組みは,戦略のパラメータを異なる市場環境に応じて調整して最適化させ,より広範な状況タイプに適応させる. さらに,SMIの無限波動率形式は,戦略の感度とタイミングを高めます. 伝統的なSMIと比較して,それはより高い無音効果とより少ない遅延を有します. この戦略は,突発的なイベントに迅速に反応し,ショートラインの取引機会を捕捉することができます.
この戦略の最大のリスクは,そのパラメータ設定への依存性にある.パラメータ設定が不適切であれば,大量に無効な取引シグナルを生成することが容易である.さらに,SMIは,パルス型指標であるため,ランダムな振動市場に対して理想的なパフォーマンスを発揮しない.価格の急激な変動が起こる傾向逆転が発生したときに,戦略は簡単に取り締まることも容易である.これらのリスクを制御するために,厳格なリスク管理手段を採用することを推奨し,同時にパラメータを異なる市場環境に適応するように調整する.いくつかの可能な最適化方向は,下記で述べられる.
この戦略にはいくつかの最適化可能な方向があります.第一に,SMAの長さの異なる組み合わせをテストして最適なパラメータペアを見つけることができます.第二に,単一損失を制御するために入場点の近くでストップを設定することを考えることができます.第三に,RSI,ブリンベルトなどの他の指標と組み合わせて,ダイナミックな超買い超売りラインを設定できます.第四に,機械学習アルゴリズムを使用してパラメータを自動的に最適化できます.
本文は,自適應SMI無限取引戦略の原理,優位性,リスクおよび最適化方向を深入に分析する.この戦略は,自適應値と指数移動平均を信号フィルタリングに使用し,市場ショートラインの機会を効果的に捉えることができる.一定のパラメータ依存性があるにもかかわらず,厳格なリスク制御と多面的な最適化により,この戦略は依然として相当な実用価値を有している.
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © DraftVenture
//@version=5
strategy(title="Adaptive SMI Ergodic Strategy", shorttitle="Adaptive SMI Strategy", overlay = false)
longlen = input.int(12, minval=1, title="Long Length")
shortlen = input.int(5, minval=1, title="Short Length")
siglen = input.int(5, minval=1, title="Signal Line Length")
overS = input.float(-0.4, title = "Oversold", step = 0.01)
overB = input.float(0.4, title = "Overbought", step = 0.01)
erg = ta.tsi(close, shortlen, longlen)
sig = ta.ema(erg, siglen)
plot(erg, color = color.yellow, title = "SMI")
plot(sig, color = color.purple, title="Signal")
hline(0, title = "Zero", color = color.gray, linestyle = hline.style_dotted)
h0 = hline(overB, color = color.gray, title = "Overbought Threshold")
h1 = hline(overS, color = color.gray, title = "Oversold Threshold")
fill(h0, h1, color=color.rgb(25, 117, 192, 90), title = "Background")
longEntry = ta.crossover(erg, sig) and erg > overS and sig < overS
shortEntry = ta.crossunder(erg, sig) and erg < overB and sig > overB
if longEntry
strategy.entry("Long", strategy.long)
if shortEntry
strategy.entry("Short", strategy.short)
// ______ _________
// ___ //_/__ __ \
// __ ,< __ /_/ /
// _ /| | _ ____/
// /_/ |_| /_/