
この戦略は,移動平均を用いて取引シグナルを生成し,入場価格に基づく固定パーセントのストップ・ロースとストップオフを設定し,各取引のリスクとリターンを制御することを目的としています.
この戦略は,まず5日目指数移動平均と32日目指数移動平均を使ってトレンドの方向を判断し,短期移動平均で長期移動平均を穿越する時は多行し,下行する時は空行する.
入場後,戦略は,ユーザの入力によるストップ・ロスのパーセントとストップ・ロスのパーセントを動的に設定し,各取引のストップ・ロスとストップ・ロスを設定する.具体的には,多発の場合は,ストップ・ロスは入場価格の ((−1・ストップ・ロスのパーセント),ストップ・ロスは入場価格の ((−1+ストップ・ロスのパーセント) と設定する.空きの場合は,反対に,ストップ・ロスは入場価格の ((−1・ストップ・ロスのパーセント),ストップ・ロスは入場価格の ((−1・ストップ・ロスのパーセント) と設定する.
この設定は,各取引に固定された割合のストップ・ロスの幅とストップ・プッシュの幅を確保し,単一の取引のリスクとリターンを制御します.
この方法にはいくつかの大きな利点があります.
取引上の最大損失を制限し,取引上のリスクを効果的に管理する
単一取引の固定利益率をロックし,リターン率を保証する
ストップ・ロースとストップ・ストップは,取引自体の入場価格に合わせて変化し,固定値を使用した問題を避ける
ユーザは,入力パラメータを調整することによって,自らが負うリスクのレベルを決定できます.
戦略の論理はシンプルで直感的で,理解し,検証しやすい.
この戦略にはいくつかのリスクがあります.
移動平均は,取引信号として多くの無効取引信号を生成し,入場後に止損される可能性が高い.
ストップ比率を大きく設定すると,収益性が低下し,小さく設定すると,十分なリターンが得られない
ストップ・ペアの接近は,ストップ・ペアの誘発の確率を高め,適正に緩和する.
取引の種類と取引周期の選択は,ストップ・ストップ・ストップ戦略の効果に影響します.
対応方法:
移動平均のパラメータを最適化し,無効信号を減らす
試行錯誤を繰り返して,
市場変動に応じてストップ・ディスタンス調整
種別と周期による戦略の効果を評価する
この戦略は以下の点で最適化できます.
移動平均は,他の指標でトレンドを判断し,無効な信号を過剰に発生させないようにします.
回測データによる最適化ストップストップの比率による最適参数を見つける
ストップをストップトラッキングに変更することで,より多くの営業利益が確保できます.
ポジション管理モジュールを追加し,加仓とストップを介して取引リスクを管理する
異なる種類の取引と異なる時間周期における戦略効果の違いを評価する
この戦略は,移動平均に基づいてトレンドの方向を判断し,入場価格に基づく固定パーセントのストップ・ロスを設定して,単一の取引のリスクとリターンを制御する. この戦略の優点は,損失を効果的に制限し,収益率を保証し,論理がシンプルで,操作が簡単である. 注意が必要なのは,適切なストップ・ロスのパラメータを適切に配置し,適切な取引品種と周期を選択し,複数の方法でこの戦略を最適化し続けることができる.
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © theCrypster 2020
//@version=4
strategy("Fixed Percent Stop Loss & Take Profit %", overlay=true)
// Moving Averages to get some example trades generated
eg1 = ema(close, 5)
eg2 = ema(close, 32)
long = crossover(eg1, eg2)
short = crossunder(eg1, eg2)
strategy.entry("LONG", strategy.long, when=long)
strategy.entry("SHORT", strategy.short, when=short)
//
// The Fixed Percent Stop Loss Code
// User Options to Change Inputs (%)
stopPer = input(5.0, title='Stop Loss %', type=input.float) / 100
takePer = input(10.0, title='Take Profit %', type=input.float) / 100
// Determine where you've entered and in what direction
longStop = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake = strategy.position_avg_price * (1 + takePer)
if strategy.position_size > 0
strategy.exit(id="Close Long", stop=longStop, limit=longTake)
if strategy.position_size < 0
strategy.exit(id="Close Short", stop=shortStop, limit=shortTake)
//PLOT FIXED SLTP LINE
plot(strategy.position_size > 0 ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")
//