この戦略は,移動平均取引戦略をフォローするトレンドである.市場動向を決定し,ターニングポイントで取引信号を生成するために,異なるパラメータ設定を持つ最高価格と最低価格の移動平均を使用する.価格が上昇する移動平均線を超えると長くなって,価格がダウンするトレッキングラインを下回ると短くなってしまいます.この戦略は,ストップ損失を設定し,利益レベルを取るためにATRを使用します.
この戦略は,市場動向を定義するために,異なるパラメータを持つ最高値と最低値の単純な移動平均を使用する.特に,移動平均を追跡する2つのシステムを作成する.
H1とl1システムは,上向きからトレンドを追跡する.h1は,トレンドの上部帯として機能する最高価格の単純な移動平均値である.l1は,下部帯として機能するATR値をマイナスH1で構成される.価格が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)