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ỗ.
input
chức năng để thiết lập các khoảng thời gian xem lạihiLen
vàloLen
cho mức cao nhất và thấp nhất, mặc định đến 20.hiHighs
lên đến thanh trước đó sử dụngta.highest(high, hiLen)[1]
, và thấp nhất thấploLows
sử dụngta.lowest(low, loLen)[1]
.loLows
đối với các vị trí dài vàhiHighs
Không vẽ khi phẳng để xác nhận dễ dàng.higherCloses
: 3 thanh cuối cùng có kết thúc cao hơn liên tiếplowerCloses
: 3 thanh cuối cùng có kết thúc thấp hơn liên tiếpisFlat
: không có vị trí hiện tạiisFlat
vàhigherCloses
, nhập ngắn khiisFlat
vàlowerCloses
.loLows
; đố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.
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)