ウィリアムズの洗練されたオシレーター(AC)バックテスト戦略


作成日: 2023-12-18 12:03:38 最終変更日: 2023-12-18 12:03:38
コピー: 0 クリック数: 751
1
フォロー
1621
フォロワー

ウィリアムズの洗練されたオシレーター(AC)バックテスト戦略

概要

この戦略は,著名な取引専門家ビル・ウィリアムズによって設計されたウィリアムズ指数の精巧な振動器 (Awesome Oscillator,AO) に基づいており,異なる周期の平均価格の差値を計算して,診断トレンドと市場の動力の振動指数を形成し,購入や売却を導くために相応の取引シグナルを設計しています.

戦略原則

この戦略の核心指標は精巧な振動器 ((AO) である.その計算式は以下のとおりである. AO = SMA ((中値,5日) - SMA ((中値,34日) 中間価格は ((最高価格+最低価格) /2。この公式は,2つの異なる周期の中間価格SMAから価格動向情報を抽出する。快線SMA ((5日) と慢線SMA ((34日) の差値を計算することによって,快線が慢線より高いときは買入シグナル,快線が慢線より低い時は売り出札シグナルとなる。

この戦略では,エラーシグナルを波するために,AOに5日SMA操作が行われ,反転モードが設定され,ロング/ショートシグナルを反転させることで異なる取引方向を実現することができる.AO値が以前より高いときは,買取機会として,青い柱状にマークされ,AO値が以前より低いときは,売出機会として,赤い柱状にマークされ.

戦略的優位性

  1. 中間価格ではなく終盤価格を使用することで,偽ブレイクがSMAに与える影響を軽減し,安定性を高めることができます.
  2. SMAは,市場変化に敏感に反応します.
  3. SMAダブルフィルター,高周波ノイズを除去し,信号品質を向上させる
  4. 市場環境に応じて柔軟に調整できるパラメータ
  5. 直観的な柱状の売り場が,操作を判断しやすく

リスクと解決策

  1. 市場変動の頻度を慎重に評価し,過適合を防ぐためにパラメータを調整する
  2. 振動的な市場では,複数の誤操作が発生する可能性があります. 適切な止損範囲を緩め,またはポジションのサイズを減らすことができます.
  3. 回測データは信頼できない,実体と模擬は異なる可能性がある.複数の組み合わせの実体検証,分批の倉庫建設が推奨される

最適化の方向

  1. 通信量指標などのフィルタリングを増やし,信号の質を向上させる
  2. ストップ・ロスの策略に加入し,個々の損失操作を制御する
  3. ポジション管理の最適化,市場の変動に応じてポジションの増減
  4. 他の指標と組み合わせてトレンドの方向を判断し,波動的な市場の逆転を防ぐ

要約する

この戦略は,中価・遅いSMA構造の設計の精巧な振動器を利用し,市場の動力の変化を診断し,買入シグナルを直感的に理解している。しかし,振動と逆転の影響を受けることがあります.安定性を高めるためにパラメータと止損戦略を適切に調整する必要があります。リスクを制御する前提で,この戦略はシンプルで実用的で,さらに最適化される価値があります。

ストラテジーソースコード
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/12/2016
//    This indicator plots the oscillator as a histogram where blue denotes 
//    periods suited for buying and red . for selling. If the current value 
//    of AO (Awesome Oscillator) is above previous, the period is considered 
//    suited for buying and the period is marked blue. If the AO value is not 
//    above previous, the period is considered suited for selling and the 
//    indicator marks it as red.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy("Bill Williams. Awesome Oscillator (AC)")
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
reverse = input(false, title="Trade reverse")
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
xSMA_hl2 = sma(xSMA1_SMA2, nLengthFast)
nRes =  xSMA1_SMA2 - xSMA_hl2
cClr = nRes > nRes[1] ? blue : red
pos = iff(nRes > nRes[1], 1,
	   iff(nRes < nRes[1], -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, style=histogram, linewidth=1, color=cClr)