
Chiến lược này thuộc về chiến lược giao dịch ngắn hạn tích cực bằng cách định vị khối lượng giao dịch nổi bật ở đáy ngắn hạn trong xu hướng giảm và thực hiện các hoạt động mua trong điều kiện bán tháo.
Khi khối lượng giao dịch vượt quá mức chênh lệch tiêu chuẩn 2 lần so với mức trung bình dựa trên SMA thì được coi là khối lượng giao dịch nổi bật, trong khi RSI thấp hơn 30 thì được coi là tình trạng bán tháo. Khi cả hai điều kiện đều được đáp ứng, hãy đánh giá là đáy ngắn hạn và ngay lập tức làm nhiều hơn.
Vì vậy, chiến lược này chỉ có một vài bước:
Chiến lược này có những ưu điểm sau:
Nhìn chung, chiến lược sử dụng đầy đủ các đặc điểm của định lượng có thể phá vỡ để xác định xu hướng ngắn hạn, trong khi kiểm soát chặt chẽ rủi ro, là một chiến lược tích cực nhiều hoạt động có độ tin cậy cao.
Chiến lược này có những rủi ro:
Đối với các rủi ro trên, có thể tối ưu hóa từ các khía cạnh sau:
Chiến lược này có thể được tối ưu hóa hơn nữa ở những khía cạnh sau:
Bằng cách giới thiệu các chỉ số kỹ thuật tiên tiến hơn, học máy và phân tích cảm xúc, bạn có thể cải thiện đáng kể tính ổn định của chiến lược, tỷ lệ alpha và Sharpe.
Chiến lược này nói chung là một chiến lược phá vỡ đường ngắn rất đơn giản, trực tiếp và logic. Bằng cách áp dụng hợp lý các chỉ số khối lượng giao dịch để đánh giá điểm đảo ngược xu hướng ngắn hạn, trong khi kiểm soát rủi ro chặt chẽ, có thể đạt được hiệu quả tốt. Tuy nhiên, vẫn có một số rủi ro tín hiệu sai và rủi ro sức khỏe tham số. Những vấn đề này có thể được cải tiến và tối ưu hóa dần dần bằng cách giới thiệu nhiều công nghệ tiên tiến hơn, làm cho hiệu quả của chiến lược trở nên rõ rệt hơn.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © footlz
//@version=4
strategy("Bottom catch strategy", overlay=true)
v_len = input(20, title="Volume SMA Length")
mult = input(2)
rsi_len = input(20, title="RSI Length")
oversold = input(30, title="Oversold")
close_time = input(10, title="Close After")
v = volume
basis = sma(v, v_len)
dev = mult * stdev(v, v_len)
upper_volume = basis + dev
rsi = rsi(close, rsi_len)
long = v > upper_volume and rsi < oversold
strategy.entry("Long", true, when=long)
passed_time = 0.0
if strategy.position_size != 0
passed_time := 1
else
passed_time := 0
if strategy.position_size != 0 and strategy.position_size[1] != 0
passed_time := passed_time[1] + 1
if passed_time >= close_time
strategy.close_all()
// If want to enable plot, change overlay=false.
v_color = close >= close[1] ? color.new(#3eb370, 0) : color.new(#e9546b, 0)
// plot(v, title="volume", color=v_color, style=plot.style_columns)
// plot(upper_volume, title="Threshold", color=color.aqua)