Chiến lược này được thiết kế dựa trên lý thuyết dừng lỗ động của ông Case. Chiến lược này tính toán phạm vi biến động động của giá để tìm điểm dừng lỗ và giá dừng tối ưu để cân bằng lợi nhuận.
Nguyên tắc chiến lược:
Chỉ số phạm vi biến động động của giá RWH và RWL được tính.
Chỉ số độ lệch giá Pk được lấy từ RWH và RWL.
Khi Pk> 0, giá dừng được tính dựa trên độ lệch. Khi Pk< 0, giá dừng được tính.
Có thể lựa chọn hệ số lệch của trục dừng, thường là 1-3 lần so với tiêu chuẩn.
Khi giá chạm mức dừng lỗ, hãy thực hiện hành động đảo ngược.
Những lợi thế của chiến lược này:
Động lực tính toán điểm dừng lỗ có thể được điều chỉnh theo biến động của thị trường.
Điểm dừng sẽ không quá gần hoặc quá thoải mái.
Cách tính toán toán học giúp tránh ảnh hưởng của cảm xúc chủ quan đến phán đoán.
Rủi ro của chiến lược này:
Tính toán giá dừng có sự chậm trễ, có thể bỏ lỡ thời điểm dừng tối ưu.
Cần tối ưu hóa các tham số lệch nhân để cân bằng các điểm dừng lỗ.
Không có giới hạn về mức độ tổn thất đơn lẻ, có nguy cơ tổn thất đơn lẻ lớn.
Tóm lại, chiến lược này có thể tối ưu hóa các thiết lập dừng lỗ một cách thông minh, nhưng hiệu quả của nó vẫn cần được kiểm tra lại và không thể hoàn toàn tránh được rủi ro chủ quan SUBJECTIVE, các nhà đầu tư vẫn cần thận trọng.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-04-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 09/10/2019
// The Kase Dev Stops system finds the optimal statistical balance between letting profits run,
// while cutting losses. Kase DevStop seeks an ideal stop level by accounting for volatility (risk),
// the variance in volatility (the change in volatility from bar to bar), and volatility skew
// (the propensity for volatility to occasionally spike incorrectly).
//
// Kase Dev Stops are set at points at which there is an increasing probability of reversal against
// the trend being statistically significant based on the log normal shape of the range curve.
// Setting stops will help you take as much risk as necessary to stay in a good position, but not more.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Kase Dev Stops Backtest", overlay = true)
Length = input(30, minval=2, maxval = 100)
Level = input(title="Trade From Level", defval=4, options=[1, 2, 3, 4])
reverse = input(false, title="Trade reverse")
RWH = (high - low[Length]) / (atr(Length) * sqrt(Length))
RWL = (high[Length] - low) / (atr(Length) * sqrt(Length))
Pk = wma((RWH-RWL),3)
AVTR = sma(highest(high,2) - lowest(low,2), 20)
SD = stdev(highest(high,2) - lowest(low,2),20)
Val4 = iff(Pk>0, highest(high-AVTR-3*SD,20), lowest(low+AVTR+3*SD,20))
Val3 = iff(Pk>0, highest(high-AVTR-2*SD,20), lowest(low+AVTR+2*SD,20))
Val2 = iff(Pk>0, highest(high-AVTR-SD,20), lowest(low+AVTR+SD,20))
Val1 = iff(Pk>0, highest(high-AVTR,20), lowest(low+AVTR,20))
ResPrice = iff(Level == 4, Val4,
iff(Level == 3, Val3,
iff(Level == 2, Val2,
iff(Level == 1, Val1, Val4))))
pos = iff(close < ResPrice , -1, 1)
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1 , 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
if (possig == 0)
strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )