徐々にストップ・ロスの動きの戦略

作者: リン・ハーンチャオチャン,日付:2023年11月13日 17:29:41
タグ:

img

概要

ストップ・ロスの動きは 価格が上昇するにつれて ストップ・ロスの動きを 徐々に向上させることを 思い出させる シンプルでも非常に有用な戦略です

原則

ロングポジションを取るとき,最初のストップロスを最初にエントリー価格の95%に設定する.その後,エントリー価格の100%,105%,110%などで複数のより高いストップロスのレベルを定義する.この戦略は,過去7日の最低値が前のストップロスのレベルを突破したかどうかをチェックする.そうであれば,ストップロスはそのより高いレベルに設定される.したがって価格が上昇するにつれて,ストップロスは徐々に上昇する.

ストップ・ロスは,エントリー価格の95%,100%,105%,110%,115%,120%,125%,130%で8つのストップ・ロスを定義する.過去7日の最低値が次のストップ・ロスのレベルを超えているかどうかをチェックする.そうであれば,ストップ・ロスはそのより高いレベルに設定される.

例えば,エントリー価格が $100である場合,初期ストップロスは $95である. 過去7日の最低値が $105に上昇すると,次のストップロスの $100以上では,ストップロスは $100に設定される. $115に上昇し続けると,ストップロスは $105に設定される.

価格が上昇するにつれて,ストップ・ロスは徐々に上昇し,一部の利益を保護するために徐々にストップ・ロスを実現する.また,バックテストで定期的にトライリング・ストップの過剰な楽観的な結果も回避する.

利点

この段階的なストップロスの最大の利点は,価格が上昇するにつれて徐々にストップロスを上昇させ,一部の利益を保護し,ストップロスがヒットしてすぐにすべての利益を失うのを防ぐことです.

定期的なトレーリングストップと比較して,段階的なストップロスはバックテストで過楽観的な結果を生むわけではない. 定期的なトレーリングストップは,価格が引き下げられるとすぐにストップロスを下げるため,引き下げプロセスをスキップし,直接次の上昇に移行する. しかし,引き下げは実際の取引ではスキップすることはできません. これにより,定期的なトレーリングストップは,バックテストと同じ結果を達成することはできません.

段階的なストップロスの戦略は,ストップロスの動きを段階的に向上させ,バックテストでリアルなストップロスの動きを反映し,過度に楽観的な結果を避ける.

また,この戦略は,ストップロスの変更のタイミングを提示し,トレーダーが手動で変更できるようにします.多くの取引所はトラッキングストップロスのオーダーを提供していませんので,この戦略はより普遍的で,異なる取引プラットフォームに適用できます.

リスク

この戦略の最大のリスクは,ストップロスの動きが非常に急速な価格上昇に追いつかないかもしれないことです.価格が非常に短い期間で急上昇し,複数のストップロスのレベルを超えると,ストップロスは利益を間に合うように保護できないため,ゆっくりと上昇するだけです.

ストップ・ロスの変更のタイミングを遅らせたり,見逃したりするリスクもあります.ストップ・ロスの変更のタイミングを提示するだけです.実際の調整は依然としてトレーダーの手動操作に依存します.変更を無視したり遅らせたりすると,ストップ・ロスがヒットする可能性があります.

改善

戦略は以下の方法で改善できます.

  1. ストップ・ロスのパーセント設定を最適化して,特定の取引機器の変動に適するようにする.

  2. 5日または10日など,最低低値に回顧期間パラメータを最適化し,異なる変動に対応する.

  3. ストップ・ロスのレベルを増やして 徐々に移動する

  4. 論理を付け加えれば 利得のレベルも上がります

  5. ストップ・ロスの修正操作を自動化して難易度や遅延リスクを軽減する.

  6. ストップ・ロスの違反に関するアラートを追加し,トレーダーはそのようなイベントを逃さないようにします.

結論

段階的なストップ・ロスト・ムーブメント戦略は,シンプルでも有用な戦略のアイデアである.価格が上昇するにつれて,利潤を保護するために徐々にストップ・ロスを上昇させ,過剰に楽観的なバックテスト結果を回避することができる.通常のトレーリング・ストップと比較して,実際の取引により適しており,プラットフォーム全体で実装するのが容易である.ストップ・ロストパーセント,最低低回顧期,ストップレベル数などのパラメータを最適化することで,さまざまな取引ツールに適応することができる.自動ストップ・ロスト実行とトレーリング・ロフトと組み合わせると,運用困難とリスクをさらに削減することができる.


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

///Moving Stops Script///
///by ShanghaiCryto///

///A simple, but very useful, script that reminds you to move up your stop losses as price trends upwards. ///
///The sma entry is just stock code to demonstrate how the stop works.///
///Doesn't throw off your backtesting the way a trailing stop does.///


strategy("Move Up Stops", overlay=true)

longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

first_stop = strategy.position_avg_price * .95
second_stop = strategy.position_avg_price 
third_stop = strategy.position_avg_price * 1.05
fourth_stop = strategy.position_avg_price * 1.1
fifth_stop = strategy.position_avg_price * 1.15
sixth_stop = strategy.position_avg_price * 1.2
seventh_stop = strategy.position_avg_price * 1.25
eighth_stop = strategy.position_avg_price * 1.3

move_trigger = lowest(low,7)

first_check = na
first_check := move_trigger > second_stop ? second_stop : first_stop

second_check = na
second_check := move_trigger > third_stop ? third_stop : first_check

third_check = na
third_check := move_trigger > fourth_stop ? fourth_stop : second_check

fourth_check = na
fourth_check := move_trigger > fifth_stop ? fifth_stop : third_check

fifth_check = na
fifth_check := move_trigger > sixth_stop ? sixth_stop : fourth_check

sixth_check = na
sixth_check := move_trigger > seventh_stop ? seventh_stop : fifth_check

stop_level = na
stop_level := move_trigger > eighth_stop ? eighth_stop : sixth_check

strategy.exit("Stop Loss","My Long Entry Id", stop=stop_level)

plot(stop_level, color=red)

もっと