Chiến lược dừng thấp nhất/cao nhất

Tác giả:ChaoZhang, Ngày: 2024-03-08 14:32:30
Tags:

img

Tổng quan

Chiến lược này thiết lập các điểm dừng lỗ dựa trên mức cao nhất và thấp nhất gần đây để nhanh chóng bước vào xu hướng và kiểm soát rủi ro nghiêm ngặt. Nó đi vào các vị trí dài khi giá tăng liên tục và các vị trí ngắn khi giá giảm liên tục. Khi nắm giữ các vị trí, mức dừng lỗ cho các vị trí dài là mức thấp nhất trong vài thanh gần đây, và mức dừng lỗ cho các vị trí ngắn là mức cao nhất. Cách tiếp cận dừng lỗ năng động này có thể nắm bắt hiệu quả xu hướng trong khi hạn chế nghiêm ngặt lỗ.

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

  1. Sử dụnginputchức năng để thiết lập các khoảng thời gian xem lạihiLenloLencho mức cao nhất và thấp nhất, mặc định đến 20.
  2. Tính toán cao nhấthiHighslên đến thanh trước đó sử dụngta.highest(high, hiLen)[1], và thấp nhất thấploLowssử dụngta.lowest(low, loLen)[1].
  3. Chụp các mức dừng lỗ, vớiloLowsđối với các vị trí dài vàhiHighsKhông vẽ khi phẳng để xác nhận dễ dàng.
  4. Định nghĩa các điều kiện tín hiệu giao dịch:
    • higherCloses: 3 thanh cuối cùng có kết thúc cao hơn liên tiếp
    • lowerCloses: 3 thanh cuối cùng có kết thúc thấp hơn liên tiếp
    • isFlat: không có vị trí hiện tại
  5. Nhập: nhập dài khiisFlathigherCloses, nhập ngắn khiisFlatlowerCloses.
  6. Stop-loss: đối với các vị trí dài, dừng lại tạiloLows; đối với các vị trí ngắn, dừng lại tạihiHighs.

Nói tóm lại, chiến lược này sử dụng mức cao nhất gần đây và mức thấp nhất để thiết lập các điểm dừng, nhanh chóng đi vào xu hướng mạnh và hạn chế nghiêm ngặt lỗ, do đó nắm bắt hiệu quả lợi nhuận xu hướng.

Phân tích lợi thế

  1. Đơn giản và hiệu quả: chiến lược có logic rõ ràng và đơn giản, đặt các điểm dừng dựa trên chính giá để nắm bắt hiệu quả xu hướng.
  2. Nhập nhanh: nhập vào 3 thanh liên tiếp di chuyển theo cùng một hướng cho phép nhanh chóng nhập vào các xu hướng mới.
  3. Dừng chặt chẽ: Dừng được thiết lập ở mức giá cực đoan gần đây, gắn chặt với giá hiện tại để kiểm soát rủi ro chặt chẽ.
  4. Chế độ dừng: mức dừng được cập nhật liên tục với giá, cả khóa lợi nhuận và giữ lại không gian xu hướng.
  5. Khả năng thích nghi cao: phù hợp với các thị trường và công cụ khác nhau, với các tham số có thể điều chỉnh linh hoạt.

Phân tích rủi ro

  1. Rủi ro thị trường hỗn loạn: thị trường hỗn loạn có thể gây ra các bước vào và dừng thường xuyên, làm suy giảm hiệu suất.
  2. Rủi ro kết thúc xu hướng: khi xu hướng sắp đảo ngược, một mục nhập mới có thể ngay lập tức đối mặt với sự đảo ngược và mất mát.
  3. Rủi ro chuyển động cực đoan: trong các đợt tăng quá mức bán hoặc giảm quá mức mua, việc dừng lại có thể không bảo vệ các vị trí tốt.
  4. Rủi ro tham số: các tham số không phù hợp có thể gây ra các bước vào và ra quá thường xuyên.

Hướng dẫn tối ưu hóa

  1. Xác định xu hướng: thêm các chỉ số xu hướng như đường trung bình động và chỉ giao dịch theo hướng xu hướng chính để cải thiện tỷ lệ thắng.
  2. Tích hợp biến động: điều chỉnh các tham số dựa trên các chỉ số biến động như ATR để thích nghi với các biến động khác nhau.
  3. Xác nhận động lượng: thêm các chỉ số động lượng như MACD để xác nhận các mục chỉ với hỗ trợ động lượng.
  4. Tối ưu hóa dừng: kết hợp với tỷ lệ dừng cho các động thái cực đoan; thêm dừng bảo vệ để giảm lỗ trên mỗi giao dịch.
  5. Định giá vị trí: tối ưu hóa định giá vị trí, ví dụ: điều chỉnh kích thước dựa trên mức độ rủi ro để cải thiện tỷ lệ rủi ro-lợi nhuận.

Tóm lại

Chiến lược dừng thấp nhất/cao nhất này thiết lập các điểm dừng năng động dựa trên chính giá để nắm bắt hiệu quả các xu hướng mạnh và kiểm soát chặt chẽ rủi ro. Ưu điểm của nó là sự đơn giản, hiệu quả, nhập nhanh, dừng nghiêm ngặt và khả năng thích nghi cao. Tuy nhiên, nó hoạt động kém trong thị trường hỗn loạn, kết thúc xu hướng và chuyển động cực đoan, và đòi hỏi sự chú ý đến cài đặt tham số.


/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Highest high/lowest low stop", overlay=true)

// STEP 1:
// Make inputs for length of highest high and lowest low
hiLen = input.int(20, title="Highest High Lookback", minval=2)
loLen = input.int(20, title="Lowest Low Lookback", minval=2)

// STEP 2:
// Calculate recent extreme high and low
hiHighs = ta.highest(high, hiLen)[1]
loLows  = ta.lowest(low, loLen)[1]

// Plot stop values for visual confirmation
plot(strategy.position_size > 0 ? loLows : na,
     style=plot.style_circles, color=color.green, linewidth=3,
     title="Lowest Low Stop")

plot(strategy.position_size < 0 ? hiHighs : na,
     style=plot.style_circles, color=color.red, linewidth=3,
     title="Highest High Stop")

// Trading conditions for this example strategy
higherCloses = close > close[1] and
     close[1] > close[2] and 
     close[2] > close[3]

lowerCloses = close < close[1] and
     close[1] < close[2] and 
     close[2] < close[3]

isFlat = strategy.position_size == 0

// Submit entry orders
if isFlat and higherCloses
    strategy.entry("EL", strategy.long)

if isFlat and lowerCloses
    strategy.entry("ES", strategy.short)

// STEP 3:
// Submit stops based on highest high and lowest low
if strategy.position_size > 0
    strategy.exit("XL HH", stop=loLows)

if strategy.position_size < 0
    strategy.exit("XS LL", stop=hiHighs)

Thêm nữa