適応型トレーリングリトレースメントバランス取引ストッププロフィットおよびストップロス戦略

OCA GAP
作成日: 2024-12-12 14:25:36 最終変更日: 2024-12-12 14:25:36
コピー: 2 クリック数: 413
1
フォロー
1617
フォロワー

適応型トレーリングリトレースメントバランス取引ストッププロフィットおよびストップロス戦略

概要

この戦略は,ギャップと価格の変化に基づく自適化取引システムであり,柔軟な入場点と動的なストップ・ストローを設定することで安定した利益を実現する.この戦略は,ピラミッド型の加仓方法を採用し,同時にOCAの注文管理システムと組み合わせてリスクを制御する.このシステムは,市場の動きに応じて,自動的にポジションの方向を調整し,反転信号が発生したときに時効的にポジションを停止する.

戦略原則

戦略は主に以下の中心的なメカニズムによって機能します.

  1. ギャップ取引機構:上下ギャップを識別し,ギャップの位置にストップ・ロードを設定する
  2. トレンド追跡:開盤価格と閉盤価格の関係によるトレンド方向判断
  3. ピラミッド式加仓:同じ方向に100個までのオーダーを保持できます.
  4. ダイナミックストップ・ストラスト:平均保有価格に基づくダイナミックセットストップ・ストラスト
  5. OCAの注文管理:OCAのポートフォリオの注文を使用して,ストップとストップ・ローズ命令の相互排斥を実行する
  6. 1日間の取引制限:最大1日間の取引オーダー数を設定することでリスクを制御します.

戦略的優位性

  1. 適応性: 戦略は市場の状況に応じて取引方向と保有量に自動的に調整します.
  2. リスクの管理: ストップ・ロズ,OCA・オーダー,および一日の取引制限を含む複数のメカニズムでリスクの管理
  3. 高い柔軟性:ピラミッド式加減を支えるため,トレンド状況でより多くの利益を得ることができます.
  4. 効率的な実行: ストップ・ローンの入場により,重要な価格で迅速にポジションを構える
  5. 高い体系化:取引決定が完全に体系化され,人間の干渉による感情的影響が軽減されます.

戦略リスク

  1. スライドポイントの危険性: 急速なスピードで深刻なスライドポイントが発生する可能性がある
  2. 取引過多のリスク:頻繁に取引を繰り返すことにより,取引コストが高くなる
  3. 体系的リスク: 市場が激しく波動すると,大きな損失を被る可能性
  4. 資金管理のリスク:ピラミッド式加仓が過剰な資金利用率につながる可能性がある
  5. 技術的リスク: プログラムの動作の障害により,注文管理に問題が生じます.

戦略最適化の方向性

  1. 波動率指標の導入:市場の波動率の動向に合わせてストップ・ロスのパラメータを調整する
  2. 貯蓄の最適化: 貯蓄の規則を細かく設計し,過度の資金使用を避ける
  3. 風力制御システムの改善:最大1日撤回制限などの風力制御指標の追加
  4. オーダー実行の改善:オーダー入力の最適化,滑点の影響の軽減
  5. 市場情緒の判断を増やす:取引量などの指標を組み合わせて,入場を最適化するタイミング

要約する

これは,合理的で論理的に厳格に設計された取引戦略であり,複数のメカニズムによって取引の安定性と安全性を保証する.戦略の核心的な優点は,自主的な適応性とリスク管理能力にあるが,同時に,市場の変動がもたらすリスクにも注意する必要がある.継続的な最適化と改善により,戦略は,異なる市場環境で安定したパフォーマンスを維持する可能性が高い.

ストラテジーソースコード
/*backtest
start: 2024-12-04 00:00:00
end: 2024-12-11 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Greedy Strategy - maclaurin", pyramiding = 100, calc_on_order_fills=false, overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
backtestStartDate = input(timestamp("1 Jan 1990"),
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " +
     "where the chart's instrument trades. It doesn't use the time " +
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Jan 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " +
     "where the chart's instrument trades. It doesn't use the time " +
     "zone of the chart or of your computer.")
inTradeWindow = true
tp = input(10)
sl = input(10)
maxidf = input(title="Max Intraday Filled Orders", defval=5)
// strategy.risk.max_intraday_filled_orders(maxidf)
upGap = open > high[1]
dnGap = open < low[1]
dn = strategy.position_size < 0 and open > close
up = strategy.position_size > 0 and open < close
if inTradeWindow and upGap
    strategy.entry("GapUp", strategy.long, stop = high[1])
else
    strategy.cancel("GapUp")
if inTradeWindow and dn
    strategy.entry("Dn", strategy.short, stop = close)
else
    strategy.cancel("Dn")
if inTradeWindow and dnGap
    strategy.entry("GapDn", strategy.short, stop = low[1])
else
    strategy.cancel("GapDn")
if inTradeWindow and up
    strategy.entry("Up", strategy.long, stop = close)
else
    strategy.cancel("Up")
XQty = strategy.position_size < 0 ? -strategy.position_size : strategy.position_size
dir = strategy.position_size < 0 ? -1 : 1
lmP = strategy.position_avg_price + dir*tp*syminfo.mintick
slP = strategy.position_avg_price - dir*sl*syminfo.mintick
float nav = na
revCond = strategy.position_size > 0 ? dnGap : (strategy.position_size < 0 ? upGap : false)
if inTradeWindow and not revCond and XQty > 0
    strategy.order("TP", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, lmP, nav, "TPSL",  "TPSL")
    strategy.order("SL", strategy.position_size < 0 ? strategy.long : strategy.short, XQty, nav, slP, "TPSL", "TPSL")
if XQty == 0 or revCond
    strategy.cancel("TP")
    strategy.cancel("SL")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)