資源の読み込みに... 荷物...

ダイナミックストップ・ロスの戦略を持つ連続的なキャンドルベースのダイナミックグリッドアダプティブ移動平均

作者: リン・ハーンチャオチャン開催日:2024年6月3日 16:16:15
タグ:マルチSL

img

概要

この戦略は,連続したキャンドルのトレンドに基づいています.現在の閉じる価格を前回の3つのキャンドルの閉じる価格と比較してポジションに入るか否かを決定します. 3つの連続したキャンドルが上昇しているとき,ロングポジションに入ります.そうでなければポジションを閉じます.同時に,この戦略はダイナミックストップロスの方法を採用します.このストップロスのレベルは,エントリー価格と設定されたストップロスの割合に基づいて決定されます.この方法は,ストップロスのレベルをダイナミックに調整し,リスクをよりよく制御することができます.

戦略原則

  1. 現在の閉じる価格と前回の3本のキャンドルの閉じる価格を比較することで,連続して3つの上昇または減少するキャンドルの条件が満たされているかどうかを判断します.
  2. 3つの連続した昇るキャンドルの条件が満たされれば 4番目のキャンドルの開口時にロングポジションに入ります
  3. ポジションに入ると,ストップロスのレベルは入場価格と設定されたストップロスの割合に基づいて計算されます.
  4. 連続して3つのキャンドルが落ちる条件が満たされ,または価格がストップ・ロスのレベルに達すると,ポジションは閉鎖されます.

戦略 の 利点

  1. この戦略は連続キャンドルのトレンドに基づいて判断し,市場のトレンド機会を把握することができます.
  2. ダイナミックストップ・ロスの方法を採用し,エントリー価格とストップ・ロスの割合に基づいてリアルタイムでストップ・ロスのレベルを調整し,リスクをよりよく制御できます.
  3. 戦略の論理は明確で 分かりやすく 実行できます
  4. 市場や手段には様々な種類があり,ある程度の普遍性がある.

戦略リスク

  1. この戦略は,連続したキャンドルのトレンド判断に依存する.市場が変動またはトレンドではない行動を経験した場合,取引コストを増加させる,ポジションの頻繁な開閉と閉じる結果になる可能性があります.
  2. ストップ・ロスのレベルの設定は,ストップ・ロスのパーセントの選択に依存する.正しく選択されなければ,ストップ・ロスの早期または遅延が起こり,戦略のパフォーマンスに影響を与える.
  3. この戦略は,変動性や流動性などの取引される商品の特徴を考慮していない.実用的な適用では,特定の状況に応じて調整する必要がある.

戦略の最適化方向

  1. 移動平均値,MACDなど,より多くの技術指標を補助判断条件として導入し,ポジションの開閉の精度を向上させる.
  2. ストップ・ロスのパーセントのパラメータ最適化を行い,最適なストップ・ロスの設定を見つけ,戦略のリスク管理能力を向上させる.
  3. ポジション管理ロジックを追加し,市場の変動や口座資金などの要因に基づいてポジションを動的に調整し,資本利用の効率性を向上させる.
  4. 戦略の適応性を向上させるために,異なる取引手段と市場特性の戦略パラメータを個別に最適化する.

概要

この戦略は,リスク制御のために動的ストップロスの方法を採用しながら,連続的なキャンドルのトレンド判断に基づいてポジションの開閉を決定する.戦略論理は明確で,理解し,実装しやすく,さまざまな市場や楽器に適用可能である.しかし,実用的な応用では,トレンドではない市場のリスクに注意を払い,ストップロスの割合などのパラメータを最適化する必要がある.さらに,より多くの技術指標,ポジション管理,および他の方法を導入することで,戦略のパフォーマンスをさらに改善することができます.


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

//@version=5
strategy("4 Candle Entry and Exit Strategy", overlay=true)

// Define the stop loss percentage
stopLossPercent = input.float(11, title="Stop Loss Percentage", minval=0.1) / 100

// Identify if the previous 3 candles are consecutively higher
longCondition = close[3] > close[4] and close[2] > close[3] and close[1] > close[2]

// Identify if the previous 3 candles are consecutively lower
exitCondition = close[3] < close[4] and close[2] < close[3] and close[1] < close[2]

// Initialize the entry price and stop loss variables
var float entryPrice = na
var float stopLoss = na

// Update the entry price and stop loss if the long condition is met
if (longCondition)
    entryPrice := close[1]
    stopLoss := entryPrice * (1 - stopLossPercent)

// Enter the long position at the open of the 4th candle
if (longCondition)
    strategy.entry("Long", strategy.long, qty=1)

// Exit the position if exit condition is met or stop loss is hit
if (exitCondition or (strategy.position_size > 0 and low <= stopLoss))
    strategy.close("Long")

// Optional: Plot the entry and exit signals on the chart
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=exitCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")


関連性

もっと