超トレンド ストップ・損失・収益戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-08 16:24:03
タグ:

img

概要

スーパートレンド・ムービング・ストップ・ロス・テイク・プロフィート戦略は,スーパートレンド指標に基づく定量的な取引戦略である.この戦略は,ストップ・ロストとムービング・テイク・プロフィートを実装するために,長期および短期間のエントリーおよび出口条件を構築する.この戦略の利点は,持続的なトレンドでより高い利益を達成し,ムービング・テイク・プロフィートを介してほとんどの利益をロックできるという点である.しかし,この戦略はブレイクアウト失敗にも敏感である.

戦略の論理

この戦略は,スーパートレンド指標に基づくトレンドフォロー戦略である.スーパートレンド指標は価格トレンドの方向性を決定することができる.スーパートレンド線が0線を横切ったときに購入・販売信号を生成する.特に,スーパートレンド線が0線を横切ったときに購入信号が生成され,ラインが0線を下回ったときに販売信号が生成される.閉店価格と前日の閉店価格の比率は移動の利得ポイントを決定する.ATRはストップ損失ポイントを決定する.したがって,トレンド方向性を決定するために,移動の利得停止損失戦略はスーパートレンド指標に基づいて構築される.

利点分析

この戦略の最大の利点は,トレンド識別とムービング・テイク・プロフィートの組み合わせである.スーパートレンド指標は0線クロスオーバーを通じてトレンドをかなり正確に把握することができる.ムービング・テイク・プロフィートは,トレンドが続く間,ほとんどの利益をロックすることができます.ストップ・ロスの設定はリスクを制御するのに役立ちます.したがって,戦略は明らかなトレンド市場でより高い利益を達成することができます.さらに,シンプルで明確な論理も戦略の利点です.

リスク分析

この戦略の最大のリスクは,ブレイクアウトの失敗に対する敏感性である.範囲に限定された期間に,スーパートレンドインジケーターは誤ったブレイクアウトを生成し,誤ったポジションを確立させる可能性があります.これは簡単に罠に巻き込まれることがあります.また,移動する取利益メカニズムは,次の動きを逃し,ポジションを早すぎるほど早く退場することがあります.最後に,不適切なストップ損失設定も,リスクが高まるので,あまりにも緩やかまたは攻撃的になり得ます.したがって,これらの分野は戦略が警戒する必要があるものです.

オプティマイゼーションの方向性

戦略は以下の側面から最適化することができる: 1) 誤った信号を避けるためにスーパートレンドパラメータを合理的に決定する; 2) 音量信号などのブレイクアウト信頼性を判断するためのメカニズムを追加する; 3) 収益性を確保しながらウィップソーの可能性を減らすために移動して利益を得るパラメータを最適化する; 4) 静的ストップの代わりに変動性ベースの動的ストップを使用する; 5) 安定性を向上させるためのアンサンブル戦略のための他の指標を追加する.

結論

Supertrend Moving Stop Loss Take Profit戦略は,トレンドの方向性を合理的に決定し,トレンドの方向性を合理的に決定し,トレンドのトレンドの方向性を合理的に決定することができる.しかし,無効なブレイクアウトにも敏感であり,いくつかのリスクがある.パラメータ,判断規則,ストップメカニズムなどをさらに最適化することで,戦略を改善し,安定かつ効率的な取引戦略となる.


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ST Michael Moving TP", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

// Stop loss and profit amount
stop_loss = input(1500, title="Stop Loss Amount")
profit = input (15000, title="Profit Amount")
LongTrailProfit = input (0.91, title = "Long Trailing Profit Taking")
ShortTrailProfit = input (1.01, title = "Short Trailing Profit Taking")

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

long_condition = ta.change(direction) <0
short_condition = ta.change(direction) >0


stop_price_long = ta.valuewhen(long_condition, low[0]-stop_loss,0)
profit_price_long = ta.valuewhen(long_condition, high[0]+profit,0)
stop_price_short = ta.valuewhen(short_condition, high[0]+stop_loss,0)
profit_price_short = ta.valuewhen(short_condition, low[0]-profit,0)

atr=ta.atr(10)

intrade_long = strategy.position_size > 0
intrade_short = strategy.position_size < 0
exitConditionLong = (close < (close[1]*LongTrailProfit)) 
exitConditionShort = (close > (close[1]*ShortTrailProfit))

if (long_condition)
    strategy.entry("Long3", strategy.long)
if (intrade_long and exitConditionLong)
    strategy.close("Long3")

if (short_condition)
    strategy.entry("Short3", strategy.short)
if (intrade_short and exitConditionShort)
    strategy.close ("Short3")

if (strategy.position_size>0)
    strategy.exit("exit_long",from_entry="Long3",limit=profit_price_long,stop=stop_price_long)

if (strategy.position_size<0)
    strategy.exit("exit_short",from_entry="Short3",limit=profit_price_short,stop=stop_price_short)    

もっと