Chiến lược giao dịch đột phá phạm vi giá động hệ thống định lượng dựa trên mức hỗ trợ và kháng cự


Ngày tạo: 2024-12-11 15:03:50 sửa đổi lần cuối: 2024-12-11 15:03:50
sao chép: 3 Số nhấp chuột: 378
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch đột phá phạm vi giá động hệ thống định lượng dựa trên mức hỗ trợ và kháng cự

Tổng quan

Chiến lược này là một hệ thống giao dịch định lượng dựa trên phá vỡ phạm vi giá. Nó thiết lập động các giới hạn trên và dưới của phạm vi giá và giao dịch khi giá vượt qua các mức quan trọng này. Ý tưởng cốt lõi của chiến lược là nắm bắt cơ hội theo xu hướng khi thị trường phá vỡ phạm vi giá đã được thiết lập, đồng thời điều chỉnh các phạm vi giá theo động để thích ứng với sự thay đổi của thị trường.

Nguyên tắc chiến lược

Chiến lược hoạt động dựa trên cơ chế cốt lõi sau: Đầu tiên, tùy thuộc vào tính năng của các loại giao dịch khác nhau, thiết lập bước tương ứng ((step_size), được thiết lập dựa trên khoảng 1,5% giá của các loại. Hệ thống sẽ thiết lập một phạm vi giá trên và dưới giá hiện tại, khi giá vượt qua giới hạn trên, kích hoạt nhiều tín hiệu; khi vượt qua giới hạn dưới, kích hoạt tín hiệu trống. Sau mỗi lần vượt qua, phạm vi giá sẽ được điều chỉnh để thích ứng với môi trường thị trường mới.

Lợi thế chiến lược

  1. Tính thích ứng động: Phạm vi giá sẽ tự động điều chỉnh theo sự thay đổi của thị trường, cho phép chiến lược thích ứng với các môi trường thị trường khác nhau.
  2. Khả năng theo dõi xu hướng nổi bật: Chiến lược có thể nắm bắt được xu hướng mạnh mẽ bằng cách cho phép gia tăng vị thế đồng thời.
  3. Kiểm soát rủi ro hoàn hảo: thiết lập các điều kiện dừng lỗ rõ ràng, tự động thanh toán khi giá giảm xuống phạm vi.
  4. Khả năng áp dụng rộng rãi: Các chiến lược có thể áp dụng cho nhiều thị trường bằng cách đặt các tham số bước dài tương ứng cho các loại giao dịch khác nhau.
  5. Hiệu quả tính toán: Sử dụng tính toán hiệu quả và duy trì biến số để đảm bảo chiến lược hoạt động suôn sẻ.

Rủi ro chiến lược

  1. Rủi ro thị trường chấn động: Trong thị trường chấn động khu vực có thể thường xuyên gây ra đột phá giả tạo, dẫn đến tổn thất liên tục.
  2. Rủi ro quản lý tiền bạc: Định vị đồng chiều có thể dẫn đến việc quá tập trung vị trí và cần kiểm soát hợp lý các lỗ hổng rủi ro theo một hướng.
  3. Rủi ro trượt: Trong thời gian biến động mạnh, có thể có một điểm trượt lớn, ảnh hưởng đến hiệu suất của chiến lược.
  4. Tính nhạy cảm của tham số: Tính hợp lý của thiết lập bước dài ảnh hưởng trực tiếp đến hiệu quả của chiến lược và cần được kiểm tra đầy đủ.

Hướng tối ưu hóa chiến lược

  1. Tham gia chỉ số biến động: có thể điều chỉnh chiều dài theo biến động của thị trường, cải thiện khả năng thích ứng của chiến lược.
  2. Tăng cơ chế lọc: thêm các chỉ số xác nhận xu hướng, giảm thiệt hại do phá vỡ giả.
  3. Quản lý vị trí tốt hơn: Thiết kế cơ chế kiểm soát vị trí chi tiết hơn, cân bằng lợi nhuận và rủi ro.
  4. Tối ưu hóa việc thực hiện đơn đặt hàng: Bạn có thể thêm định tuyến đơn đặt hàng thông minh, giảm tác động của điểm trượt.
  5. Tăng chiều thời gian: Xem xét các đặc điểm thời gian của thị trường, điều chỉnh các tham số chiến lược trong các giai đoạn khác nhau.

Tóm tắt

Đây là một chiến lược theo dõi xu hướng được thiết kế hợp lý, logic rõ ràng. Bằng cách thiết lập và điều chỉnh các phạm vi giá độ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ó một số không gian cần tối ưu hóa, nhưng nói chung, chiến lược cung cấp một khung giao dịch định lượng vững chắc.

Mã nguồn chiến lược
/*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")