2段階の脱出戦略

作者: リン・ハーンチャオチャン, 日付: 2023年11月2日 15:58:29
タグ:

img

概要

この戦略は,毎日の午前2時5分の開場価格からの百分比変化に基づいて取引決定を行い,異なるトリガー条件を設定するために2段階のブレイクを使用し,様々な市場で重要な価格変動を把握することを目的としています.

戦略の論理

この戦略は,毎日の午前2時に5分キャンドルの開口価格と比較した現在の5分キャンドルの開口価格に基づいて,現在の5分キャンドルの百分比変化を計算する. 百分比変化が第1段階のブレイクアウトの値を超えると,対応する購入または売却決定が行われます. ストップ損失と利益のレベルもポジションを閉じることに設定されます.

ストップ・ロスは実行される場合,パーセント変化が拡大し続け,第2段階のトリガー条件を超えると,以前の注文はキャンセルされ,第2段階の値を使用した新規の購入または販売注文は行われ,ストップ・ロスは継続して追跡されます.

2段階のブレークアウト設定は,変動する市場中にノイズをフィルタリングし,より重要な価格変動のみで取引を行う.第2段階をアクティベートすると,ストップロスが頻繁に起動する状況を軽減することができます.

利点

  • 異なるトリガー条件を持つ2段階のブレイクアウトは,市場変動のノイズを効果的にフィルタリングし,より大きな価格変動のみで取引します.
  • 2 番目の段階をアクティベートすると,ストップ・ロスは頻繁に起動しない.
  • オープン価格から変化を計算する割合は,市場が開いた後,毎日新しい傾向を利用します
  • シンプルで明快な戦略論理,理解し実行しやすい

リスクと緩和策

  • 高波動性により,取引コストが増加し,ポジションの頻繁な開閉が起因する可能性があります
  • 第二段階を高く設定すると,良い取引機会を逃す可能性があります.
  • ステージを低く設定すると,不要な追加取引が起こる可能性があります.

緩和策

  • 最適なバランスを出すためにパラメータを最適化します
  • 過剰取引を避けるため,1日間の最大取引数を制限する
  • 明らかな傾向の間,より積極的なパラメータを使用する

増進 の 機会

  • 最適な組み合わせを見つけるために2つのブレイクアウト段階の値を最適化
  • 異なる製品と時間間の最適パラメータを研究する
  • 強いトレンドの間,より積極的な設定を使用するためにトレンドインジケーターを組み込む
  • 過剰な取引を防ぐために,最大日取引を制限する
  • ストップ・ロスを最適化し,より良いリスク・リターンを得るために 利益ポイントを取ります

概要

この戦略は,2段階のブレイクアウトを使用して価格のピークを捕捉し,ノイズを効果的にフィルタリングする.このコンセプトはシンプルで明確で,パラメータ最適化によって良い結果を得ることができます.次のステップは,トレンド市場中にパフォーマンスを最大化するためにトレンドインジケーターと組み合わせることです.全体的にこれはブレイクアウト原則をうまく利用し,チューニング後にしっかりした結果を達成できる新しい戦略です.


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Auto Entry Bot", overlay=true)

// Define input for the stop loss and take profit levels
stopLossPips = input.int(200, title="Stop Loss Pips", minval=1)
takeProfitPips = input.int(400, title="Take Profit Pips", minval=1)

// Calculate the percentage change from the 5-minute opening candle at 2:00 AM
var float openPrice = na
if (hour == 2 and minute == 0)
    openPrice := open
percentageChange = (close - openPrice) / openPrice * 100

// Track the cumulative percentage change
var float cumulativeChange = 0

// Define input for the percentage change trigger
triggerPercentage1 = input.float(0.25, title="Percentage Change Trigger (%)", minval=0.01, step=0.01)
triggerPercentage2 = input.float(0.35, title="Additional Trigger Percentage (%)", minval=0.01, step=0.01)

// Check for price change trigger
if (percentageChange >= triggerPercentage1)
    // Sell signal
    strategy.entry("Sell", strategy.short)
    strategy.exit("ExitSell", loss=stopLossPips, profit=takeProfitPips)
    cumulativeChange := 0  // Reset cumulative change after a trade

if (percentageChange <= -triggerPercentage1)
    // Buy signal
    strategy.entry("Buy", strategy.long)
    strategy.exit("ExitBuy", loss=stopLossPips, profit=takeProfitPips)
    cumulativeChange := 0  // Reset cumulative change after a trade

// If the price keeps hitting stop loss, activate the second trigger
if (strategy.position_size < 0 and percentageChange <= -triggerPercentage2)
    strategy.cancel("Sell")  // Cancel previous sell order
    strategy.entry("Sell2", strategy.short)
    strategy.exit("ExitSell2", loss=stopLossPips, profit=takeProfitPips)
    cumulativeChange := 0  // Reset cumulative change after a trade

if (strategy.position_size > 0 and percentageChange >= triggerPercentage2)
    strategy.cancel("Buy")  // Cancel previous buy order
    strategy.entry("Buy2", strategy.long)
    strategy.exit("ExitBuy2", loss=stopLossPips, profit=takeProfitPips)
    cumulativeChange := 0  // Reset cumulative change after a trade


もっと