
Chiến lược này tích hợp sử dụng công nghệ chéo đường trung bình di chuyển kép và công nghệ phá vỡ mức áp lực, thiết lập tín hiệu mua và tín hiệu bán, để thực hiện giao dịch tự động. Khi đường trung bình ngắn hạn phá vỡ đường trung bình từ dưới lên và giá cổ phiếu phá vỡ mức áp lực, tín hiệu mua sẽ được tạo ra; thiết lập dừng khi giá cổ phiếu tăng 15% và dừng khi giảm 3%. Chiến lược này có thể tự động xác định xu hướng thị trường, tự động tham gia vào khi tín hiệu kỹ thuật xuất hiện và thiết lập dừng để kiểm soát rủi ro mất mát, thuộc chiến lược giao dịch định lượng trưởng thành hơn.
Chiến lược này tạo ra tín hiệu giao dịch dựa trên một số chỉ số và điều kiện kỹ thuật sau:
Kỹ thuật giao chéo hai đường trung bình: tính toán đường trung bình di chuyển đơn giản 20⁄44 ngày, đánh giá thị trường đang có xu hướng tăng khi đường trung bình 20⁄44 ngày đi qua đường trung bình 44 ngày, tạo ra tín hiệu mua.
Kỹ thuật phá vỡ mức áp lực: Biểu đồ cho thấy vị trí mà giá cổ phiếu đã nhiều lần gần nhưng không phá vỡ được gọi là mức áp lực. Khi giá cổ phiếu phá vỡ mức áp lực thành công, nó cho thấy giá đang bước vào giai đoạn tăng mới.
Chỉ số bán tháo RSI: chỉ số kỹ thuật đánh giá thị trường là quá mua hoặc quá bán. Chiến lược này thiết lập tín hiệu mua quá mức khi chỉ số RSI 14 ngày lớn hơn 50.
Phân tích khối lượng giao dịch: khối lượng giao dịch vượt mức trung bình trong 10 ngày qua cho thấy thị trường đang có xu hướng mua hoặc bán mạnh mẽ hơn.
Tín hiệu mua: Đường trung bình ngắn hạn vượt qua đường trung bình trung bình và giá cổ phiếu vượt qua mức áp lực, thị trường đang mua quá mức và khối lượng giao dịch cao hơn khối lượng giao dịch trung bình trong 10 ngày qua, sẽ tạo ra tín hiệu mua.
Dấu hiệu bán: thiết lập tiêu chuẩn dừng lỗ, dừng lỗ nếu giá cổ phiếu tăng 15% so với giá mua; dừng lỗ nếu giảm 3%.
Chiến lược này kết hợp nhiều chỉ số kỹ thuật để đánh giá cấu trúc thị trường và tự động tạo ra tín hiệu giao dịch khi có xu hướng chỉ thị.
Sử dụng công nghệ thống nhất để đánh giá cấu trúc thị trường và nắm bắt xu hướng thị trường một cách ổn định;
Kết hợp phân tích khối lượng giao dịch để tránh mở vị trí trong các vụ phá vỡ giả mà khối lượng giao dịch không phù hợp;
Thiết lập cơ chế dừng, dừng và rút lui, có thể kiểm soát tốt tỷ lệ rủi ro / lợi nhuận của một giao dịch, tránh thiệt hại mở rộng;
Nhìn chung, chiến lược này là một chiến lược định lượng hiệu quả với sự xác định chính xác về cấu trúc thị trường, các quy tắc giao dịch nghiêm ngặt và kiểm soát rủi ro.
Hệ thống giao dịch hai dòng đều nhạy cảm hơn với các thiết lập tham số, các tham số khác nhau trong thời gian cần được điều chỉnh;
Các chiến lược chỉ theo dõi xu hướng, không thể phản ứng với những sự kiện bất ngờ, chẳng hạn như các thông tin về lợi nhuận lớn và lỗ hổng không thể tránh khỏi;
Mặc dù thiết lập dừng lỗ, nhưng số lần giao dịch nhiều hơn sẽ dẫn đến số lần dừng lỗ nhiều hơn, có nguy cơ chênh lệch mức lợi nhuận.
Trong thời gian dài, các chỉ số kỹ thuật có thể đã vượt qua các điểm tốt nhất để thị trường có thể đảo ngược.
Các phương pháp tối ưu hóa tham số có thể được sử dụng để tìm kiếm các tham số hai đường trung bình tốt nhất để tối ưu hóa mức độ dừng dừng;
Thêm các chỉ số khác, chẳng hạn như Brin và MACD, để tăng thời điểm phát ra tín hiệu.
Tăng khả năng đánh giá cơ bản hoặc tin tức để tránh những tin tức tiêu cực gây ra thiệt hại;
Tối ưu hóa chiến lược quản lý vốn, chẳng hạn như giao dịch số lượng cố định, giao dịch tỷ lệ cố định, để kiểm soát rủi ro đơn lẻ.
Chiến lược này hoạt động trơn tru, phán đoán chính xác và các quy tắc giao dịch nghiêm ngặt, rủi ro được kiểm soát, thuộc một trong những chiến lược định lượng hiệu quả hơn. Tuy nhiên, chiến lược giao dịch kỹ thuật về kết cấu thị trường vẫn có giới hạn, không gian tối ưu hóa là thêm các chỉ số khác phán đoán và các thông tin cơ bản của sự cân nhắc tổng hợp, ngoài ra, tối ưu hóa thêm các thiết lập dừng lỗ và chiến lược quản lý tiền cũng là trọng tâm. Nói chung, chiến lược này là chiến lược chỉ số kỹ thuật đã đạt đến mức cao, nhưng bước tiếp theo vẫn cần phải tiếp tục tối ưu hóa hướng của chiến lược toàn bộ chu kỳ thị trường.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Advanced Strategy with Conditional Stop Loss", overlay=true)
// Parameters
ma_length_20 = 20
ma_length_44 = 44
ma_length_100 = 100
rsi_length = 14
volume_length = 10
profit_target = 1.15 // 15% above the buy price
stop_loss_target = 0.97 // 3% below the buy price
wait_candles = 10 // Number of candles to wait after selling, unless MA cross condition met
// Indicators
moving_average_20 = ta.sma(close, ma_length_20)
moving_average_44 = ta.sma(close, ma_length_44)
moving_average_100 = ta.sma(close, ma_length_100)
rsi = ta.rsi(close, rsi_length)
volumeAvg = ta.sma(volume, volume_length)
// Variables to manage the wait period after a sell
var int last_sell_candle = 0
// Update last sell candle
if (strategy.position_size[1] > 0 and strategy.position_size == 0)
last_sell_candle := bar_index
// Trend identification
uptrend = close > moving_average_20
above_ma20_by_1_percent = close > moving_average_20 * 1.01
ma_cross = ta.crossover(moving_average_20, moving_average_44) or ta.crossunder(moving_average_20, moving_average_44)
close_near_high = (close >= high * 0.993) and (close <= high)
// Buy condition (only in uptrend, above 1% from 20-day MA, and respecting new filter)
can_buy_after_cross = ma_cross and close > high[1]
can_buy_after_wait = (bar_index - last_sell_candle) > wait_candles
buy_condition = (can_buy_after_cross or can_buy_after_wait) and uptrend and above_ma20_by_1_percent and close > moving_average_44 and close > moving_average_100 and close > high[1] and rsi > 50 and volume > volumeAvg and not close_near_high
// Entry
if (buy_condition and strategy.position_size == 0)
strategy.entry("Buy", strategy.long)
// Exit conditions
if (strategy.position_size > 0)
// Profit target
profit_level = strategy.position_avg_price * profit_target
strategy.exit("Take Profit", "Buy", limit=profit_level)
// Dynamic Stop Loss - Check on every bar if the price has dropped 3% below the buy price
stop_loss_level = strategy.position_avg_price * stop_loss_target
if (low < stop_loss_level)
strategy.close("Buy", comment="Stop Loss")
// Plotting
plot(moving_average_20, color=color.green, title="20-Day Moving Average")
plot(moving_average_44, color=color.blue, title="44-Day Moving Average")
plot(moving_average_100, color=color.red, title="100-Day Moving Average")