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

アダプティブ トレイリング・ドラウド バランスのとれた取引戦略

作者: リン・ハーンチャオチャン開催日:2024年12月12日 14:25:36
タグ:OCAギャップ

img

概要

この戦略はギャップと価格変動に基づいた適応型取引システムで,柔軟なエントリーポイントとダイナミックなテイク・プロフィート/ストップ・ロスト設定を通じて安定したリターンを達成する.この戦略は,リスク管理のためにOCAオーダー管理システムと組み合わせたピラミッド型ポジションサイズを使用する.システムは自動的にポジション方向を調整し,逆転信号が現れたときに迅速にポジションを閉じる.

戦略の原則

この戦略は,いくつかの主要なメカニズムを通じて機能します.

  1. ギャップ・トレーディング・メカニズム: ギャップ・レベルでのストップ・オーダーを設定し,上下ギャップを特定する
  2. トレンドフォロー: オープニングと終了価格の関係に基づいてトレンド方向を決定する
  3. ピラミッド型:同じ方向で最大100の命令を許可します
  4. ダイナミック TP/SL: ポジションの平均価格に基づいて,ダイナミックに取利益とストップロスのレベルを設定する
  5. OCAオーダー管理: TPとSLオーダーの相互独占性を確保するためにOCAオーダーグループを使用します.
  6. 日中の取引制限:最大日中の注文を設定することでリスクを制御する

戦略 の 利点

  1. 高い適応性: 戦略は,市場の状況に基づいて,取引方向とポジションサイズを自動的に調整します.
  2. 管理されたリスク:ストップロスト,OCAオーダー,日中の制限を含む複数のリスク管理メカニズム
  3. 高い柔軟性: トレンド市場でより多くの利益を得るためにピラミッド構築をサポートする
  4. 高執行効率: キー価格レベルでの迅速なポジション構築のためにストップオーダーを使用する
  5. 高度な体系化: 完全に体系的な取引決定は感情的干渉を減らす

戦略リスク

  1. スリップリスク: 急速に動いている市場では,重大なスリップに直面する可能性があります.
  2. 過剰取引リスク: 頻繁に入場・退場すると高額な取引コストが発生する
  3. システムリスク: 高い変動の市場では,より大きな損失を伴う可能性があります.
  4. 資本管理リスク:ピラミディングは過剰な資本利用につながる可能性がある
  5. 技術リスク: プログラムの中断は注文管理の問題を引き起こす可能性があります.

戦略の最適化方向

  1. 市場変動に基づいて TP/SL パラメータを動的に調整する
  2. ピラミッド構造の最適化: 過剰な資本使用を避けるため,より詳細なポジションサイズルールの設計
  3. リスク管理を強化する.日中の最大抽出制限などのリスク管理指標を追加する.
  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)


関連性

もっと