
この戦略は,価格変動が大きい,傾向がはっきりしない株,指数,および大商品に適用されます. この戦略は,価格の傾向を識別するために,複数のパラメータと組み合わせて,入場と退出条件を設定し,この種のリスクのある資産の自動取引を実現します.
この戦略は,アロンラインの創始者Tushar Chandeの考えから生まれた.Chandeは,アロン振動器が50以上または以下であるときに,多頭と空頭トレンドを識別できると考えます.これは,単純アロンラインとアロンクロスがトレンドでない市場での欠点を補うのに役立ちます.
具体的には,戦略は,最初に長さ19サイクルのアロン上線,アロン下線,アロン振動器を計算する.振動器は上線減去下線で計算する.そして,中線を25で,上線を75で,下線を85で設定する.当日の振動器上の中線を穿越すると多し,下線を穿越すると空になる.平仓条件は上線を穿越すると多し,下線を穿越すると空倉である.
このように,中線は,トレンドの方向を判断するためにフィールドに入ると,上下線は,トレンドの逆転を判断してフィールドの外に出ると,アルロン振動器指標に基づく自動取引を実現する.
この戦略は,従来型のトレンド追跡戦略と比べると,以下の利点があります.
全体として,この戦略は,アロン振動器の指標の優位性を組み合わせ,特定の品種の自動取引,勝利率,収益性を良好に実現しました.
この戦略にはいくつかのリスクがあります.
これらのリスクポイントは,パラメータの調整,コードの最適化によって改善および軽減することができます.さらに,合理的な位置と資金管理は,潜在的なリスクを効果的に制御することができます.
戦略の効果をさらに高めるために,以下のような点で最適化することができます.
戦略の安定性,勝利率,収益性は,多面的なテストと最適化によって大幅に向上します.
この戦略は,アロン振動器指標をベースに,創意的に,波動性が大きい,傾向が明らかでない品種に対する自動取引を実現している.従来の傾向戦略と比較して,この種の品種において,その効果はより優れている.パラメータ設定により,厳格な取引条件も実現している.戦略の優位性は顕著であるが,一定の改善の余地もある.標的の最適化により,効果はさらに向上することができる.この戦略は,量化取引の実践に参考となる考え方を提供している.
/*backtest
start: 2023-12-15 00:00:00
end: 2024-01-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
// by Saucius Finance https://saucius-finance.blogspot.com/
// copyrights reserved :)
// This strategy derives form the consideration of the author, Tushar Chande, that, in "more patterns" paragraph,
// long and short trends are identified by oscillator < or > line 50.
// This helps because simple Aroon and Aroon crosses suffer in not trending periods.
// original article avabile in:" Stocks & Commodities, V. 13:9 (369-374) : A Time Price Oscillator by Tushar Chande, Ph.D.""
strategy("Aroon Oscillator strategy by Saucius", overlay=false)
//building aroon lines, Embodying both Aroon line (Up and Down) and Aroon Oscillator
length = input(19, minval=1)
level_middle = input(-25, minval=-90, maxval=90, step = 5)
levelhigh = input(75, minval=-100, maxval=100, step = 5)
levellow = input(-85, minval=-100, maxval=100, step = 5)
upper = 100 * (highestbars(high, length+1) + length)/length
lower = 100 * (lowestbars(low, length+1) + length)/length
oscillator = upper - lower
plot(upper, title="Aroon Up", color=blue)
plot(lower, title="Aroon Down", color=red)
plot(oscillator, title="Aroon Oscillator", color = yellow)
hline(level_middle, title="middle line", color=gray, linewidth=2)
hline(levelhigh, title ="upper border", color=gray, linewidth=1)
hline(levellow, title ="lower border", color=gray, linewidth=1)
// Entry //
entryl = oscillator[1] < level_middle[1] and oscillator > level_middle
entrys = oscillator[1] > level_middle[1] and oscillator < level_middle
strategy.entry("Long", true, when = entryl)
strategy.entry("Short", false, when = crossunder (oscillator, level_middle))
// === EXIT===
exitL1 = oscillator[1] > levelhigh[1] and oscillator < levelhigh
exitS1 = oscillator[1] < levellow[1] and oscillator > levellow
strategy.close("Long", when=entrys)
strategy.close("Short", when=entryl)
strategy.close("Long", when= exitL1)
strategy.close("Short", when= exitS1)