
移動ストップと移動ストップを上回る戦略は,指標を上回るベースの定量取引戦略である.この戦略は,ロングポジションとショートポジションのエントリーとエクジットの条件を構築することによって,ストップと移動ストップを実現する.この戦略の利点は,継続的なトレンドで高い利益を上げることができ,移動ストップを使用してほとんどの利益をロックできるということです.しかし,この戦略は,破綻の失敗にも敏感です.
この戦略は,指数を超えた指標をベースにしたトレンド追跡型の戦略である。指数を超えた指標は,価格トレンドの方向を判断することができる。指数方向の変化に際して買いと売りのシグナルを生成する。具体的には,指数の上部に0軸を横切ると買いのシグナルが生成され,指数下部に0軸を横切ると売りのシグナルが生成される。閉店価格と前日の閉店価格の比率を判断して移動ストップポイントを判断する。ATRは,止損ポイントを決定する。このようにして,指数を超えた指標をベースにトレンドの方向を判断した移動ストップポイント戦略を構成する。
この戦略の最大の利点は,トレンド判断と移動ストップの組み合わせである.指数を超えて0軸上下を突破してトレンドの方向を判断することで,より正確にトレンドを捉えることができる.移動ストップは,トレンドが進行しているときに利益のほとんどをロックすることができます.ストップ・ロスの設定は,リスクを制御するのに役立ちます.したがって,トレンドが顕著な市場で,この戦略はより高い利益を得ることができます.さらに,戦略の論理は,シンプルで明快で,容易に理解し,実行することが,戦略の利点の一つです.
この戦略の最大のリスクは,突破の失敗に敏感であることです. 集積領域で,指数を超えると偽突破が生じ,誤ってポジションを確立することがあります. このとき,容易に騙されやすいのです. さらに,移動停止装置は,遅すぎるストップをしたり,後続を逃すこともあります. 最後に,不適切なストップ設定は,過度に緩やかまたは過度に激化し,リスクを増加させることもあります.
この戦略は,以下のいくつかの点で最適化することができる:1) 偽信号を発生させないように指標パラメータを合理的に決定する;2) 取引量信号を増やすなど,突破の信頼性を判断するためのメカニズムを追加する;3) 収益を保証しながら,スレジの可能性を最小限に抑えるための移動ストップのパラメータを最適化する;4) 静的ストップの代わりに変動率に基づくダイナミックストップを使用する;5) 戦略の安定性を高めるために,他の指標を組み合わせる.
移動止損利得戦略を超えることは,全体的に良いトレンド追跡戦略である.それはトレンドの方向を合理的に判断することができ,移動止止装置を持っている.しかし,この戦略は破綻に敏感であり,一定のリスクがある.パラメータの設定,判断規則,止損装置などのさらなる最適化によって,この戦略を効果的に改善し,安定した高効率の量化取引戦略にすることができます.
/*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)