SPY RSI Stochastics Chiến lược đảo ngược giá trị chéo là một chiến lược giao dịch định lượng sử dụng các đường chéo của chỉ số RSI để xác định giá đảo ngược. Chiến lược này kết hợp các đường chậm, đường nhanh và đường MA, tạo ra tín hiệu mua và bán trong một số điều kiện nhất định để nắm bắt cơ hội biến đổi giá lớn hơn.
Lập luận cốt lõi của chiến lược này dựa trên đường chéo nhanh của chỉ số RSI. RSI thường đảo ngược trong khu vực quá mua quá bán, do đó, bằng cách đánh giá đường RSI nhanh với đường RSI chậm, bạn có thể đoán trước thời gian giá có thể đảo ngược. Cụ thể, chiến lược phụ thuộc chủ yếu vào một số chỉ số và điều kiện sau:
Một tín hiệu mua được tạo ra khi đường RSI nhanh xuyên qua đường RSI chậm ((góc vàng) và đường RSI nhanh xuyên qua đường MA; một tín hiệu bán được tạo ra khi đường RSI nhanh xuyên qua đường RSI chậm ((góc chết) và đường RSI nhanh xuyên qua đường MA.
Ngoài ra, để lọc ra một số giao dịch ồn ào, chiến lược này cũng đặt ra các logic sau:
Sau khi đăng ký, bạn có hai điều kiện để rút lui:
Ưu điểm lớn nhất của chiến lược đảo ngược xu hướng giao dịch SPY RSI Stochastics là có thể bắt được xu hướng trước khi giá có sự đảo ngược rõ rệt. Bằng cách giao dịch đường RSI chậm, nó có thể gửi tín hiệu giao dịch trước một thời gian nhất định, tạo cơ hội để vào. Ngoài ra, chiến lược này còn có một số lợi thế sau:
Nhìn chung, chiến lược này kết hợp theo dõi xu hướng và đánh giá giá trị đảo ngược, có thể nắm bắt thời gian giá đảo ngược ở một mức độ nhất định, có tính thực tiễn mạnh mẽ.
Mặc dù SPY RSI Stochastics có một số lợi thế trong chiến lược đảo ngược xu hướng, nhưng cũng có những rủi ro chính sau:
Đối với các rủi ro trên, chiến lược này có thể được tối ưu hóa và cải thiện bằng cách:
SPY RSI Stochastics Chiến lược đảo ngược xu hướng giá trị chéo có thể được tối ưu hóa chủ yếu từ các khía cạnh sau:
Các tối ưu hóa này có thể làm cho các tham số chiến lược thông minh hơn, tín hiệu đáng tin cậy hơn, đồng thời có thể điều chỉnh các quy tắc chiến lược theo sự thay đổi của thị trường, do đó cải thiện đáng kể khả năng lợi nhuận ổn định của chiến lược.
SPY RSI Stochastics đã thiết kế một chiến lược giao dịch định lượng tương đối đơn giản và rõ ràng bằng cách đánh giá sự giao nhau của đường RSI. Nó kết hợp các đặc điểm của theo dõi xu hướng và giao dịch đảo ngược, có thể nắm bắt được thời gian đảo ngược của giá đến một mức độ nhất định. Tuy nhiên, chiến lược này cũng có một số thiếu sót vốn có, cần kiểm soát rủi ro, nâng cao chất lượng tín hiệu thông qua tham số, tính năng và mô hình.
/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SPY Auto RSI Stochastics", pyramiding = 3)
// Input parameters
slowRSILength = input(64, title="SLOW RSI Length")
fastRSILength = input(9, title="FAST RSI Length")
smaRSILength = input(3, title="RSI SMA Length")
RSIUpperThreshold = input(83, title="RSI Upper")
RSILowerThreshold = input(25, title="RSI Lower")
RSIUpperDeadzone = input(61, title='RSI Upper Deadzone')
RSILowerDeadzone = input(39, title='RSI Lower Deadzone')
blockedDays = (dayofweek(time) == 1 or dayofweek(time) == 7)
sessionMarket = input("0900-0900", title="Session Start")
allowedTimes() => time(timeframe = timeframe.period, session = sessionMarket, timezone = "GMT+1")
isvalidTradeTime =true
// RSI and ATR
slowRSI = ta.rsi(close, slowRSILength)
fastRSI = ta.rsi(close, fastRSILength)
smaRSI = ta.sma(fastRSI, smaRSILength)
rsi = fastRSI
// Entry condition
RSIUptrend() => ta.crossover(fastRSI, slowRSI) and ta.crossover(fastRSI, smaRSI)
RSIDowntrend() => ta.crossunder(fastRSI, slowRSI) and ta.crossunder(fastRSI, smaRSI)
isRSIDeadzone() =>
rsi < RSIUpperDeadzone and rsi > RSILowerDeadzone
isBullishEngulfing() =>
close > high[1]
isBearishEngulfing() =>
close < low[1]
// Declare variables
var float initialSLLong = na
var float initialTPLong = na
var float initialSLShort = na
var float initialTPShort = na
//var bool inATrade = false
entryConditionLong = RSIUptrend() and not isRSIDeadzone() and isvalidTradeTime
entryConditionShort = RSIDowntrend() and not isRSIDeadzone() and isvalidTradeTime
exitConditionLong = entryConditionShort or fastRSI > RSIUpperThreshold
exitConditionShort = entryConditionLong or fastRSI < RSILowerThreshold
if (entryConditionLong)
strategy.entry(id = "Long", direction = strategy.long, alert_message = 'LONG! beep boop, all aboard the long train')
if (entryConditionShort)
strategy.entry(id = "Short", direction = strategy.short, alert_message = 'Short! beep boop, all aboard the short train')
if (exitConditionLong)
strategy.exit("Long", from_entry="Long", limit=close, alert_message = 'Stop Long, halt halt, take the profits and runnn')
if (exitConditionShort)
strategy.exit("Short", from_entry="Short", limit=close, alert_message = 'Stop Short, halt halt, take the profits and runnn')
//plot(smaRSI, "RSI MA", color=color.red)
plot(slowRSI, "Slow RSI", color=color.green)
//plot(fastRSI, "Fast RSI", color=color.white)
plot(smaRSI, "SMA RSI", color=color.white)