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

サポートとレジスタンスの量的なシステムに基づいたダイナミック価格ゾーンブレークアウト取引戦略

作者: リン・ハーンチャオチャン開催日:2024年12月11日 15:03:50
タグ:

img

概要

この戦略は,価格レンジのブレイクに基づいた定量的な取引システムである. 価格の上下を動的に設定し,価格がこれらのキーレベルを突破すると取引を実行することによって動作する. 基本的なコンセプトは,市場が既定の価格範囲を突破するときにトレンド機会を把握し,価格ゾーンの動的調整を通じて市場の変化に適応することである. 戦略は柔軟なポジション管理を採用し,主要なトレンドからの利益を最大化するために同じ方向に追加の取引を可能にします.

戦略の原則

ストラテジーは,以下のコアメカニズムに基づいて動作する. まず,異なる取引手段の適切なステップサイズを設定し,通常は,楽器の価格の約1.5%を設定する. システムは,現在の価格の上と下にある価格ゾーンを確立し,価格が上限を超えると長信号,下限を超えると短信号を誘発する. 各ブレイク後,価格ゾーンが新しい市場環境に適応するために調整される. 戦略は,同じ方向にポジションを追加することをサポートし,最大200ポジションを許可し,強いトレンド中に利益最大化が可能である. 注文処理には,バーの閉じる時に処理,取引実行後に再計算,およびすべての価格のティックで計算を含む複数の保護措置が含まれます.

戦略 の 利点

  1. 強力なダイナミック適応: 価格ゾーンは市場の変化に自動的に調整され,戦略は異なる市場状況に適応することができます.
  2. 優れたトレンドフォロー能力: 同じ方向に追加ポジションを許可することで,戦略は強いトレンドを完全に活用することができます.
  3. 総合的なリスク管理: 明確なストップ・ロスの条件が設定され,価格がゾーンを下回ると自動的にポジションを閉じる.
  4. 広範囲に適用可能: 戦略は,異なる取引手段のための適切なステップサイズパラメータを通じて,さまざまな市場に適用できます.
  5. 高計算効率: 戦略のスムーズな運用を確保するために,変数持続性と効率的な計算方法を使用します.

戦略リスク

  1. 変動市場リスク: 範囲限定の市場で頻繁に誤ったブレイクが発生すると,連続的なストップが発生する可能性があります.
  2. ポジション管理リスク: 同じ方向のポジションを追加すると過剰な集中が起こり,方向性リスクの適切な管理が必要になります.
  3. スリップリスク:不安定な期間の重要なスリップは戦略の業績に影響を与える可能性があります.
  4. パラメータ感度: 戦略の有効性は適切なステップサイズ設定に直接依存し,徹底的なテストが必要です.

戦略の最適化方向

  1. 波動性指標を組み込む: 戦略の適応性を向上させるために,市場の波動性に基づいてステップサイズを動的に調整する.
  2. フィルタリングメカニズムを追加する: 誤ったブレイクによる損失を減らすためにトレンド確認指標を含める.
  3. ポジション管理の強化: 収益とリスクのバランスをとる より詳細なポジション管理メカニズムを設計する.
  4. オーダー実行を最適化: スマートオーダールーティングを追加してスライド効果を減らす.
  5. 市場時間特性を考慮し,異なる期間中の戦略パラメータを調整する.

概要

この戦略は,明確なロジックを持つ戦略を踏まえて,よく設計されたトレンドです.動的な価格ゾーン設定と調整,柔軟なポジション管理と組み合わせることで,戦略は市場のトレンド機会を効果的に把握することができます.最適化のための余地がある一方で,全体的に,戦略は堅牢な定量的な取引フレームワークを提供します.継続的な最適化と改善を通じて,戦略のパフォーマンスはさらに向上することができます.戦略設計は,注文処理と計算効率を含む実用的な取引のさまざまな側面を徹底的に考慮し,強力な実用性を示しています.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=5
// 每个图表上画对应间隔的横线,自己手画吧
// 同方向追加20单,订单成交后重新计算,每个tick重新计算,变量保存1000个周期,k线结束后再处理一次订单,按照代码顺序来绘制plot
strategy("Price Level Breakout Strategy", overlay=true, pyramiding=200, calc_on_order_fills=true, calc_on_every_tick=true, max_bars_back=1000, process_orders_on_close=true, explicit_plot_zorder=true)
// var创建持久性变量,:=是更新变量,不重新声明
// 这个是全局变量
// a = array.new<string>(200)
// array.push(a, "a")
// plot(close, color = array.get(a, close > open ? 1 : 0))
string ticker = syminfo.ticker
var float step_size = 1000
// label.new(x=bar_index, y=close, text="当前品种代码: " + ticker)
// 根据定值画1.5的平行线
if ticker == "000300"
    step_size := 4000 * 0.015
if ticker == "XAUUSD"
    step_size := 3000 * 0.016
if ticker == "BTCUSD"
    step_size := 60000 * 0.015
if ticker == "SILVER"
    step_size := 50 * 0.015
if ticker == "UKOIL"
    step_size := 150 * 0.015
if ticker == "GBPUSD"
    step_size := 1.6 * 0.015
if ticker == "EURUSD"
    step_size := 1.1 * 0.015
    // 从0开始画200条间隔线
if ticker == "USDJPY"
    step_size := 100 * 0.015
var float start_value = close
var float up_number = close + step_size
var float low_number = close - step_size
// hline(3.14, title='Pi', color=color.blue, linestyle=hline.style_dotted, linewidth=2)
// plot(1)
// 当价格突破上限,产生买入信号
if close > up_number
    // 生成买入信号
    strategy.entry(id = "Buy", direction = strategy.long)
    // 更新新的价格区间
    start_value := start_value + step_size
    up_number := start_value + step_size
    low_number := start_value - step_size
    strategy.close(id = "Sell")
// 当价格跌破下限,产生卖出信号
if close < low_number
    // 生成卖出信号
    strategy.entry("Sell", strategy.short)
    // 更新新的价格区间
    start_value := start_value - step_size
    up_number := start_value + step_size
    low_number := start_value - step_size
    strategy.close(id = "Buy")


もっと