Chiến lược đột phá giá Leapfrog hệ thống giao dịch định lượng dựa trên mức giá quan trọng nhiều giai đoạn

HOD LOD PMH PML PDH PDL MA RSI ATR ADX
Ngày tạo: 2025-01-06 16:06:30 sửa đổi lần cuối: 2025-01-06 16:06:30
sao chép: 1 Số nhấp chuột: 328
1
tập trung vào
1617
Người theo dõi

Chiến lược đột phá giá Leapfrog hệ thống giao dịch định lượng dựa trên mức giá quan trọng nhiều giai đoạn

Tổng quan

Chiến lược này là hệ thống giao dịch đột phá dựa trên nhiều mức giá quan trọng. Nó chủ yếu theo dõi sáu điểm chính: mức cao trong ngày (HOD), mức thấp trong ngày (LOD), mức cao trước thị trường (PMH), mức thấp trước thị trường (PML), mức cao ngày hôm trước (PDH) và mức thấp ngày hôm trước (PDL). Giá các mức độ, tín hiệu giao dịch được tạo ra khi giá phá vỡ các mức này. Chiến lược này sử dụng giao dịch tự động để thực hiện các hoạt động mua và bán dựa trên mức giá giao nhau ở các mức quan trọng.

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

Logic cốt lõi của chiến lược bao gồm những phần chính sau:

  1. Tính toán mức giá chính: Sử dụng hàm request.security để lấy dữ liệu giá cho các khoảng thời gian khác nhau và tính toán sáu mức giá chính.
  2. Thiết lập điều kiện mở: mở vị thế mua khi giá vượt qua PMH hoặc PDH theo hướng tăng; mở vị thế bán khi giá vượt qua PML hoặc PDL theo hướng giảm.
  3. Thiết lập điều kiện đóng: khi giữ vị thế mua, nếu giá đạt HOD, vị thế sẽ được đóng; khi giữ vị thế bán, nếu giá đạt LOD, vị thế sẽ được đóng.
  4. Hình ảnh trực quan: Sử dụng các đường ngang có màu khác nhau để đánh dấu từng mức giá, màu trắng cho HOD, màu tím cho LOD, màu cam cho PDH, màu xanh lam cho PDL, màu xanh lá cây cho PMH và màu đỏ cho PML.

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

  1. Tham chiếu giá đa chiều: hiểu toàn diện xu hướng thị trường bằng cách theo dõi các mức giá chính trong nhiều khoảng thời gian.
  2. Logic của giao dịch đột phá rất rõ ràng: tín hiệu giao dịch được tạo ra dựa trên sự đột phá về giá và các quy tắc giao dịch rõ ràng, dễ hiểu.
  3. Mức độ tự động hóa cao: Hệ thống tự động tính toán nhiều mức giá khác nhau và thực hiện giao dịch, giảm thiểu sự can thiệp của con người.
  4. Hiệu ứng trực quan mạnh mẽ: Mỗi mức giá được hiển thị trực quan thông qua các đường ngang có màu sắc khác nhau, thuận tiện cho việc phân tích và phán đoán.
  5. Khả năng thích ứng cao: Chiến lược này có thể được áp dụng cho nhiều sản phẩm giao dịch và thời gian khác nhau.

Rủi ro chiến lược

  1. Rủi ro đột phá sai: Thị trường có thể đột phá sai dẫn đến tín hiệu sai.
  2. Phụ thuộc vào độ biến động: Các chiến lược có thể hoạt động kém trong môi trường có độ biến động thấp.
  3. Kiểm soát rủi ro không đủ: thiếu cơ chế dừng lỗ và chốt lời linh hoạt.
  4. Phụ thuộc vào môi trường thị trường: Có thể giao dịch thường xuyên trong thị trường đi ngang, khi xu hướng không rõ ràng.
  5. Tác động trượt giá: Bạn có thể phải đối mặt với tình trạng trượt giá lớn hơn ở những thị trường có tính thanh khoản kém.

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

  1. Thêm bộ lọc chỉ báo kỹ thuật:
  • Giới thiệu chỉ báo RSI để lọc mua quá mức và bán quá mức
  • Sử dụng ATR để thiết lập mức dừng lỗ động
  • Kết hợp ADX để xác định sức mạnh xu hướng
  1. Cải thiện quản lý rủi ro:
  • Thiết lập cơ chế dừng lỗ động
  • Đã thêm chức năng dừng theo dõi
  • Thiết lập cơ chế sinh lời theo từng đợt
  1. Xác nhận tín hiệu tối ưu hóa:
  • Tăng xác nhận âm lượng
  • Đã thêm xác nhận xu hướng đa giai đoạn
  • Thiết lập cơ chế xác nhận độ trễ tín hiệu

Tóm tắt

Chiến lược này nắm bắt cơ hội thị trường bằng cách theo dõi và sử dụng nhiều mức giá quan trọng, được đặc trưng bởi logic rõ ràng và mức độ tự động hóa cao. Nhưng cũng có những rủi ro nhất định cần được tối ưu hóa bằng cách bổ sung bộ lọc chỉ báo kỹ thuật, cải thiện cơ chế quản lý rủi ro, v.v. Ưu điểm cốt lõi của chiến lược này nằm ở hệ thống tham chiếu giá đa chiều, cho phép nắm bắt tốt hơn xu hướng thị trường, nhưng trong ứng dụng thực tế, cần phải điều chỉnh các thông số mục tiêu theo các môi trường thị trường khác nhau.

Mã nguồn chiến lược
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradingbauhaus

//@version=6
strategy("HOD/LOD/PMH/PML/PDH/PDL Strategy by tradingbauhaus ", shorttitle="HOD/LOD Strategy", overlay=true)

// Daily high and low
dailyhigh = request.security(syminfo.tickerid, 'D', high)
dailylow = request.security(syminfo.tickerid, 'D', low)

// Previous day high and low
var float previousdayhigh = na
var float previousdaylow = na
high1 = request.security(syminfo.tickerid, 'D', high[1])
low1 = request.security(syminfo.tickerid, 'D', low[1])
high0 = request.security(syminfo.tickerid, 'D', high[0])
low0 = request.security(syminfo.tickerid, 'D', low[0])

// Yesterday high and low
if (hour == 9 and minute > 30) or hour > 10
    previousdayhigh := high1
    previousdaylow := low1
else
    previousdayhigh := high0
    previousdaylow := low0

// Premarket high and low
t = time("1440", "0000-0930") // 1440 is the number of minutes in a whole day.
is_first = na(t[1]) and not na(t) or t[1] < t
ending_hour = 9
ending_minute = 30

var float pm_high = na
var float pm_low = na

if is_first and barstate.isnew and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    pm_low := low
else 
    pm_high := pm_high[1]
    pm_low := pm_low[1]

if high > pm_high and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    
if low < pm_low and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_low := low

// Plotting levels
plot(dailyhigh, style=plot.style_line, title="Daily high", color=color.white, linewidth=1, trackprice=true)
plot(dailylow, style=plot.style_line, title="Daily low", color=color.purple, linewidth=1, trackprice=true)
plot(previousdayhigh, style=plot.style_line, title="Previous Day high", color=color.orange, linewidth=1, trackprice=true)
plot(previousdaylow, style=plot.style_line, title="Previous Day low", color=color.blue, linewidth=1, trackprice=true)
plot(pm_high, style=plot.style_line, title="Premarket high", color=color.green, linewidth=1, trackprice=true)
plot(pm_low, style=plot.style_line, title="Premarket low", color=color.red, linewidth=1, trackprice=true)

// Strategy logic
// Long entry: Price crosses above PMH or PDH
if (ta.crossover(close, pm_high) or ta.crossover(close, previousdayhigh)) and strategy.opentrades == 0
    strategy.entry("Long", strategy.long)

// Short entry: Price crosses below PML or PDL
if (ta.crossunder(close, pm_low) or ta.crossunder(close, previousdaylow)) and strategy.opentrades == 0
    strategy.entry("Short", strategy.short)

// Exit long: Price reaches HOD
if strategy.position_size > 0 and ta.crossover(close, dailyhigh)
    strategy.close("Long")

// Exit short: Price reaches LOD
if strategy.position_size < 0 and ta.crossunder(close, dailylow)
    strategy.close("Short")