
この戦略は,トレンドを追跡する移動平均をベースにした取引戦略である.この戦略は,異なるパラメータで設定された最高価格と最低価格の移動平均を使用して,市場のトレンドを判断し,トレンドの転換点で,対応する取引シグナルを生成する.価格が向上を追跡する移動平均を破るとき,多めに行い,価格がダウンを追跡する移動平均を破るとき,空きにする.この戦略は,同時にATRを使用して,ストップとストップのレベルを設定する.
この戦略は,異なるパラメータの設定による最高価格と最低価格の単純な移動平均を使用して,市場動向を判断する.具体的には,移動平均を追跡する2つのグループを作成します.
h1とl1で構成される上位追跡移動平均システム。h1は,市場トレンドの上線を表す最高価格のシンプル移動平均である.l1は,h1を減算したATR値の構成の下線である。価格がh1を突破すると多位シグナルが生成され,価格がl1を突破すると平位シグナルが生成される。
h2とl2からなる下方追跡移動平均システム。h2は最低価格のシンプル移動平均で,市場トレンドの下線を表します.l2はh2とATR値からなる上線です。価格がh2を下を通るとき空き信号を生じます.価格がl2上を通るとき平仓信号を生じます。
双線システムの利用により,トレンドの転換点をより正確に判断し,一部のノイズ取引をフィルターできます.同時に,ATR値は,各株のリスク/利益比率を制御するために,停止と停止のレベルを設定するために使用されます.
この戦略の利点は以下の通りです.
この戦略にはいくつかのリスクがあります.
対策として
この戦略は以下の点で最適化できます.
この戦略は,全体としてシンプルで実用的なトレンド追跡戦略であり,核心理は,双線フィルターとATRダイナミックストップを介してトレンド転換を認識し,単一の損失を制限することである.一定の実戦価値があり,同時に大きな最適化スペースがある.パラメータ調整,他の指標と組み合わせることでより良い効果を得ることができる.
/*backtest
start: 2023-12-05 00:00:00
end: 2024-01-04 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("I Like Winners And Love Loosers!", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
highest_length = input(200, type=input.integer, minval=1, title="Highest Length")
highest_average = input(10, type=input.integer, minval=1, title="Highest Average Length")
lowest_length = input(200, type=input.integer, minval=1, title="Lowest Length")
lowest_average = input(10, type=input.integer, minval=1, title="Lowest Average Length")
atr_length = input(14, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(2, type=input.integer, minval=1, title="ATR Multiplier")
a = atr(atr_length) * atr_multiplier
h1 = sma(highest(high, highest_length), highest_average)
l1 = h1 - a
h2 = sma(lowest(low, lowest_length), lowest_average)
l2 = h2 + a
buy1_signal = crossover(close, h1)
sell1_signal = crossunder(close, l1)
strategy.entry("Buy", strategy.long, when=buy1_signal)
strategy.close("Buy", when=sell1_signal)
buy2_signal = crossunder(close, h2)
sell2_signal = crossover(close, l2)
strategy.entry("Sell", strategy.short, when=buy2_signal)
strategy.close("Sell", when=sell2_signal)
y1 = plot(h1, title="H1", color=color.green, transp=50, linewidth=2)
y2 = plot(l1, title="L1", color=color.red, transp=50, linewidth=2)
y3 = plot(h2, title="H2", color=color.green, transp=50, linewidth=2)
y4 = plot(l2, title="L2", color=color.red, transp=50, linewidth=2)
fill(y1,y2,color=color.green)
fill(y3,y4,color=color.red)