
Bài viết này chủ yếu phân tích chiến lược giao dịch định lượng dựa trên nhiều chỉ số động trung bình (EMA) và chỉ số tương đối mạnh (RSI) được phát triển bởi Ravikant_sharma. Chiến lược này được xác định thông qua sự giao thoa của các chu kỳ khác nhau của EMA và các giá trị của RSI, xác định xu hướng giá, xác định thời gian vào và ra khỏi thị trường.
Chiến lược sử dụng 5 EMA khác nhau, bao gồm 9 ngày, 21 ngày, 51 ngày, 100 ngày và 200 ngày. Chỉ có 4 EMA đầu tiên được vẽ trong mã.
Chiến lược mở nhiều vị trí nếu đáp ứng một trong các điều kiện sau:
RSI cần lớn hơn 65, cho thấy xu hướng tăng mạnh.
Chiến lược rút lui khi thỏa mãn một trong các điều kiện sau:
Đây là một chiến lược theo dõi xu hướng điển hình với những lợi thế sau:
Chiến lược này cũng có một số rủi ro:
Chiến lược này cũng có thể được tối ưu hóa theo các hướng sau:
Chiến lược này nói chung là một chiến lược theo dõi xu hướng đáng tin cậy và dễ thực hiện. Nó sử dụng EMA nhiều chu kỳ để xác định xu hướng, sau đó kết hợp với tín hiệu lọc RSI để lọc các tín hiệu giả, để tối ưu hóa tham số và tối ưu hóa mô hình dựa trên hiệu quả đo lường tốt hơn, có thể đạt được lợi nhuận ổn định. Tuy nhiên, khi sử dụng, các nhà giao dịch vẫn cần cảnh giác về rủi ro của biến động và tham số không phù hợp.
/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 3h
basePeriod: 15m
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/
// © Ravikant_sharma
//@version=5
strategy('new', overlay=true)
start = timestamp(1990, 1, 1, 0, 0)
end = timestamp(2043, 12, 12, 23, 59)
ema0 = ta.ema(close, 9)
ema1 = ta.ema(close, 21)
ema2 = ta.ema(close, 51)
ema3 = ta.ema(close, 100)
ema4 = ta.ema(close, 200)
rsi2=ta.rsi(ta.sma(close,14),14)
plot(ema0, '9', color.new(color.green, 0))
plot(ema1, '21', color.new(color.black, 0))
plot(ema2, '51', color.new(color.red, 0))
plot(ema3, '200', color.new(color.blue, 0))
//plot(ema4, '100', color.new(color.gray, 0))
//LongEntry = ( ta.crossover(ema0,ema3) or ta.crossover(ema0,ema2) or ta.crossunder(ema2,ema3) ) // ta.crossover(ema0,ema1) //
LongEntry=false
if ta.crossover(ema0,ema1)
if rsi2>65
LongEntry:=true
if ta.crossover(ema1,ema2)
if rsi2>65
LongEntry:=true
LongExit = ta.crossunder(ema0,ema2) or close >(strategy.position_avg_price*1.25) or rsi2 <40 or close < (strategy.position_avg_price*0.98)
if time >= start and time <= end
if(LongEntry and rsi2>60)
strategy.entry('Long', strategy.long, 1)
if(LongExit)
strategy.close('Long')