リバーサル・トラッキング戦略は,移動平均を市場フィルターとして組み合わせるトレンドトラッキング戦略である.低価格で購入し高値で販売するために価格逆転信号が発生するときにポジションを確立し,価格逆転後にトレンドを追跡し,過剰なリターンを獲得する.
この戦略の主な論理は,閉じる値がN日前の低値より低いときロングポジションを確立し,閉じる値がN日前の高値より高いときロングポジションを閉鎖すること.また,200日間の単純な移動平均を市場フィルターとして組み合わせます.価格が200日間の移動平均を超えるとロングポジションが確立されます.
この戦略は価格逆転理論に基づいている.この理論は,株価の傾向が繰り返し高値と低値を示すと信じている.価格がN日前に形成された低値を下回ると,ロングポジションを確立する時間です.価格がN日前に高値を下回ると,逆転上昇傾向が終了し,利益を得るときです.
具体的には,この戦略のコアモジュールとは,
市場フィルター
市場動向を判断するために200日間の単純な移動平均値を使用します.株式価格が200日線を超える場合にのみポジションを確立することを許可します.これは牛市場でのショートポジションや熊市場でのロングポジションを確立することを避けます.
逆信号判断
論理: 閉じる < 最低価格 N 日前
閉じる値がN日前の最低値より低い場合 (5日デフォルト) は,下向き価格分解を示し,買い信号を誘発します.
利益信号判断をしてください
ロジック: 閉じる > N日前の最高価格
閉じる値がN日前の最高値 (5日デフォルト) よりも高くなった場合,逆転上昇傾向が終わったことを示し,収益シグナルを誘発します.
5% ストップ損失
過剰な損失を避けるために 入場価格から 5%のストップ・ロスを設定します.
この戦略の主な利点は以下の通りです.
この戦略にはいくつかのリスクもあります:
戦略は以下の側面で最適化できます.
リバーサル・トラッキング・ストラテジー (Reversal Tracking Strategy) は,移動平均指標を組み合わせて市場状況を決定し,リバーサル・理論を利用してエントリータイミングを選択する.リスクコントロールメカニズムは,低価格で購入し,高価格で販売することで過剰なリターンを狙っている.この戦略は,パラメータ最適化,補助フィルターを追加などによって改善することができる.トレンド市場では良いリターンを達成することができる.
/*backtest start: 2024-01-06 00:00:00 end: 2024-02-05 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // © HermanBrummer // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // BUYS WHEN THE CLOSE IS SMALLER THAN THE LOW OF 5 DAYS AGO // SELLS WHEN THE CLOSE IS HIGHER THEN THE HIGH OF 5 DAYS AGO // USES A 200 MOVING AVERGE AS A FILTER, AND DOESN'T TAKE TRADES IF THE MARKET IS BELOW IT'S 200 MA // USES A 5% STOP LOSS FROM ENTRIES strategy("REVERSALS", overlay=true) StopLoss = input(.95, step=0.01) HowManyBars = input( 5 ) /// EXITS if close > sma(high,HowManyBars)[1] strategy.close_all() /// ENTRIES MarketFilter = sma(close, 200) F1 = close < sma(low,HowManyBars)[1] F2 = close > MarketFilter plot(MarketFilter, "MarketFilter", color.yellow) strategy.entry("Long", true, 1, when=F1 and F2) /// STOP LOSS StopLossLine = strategy.position_avg_price * StopLoss plot(StopLossLine, "StopLossLine", #FF0000) strategy.exit("Exit", stop=StopLossLine)