Tài nguyên đang được tải lên... tải...

Hệ thống giao dịch xu hướng mức giá đột phá nhiều giai đoạn dựa trên các mức giá chính

Tác giả:ChaoZhang, Ngày: 2025-01-06 16:06:30
Tags:HODLODPMHPMLPDHPDLMARSIATRADX

img

Tổng quan

Chiến lược này là một hệ thống giao dịch đột phá dựa trên nhiều mức giá chính. Nó chủ yếu theo dõi sáu mức giá quan trọng: Tối cao của ngày (HOD), Tối thấp của ngày (LOD), Tối cao của thị trường (PMH), Tối thấp của thị trường (PML), Tối cao của ngày trước (PDH), và Tối thấp của ngày trước (PDL).

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

Logic cốt lõi bao gồm một số thành phần chính:

  1. Tính toán mức giá chính: Sử dụng hàm request.security để lấy dữ liệu giá từ các khoảng thời gian khác nhau để tính toán sáu mức giá chính.
  2. Điều kiện tham gia: Mở các vị trí dài khi giá vượt quá PMH hoặc PDH; mở các vị trí ngắn khi giá vượt dưới PML hoặc PDL.
  3. Điều kiện thoát: Đóng các vị trí dài khi giá đạt HOD; đóng các vị trí ngắn khi giá đạt LOD.
  4. Hiển thị: Biểu tượng mức giá với các đường ngang màu khác nhau - màu trắng cho HOD, màu tím cho LOD, màu cam cho PDH, màu xanh dương cho PDL, màu xanh lá cây cho PMH và màu đỏ cho PML.

Ưu điểm chiến lược

  1. Định giá đa chiều: Theo dõi mức giá chính trong nhiều thời gian để phân tích thị trường toàn diện.
  2. Logic đột phá rõ ràng: Tạo tín hiệu giao dịch dựa trên đột phá giá với các quy tắc giao dịch rõ ràng.
  3. Tự động hóa cao: Tự động tính toán mức giá và thực hiện giao dịch, giảm can thiệp thủ công.
  4. Hiển thị mạnh mẽ: Hiển thị mức giá thông qua các đường ngang màu khác nhau để phân tích trực quan.
  5. Khả năng thích nghi cao: Áp dụng cho các công cụ giao dịch và khoảng thời gian khác nhau.

Rủi ro chiến lược

  1. Rủi ro phá vỡ sai: Thị trường có thể tạo ra các sự phá vỡ sai dẫn đến các tín hiệu không chính xác.
  2. Tùy thuộc vào biến động: Chiến lược có thể hoạt động kém trong môi trường biến động thấp.
  3. Kiểm soát rủi ro không đủ: Không có cơ chế dừng lỗ và thu lợi nhuận năng động.
  4. Tùy thuộc vào môi trường thị trường: Có thể tạo ra giao dịch thường xuyên trên các thị trường khác nhau.
  5. Tác động trượt: Có thể phải đối mặt với trượt đáng kể trên các thị trường ít thanh khoản hơn.

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

  1. Thêm bộ lọc chỉ số kỹ thuật:
  • Bao gồm RSI cho lọc mua quá mức/bán quá mức
  • Sử dụng ATR để đặt dừng lỗ động
  • Tích hợp ADX để xác nhận sức mạnh xu hướng
  1. Cải thiện quản lý rủi ro:
  • Thực hiện các cơ chế dừng lỗ năng động
  • Thêm chức năng dừng kéo
  • Thiết lập hệ thống thu lợi nhuận quy mô lớn
  1. Tối ưu hóa xác nhận tín hiệu:
  • Thêm xác nhận âm lượng
  • Bao gồm xác nhận xu hướng nhiều khung thời gian
  • Thiết lập cơ chế xác nhận sự chậm trễ tín hiệu

Tóm lại

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


/*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")

Có liên quan

Thêm nữa