
Đây là một chiến lược theo dõi xu hướng kết hợp nhiều chỉ số. Nó sử dụng ba chu kỳ khác nhau của EMA, Stochastic RSI và ATR để xác định định hướng xu hướng và thiết lập vị trí.
Chiến lược này sử dụng ba đường trung bình EMA, lần lượt là EMA 8 chu kỳ, 14 chu kỳ và 50 chu kỳ. Chúng đại diện cho xu hướng giá trong các khoảng thời gian khác nhau. Khi EMA 8 chu kỳ đi qua EMA 14 chu kỳ và EMA 14 chu kỳ đi qua EMA 50 chu kỳ, cho thấy hiện tại đang ở giai đoạn bắt đầu xu hướng, có thể chọn để tạo nhiều vị trí.
Chỉ số Stochastic RSI kết hợp RSI và phương pháp tính toán Stochastic, có thể phát hiện hiện tượng bán tháo quá mức. Khi đường K của Stochastic RSI xuyên qua đường D từ phía dưới, điều này cho thấy thị trường đang chuyển từ tình trạng bán tháo sang thị trường, có thể chọn nhiều hơn.
ATR đại diện cho phạm vi biến động gần đây. Chiến lược sử dụng 3 lần ATR như khoảng cách dừng lỗ và 2 lần như khoảng cách dừng để khóa lợi nhuận và kiểm soát rủi ro.
Bạn có thể tối ưu hóa độ nhạy của chỉ số bằng cách điều chỉnh các tham số chu kỳ EMA. Bạn cũng có thể điều chỉnh số lần dừng lỗ của ATR để thiết lập các tham số phù hợp tùy thuộc vào tình hình thị trường. Ngoài ra, bạn có thể xem xét thêm các chỉ số hỗ trợ khác để tránh tín hiệu sai.
Chiến lược tổng hợp này xem xét hướng xu hướng, quá mua quá bán và phạm vi biến động để xác định thời điểm vào thị trường. Sử dụng đường trung bình EMA và chỉ số Stochastic RSI kết hợp có thể xác định xu hướng hiệu quả, ATR theo dõi động dừng lỗ giúp kiểm soát rủi ro. Bằng cách điều chỉnh và tối ưu hóa các tham số, chiến lược này có thể trở thành một hệ thống theo dõi xu hướng đáng tin cậy.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
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/
// © FreddieChopin
//@version=4
strategy("3 x EMA + Stochastic RSI + ATR", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
// 3x EMA
ema1Length = input(8, "EMA1 Length", minval = 1)
ema2Length = input(14, "EMA2 Length", minval = 1)
ema3Length = input(50, "EMA3 Length", minval = 1)
ema1 = ema(close, ema1Length)
ema2 = ema(close, ema2Length)
ema3 = ema(close, ema3Length)
plot(ema1, color = color.green)
plot(ema2, color = color.orange)
plot(ema3, color = color.red)
// Stochastic RSI
smoothK = input(3, "K", minval=1)
smoothD = input(3, "D", minval=1)
lengthRSI = input(14, "RSI Length", minval=1)
lengthStoch = input(14, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
// ATR
atrPeriod = input(14, "ATR Period")
takeProfitMultiplier= input(2.0, "Take-profit Multiplier")
stopLossMultiplier= input(3.0, "Stop-loss Multiplier")
atrSeries = atr(atrPeriod)[1]
longCondition = ema1 > ema2 and ema2 > ema3 and crossover(k, d)
strategy.entry("long", strategy.long, when = longCondition)
float stopLoss = na
float takeProfit = na
if (strategy.position_size > 0)
if (na(stopLoss[1]))
stopLoss := strategy.position_avg_price - atrSeries * stopLossMultiplier
else
stopLoss := stopLoss[1]
if (na(takeProfit[1]))
takeProfit := strategy.position_avg_price + atrSeries * takeProfitMultiplier
else
takeProfit := takeProfit[1]
strategy.exit("take profit / stop loss", limit = takeProfit, stop = stopLoss)
plot(stopLoss, color = color.red, linewidth = 2, style = plot.style_linebr)
plot(takeProfit, color = color.green, linewidth = 2, style = plot.style_linebr)