Chiến lược này là một hệ thống giao dịch định lượng dựa trên sự đột phá phạm vi giá. Nó hoạt động bằng cách thiết lập các giới hạn giá trên và dưới và thực hiện các giao dịch khi giá vượt qua các mức chính này. Khái niệm cốt lõi là nắm bắt các cơ hội xu hướng khi thị trường vượt qua các phạm vi giá đã thiết lập trong khi thích nghi với những thay đổi của thị trường thông qua điều chỉnh năng động các vùng giá. Chiến lược sử dụng quản lý vị trí linh hoạt, cho phép các giao dịch bổ sung theo cùng một hướng để tối đa hóa lợi nhuận từ các xu hướng chính.
Chiến lược này hoạt động dựa trên các cơ chế cốt lõi sau: Thứ nhất, nó thiết lập kích thước bước phù hợp cho các công cụ giao dịch khác nhau, thường khoảng 1,5% giá của công cụ. Hệ thống thiết lập các vùng giá trên và dưới giá hiện tại, kích hoạt tín hiệu dài khi giá vượt quá giới hạn trên và tín hiệu ngắn khi giá vượt qua giới hạn dưới. Sau mỗi đột phá, các vùng giá điều chỉnh để thích nghi với môi trường thị trường mới. Chiến lược hỗ trợ thêm các vị trí theo cùng một hướng, cho phép tối đa hóa lợi nhuận trong xu hướng mạnh.
Đây là một xu hướng được thiết kế tốt theo chiến lược với logic rõ ràng. Thông qua các thiết lập và điều chỉnh vùng giá năng động, kết hợp với quản lý vị trí linh hoạt, chiến lược có thể nắm bắt hiệu quả các cơ hội xu hướng thị trường. Mặc dù có chỗ cho tối ưu hóa, nói chung, chiến lược cung cấp một khuôn khổ giao dịch định lượng mạnh mẽ. Thông qua tối ưu hóa và cải thiện liên tục, hiệu suất chiến lược có thể được nâng cao hơn nữa.
/*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")