この戦略は,価格レンジのブレイクに基づいた定量的な取引システムである. 価格の上下を動的に設定し,価格がこれらのキーレベルを突破すると取引を実行することによって動作する. 基本的なコンセプトは,市場が既定の価格範囲を突破するときにトレンド機会を把握し,価格ゾーンの動的調整を通じて市場の変化に適応することである. 戦略は柔軟なポジション管理を採用し,主要なトレンドからの利益を最大化するために同じ方向に追加の取引を可能にします.
ストラテジーは,以下のコアメカニズムに基づいて動作する. まず,異なる取引手段の適切なステップサイズを設定し,通常は,楽器の価格の約1.5%を設定する. システムは,現在の価格の上と下にある価格ゾーンを確立し,価格が上限を超えると長信号,下限を超えると短信号を誘発する. 各ブレイク後,価格ゾーンが新しい市場環境に適応するために調整される. 戦略は,同じ方向にポジションを追加することをサポートし,最大200ポジションを許可し,強いトレンド中に利益最大化が可能である. 注文処理には,バーの閉じる時に処理,取引実行後に再計算,およびすべての価格のティックで計算を含む複数の保護措置が含まれます.
この戦略は,明確なロジックを持つ戦略を踏まえて,よく設計されたトレンドです.動的な価格ゾーン設定と調整,柔軟なポジション管理と組み合わせることで,戦略は市場のトレンド機会を効果的に把握することができます.最適化のための余地がある一方で,全体的に,戦略は堅牢な定量的な取引フレームワークを提供します.継続的な最適化と改善を通じて,戦略のパフォーマンスはさらに向上することができます.戦略設計は,注文処理と計算効率を含む実用的な取引のさまざまな側面を徹底的に考慮し,強力な実用性を示しています.
/*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")