Chiến lược này tạo ra tín hiệu giao dịch theo xu hướng trong khu vực không có kháng cự bằng cách tính toán thời gian giá ở các khu vực khác nhau, để xác định liệu giá có đi vào khu vực không kháng cự mới hay không.
Tính tỷ lệ giá ở gần mức hiện tại trong N chu kỳ trước, được tính là độ ma sát giá.
Xác định liệu giá đã đi vào khu vực có ít ma sát trong một khoảng thời gian qua để tạo ra tín hiệu không có kháng cự.
Sử dụng đường trung bình chuyển động tăng trọng nhanh để xác định hướng xu hướng gần đây và giao dịch xu hướng khi có sự phá vỡ trong vùng không kháng cự.
Khi giá quay trở lại khu vực ma sát cao, dự đoán sẽ đảo ngược xu hướng đình trệ và rút ra.
Các tham số giao dịch có thể được tùy chỉnh, bao gồm chu kỳ phán quyết khu vực ma sát, phá vỡ khu vực nhập cảnh, v.v.
Sử dụng mức độ ma sát giá để xác định vùng không có kháng cự, tránh vùng rung động.
Đường trung bình nhanh theo dõi xu hướng gần đây, kết hợp sử dụng định hướng phán đoán.
Giao diện trực quan hiển thị các khu vực xung đột giá.
Các tham số mặc định được tối ưu hóa cho giao dịch tần số cao của tiền điện tử.
Các quy tắc của chính sách đơn giản, rõ ràng, dễ hiểu và dễ sửa đổi.
Mức độ ma sát giá không hoàn toàn dự đoán được xu hướng của giá cả.
Thời điểm có thể không chính xác.
Không thể dễ dàng tham gia và rút khỏi thị trường.
Có thể có nguy cơ quá phù hợp khi tối ưu hóa.
Các tham số cố định có thể không hiệu quả khi thị trường thay đổi mạnh.
Kiểm tra các tham số khác nhau của chu kỳ để tính toán độ mờ giá.
Đánh giá xu hướng gần đây của các loại đường trung bình khác nhau.
Tối ưu hóa các tham số phá vỡ vùng không kháng cự, tăng sự ổn định của chiến lược.
Thêm chiến lược dừng lỗ, quản lý rủi ro giao dịch.
Cân nhắc sử dụng các tham số động để thích ứng với sự thay đổi của thị trường.
Thử nghiệm lại và xác minh trong nhiều giống và chu kỳ.
Chiến lược này có một số lợi thế khi giao dịch bằng cách tìm ra khu vực có khả năng bùng nổ xu hướng có khả năng cao. Tuy nhiên, cũng có những hạn chế về các tham số cố định. Bằng cách tăng cường các cơ chế tối ưu hóa tham số động, quản lý rủi ro, các chiến lược có thể được xây dựng ổn định và hiệu quả hơn.
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//made for 30m chart with BTCUSD or other cryptocurrency
strategy("LUBE",overlay=false )
friction=0.0
barsback=input(500,"bars back to measure friction",step=100)
flevel=input(50,"0-100 friction level to stop trade",step=2)
tlevel=input(-10,"pic lower than 0 to number selected above to initiate trade",step=2)
fl=flevel/100
tl=tlevel/100
for i = 1 to barsback
friction := if high[i] >= close and low[i] <= close
friction+(1+barsback)/(i+barsback)
else
friction
range=input(100,"bars back to measure lowest friction",step=10)
lowf = lowest(friction,range)
highf = highest(friction,range)
midf = (lowf*(1-fl)+highf*fl)
lowf2 = (lowf*(1-tl)+highf*tl)
plot(friction)
m=plot(midf[5],color=color.red)
l=plot(lowf2[5],color=color.white)
h=plot(highf[5],color=color.white)
fill(l,h,color.white)
src = input(title="Source", type=input.source, defval=close)
//FIR Filter
_fir(src) =>
(4 * src + 3 * nz(src[1]) + 2 * nz(src[2]) + nz(src[3])) / 10
fir = _fir(src)
trend = fir > fir[1]? 1:-1
//bgcolor(trend==1?color.lime:color.red,transp=50)
long=friction<lowf2[5] and trend == 1
short=friction<lowf2[5] and trend == -1
end=friction > midf[5]
keeplong=0
keeplong:=long?1:nz(keeplong[1])
keeplong:=short or end?0:keeplong
keepshort=0
keepshort:=short?1:nz(keepshort[1])
keepshort:=long or end?0:keepshort
bgcolor(keeplong==1?color.lime:keepshort==1?color.red:na,transp=50)
leverage=input(2,"leverage",step=.5)
enableshort=input(true,"enable shorts?")
barcount=0
barcount:=nz(barcount[1])+1
contracts=min(max(.000001,(strategy.equity/close)*leverage),50000)
strategy.entry("Long",strategy.long,when=long and barcount>20, qty=contracts)
strategy.close("Long",when=short or end )
strategy.entry("Short",strategy.short,when=short and enableshort==true and barcount>20, qty=contracts)
strategy.close("Short",when=(long or end) and enableshort==true)
alertcondition(keeplong==1 and keeplong[1]==0,"LONG")
alertcondition(keepshort==1 and keepshort[1]==0,"SHORT")
alertcondition((keeplong[1]==1 or keepshort[1]==1) and (keeplong==0 and keepshort==0),"CLOSE TRADE")