
Chiến lược này thực hiện một chiến lược giao dịch giảm giá đơn giản dựa trên chỉ số RSI tương đối mạnh. Mua khi RSI thấp hơn 30 và bán khi RSI cao hơn 40. Thời gian giữ vị trí được cố định là 10 ngày. Chiến lược này phù hợp với giao dịch ngắn hạn và trung bình.
Chiến lược này chủ yếu dựa trên việc tạo ra tín hiệu giao dịch trong khu vực quá bán và quá mua của chỉ số RSI. Chỉ số RSI phản ánh sự sụt giảm nhanh chóng trong một chu kỳ. RSI thấp hơn 30 cho thấy giá cổ phiếu có thể vượt quá khu vực bán và có thể bật lên; RSI cao hơn 70 cho thấy giá cổ phiếu có thể vượt quá khu vực mua và có thể giảm.
Cụ thể, chiến lược này tính toán RSI 10 ngày đầu tiên, sau đó đặt ngưỡng 30 và 40. Khi RSI 10 ngày thấp hơn 30, nó tạo ra tín hiệu mua, và khi RSI 10 ngày cao hơn 40, nó tạo ra tín hiệu bán. Sau khi nhận được tín hiệu mua, bạn mua. Sau khi nhận được tín hiệu bán, nếu giữ vị thế hơn 10 ngày, bạn sẽ bán ngay lập tức; Nếu giữ vị thế ít hơn 10 ngày, bạn tiếp tục giữ vị trí cho đến ngày thứ 10 và bán.
Chiến lược này đơn giản và dễ hiểu, sử dụng chỉ số RSI để đánh giá các khu vực quá mua và quá bán để thực hiện chiến lược giao dịch giảm giá dựa trên chỉ số.
Chiến lược này sử dụng các chỉ số RSI được sử dụng rộng rãi. Các tham số RSI có thể được điều chỉnh và tối ưu hóa để phù hợp với các chu kỳ và môi trường thị trường khác nhau.
RSI có thể phản ánh xu hướng thay đổi giá. Chiến lược này dựa trên chỉ số RSI để đánh giá xu hướng giá, thực hiện theo dõi xu hướng đơn giản.
Chiến lược này sử dụng thời gian giữ vị trí cố định, có thể kiểm soát hiệu quả tổn thất đơn. Đồng thời, các tham số RSI có thể được điều chỉnh để giảm khả năng giao dịch sai.
Các tham số của RSI có thể được cài đặt linh hoạt, nhưng quá tối ưu hóa và sai lệch đo lường lại có thể dẫn đến rủi ro thực tế.
RSI thuộc về các chỉ số theo dõi xu hướng, phản ứng chậm với sự kiện bất ngờ, có một sự chậm trễ nhất định.
Thời gian giữ vị trí cố định đã buộc điểm dừng lỗ và không thể điều chỉnh theo sự thay đổi của thị trường. Mong muốn tối ưu hóa hơn nữa để điều chỉnh dừng lỗ động.
Tối ưu hóa các tham số RSI, kiểm tra tác động của các tham số khác nhau đối với chiến lược
Thêm các chỉ số khác, tạo ra các chỉ số, tận dụng lợi thế của các chỉ số khác nhau
Tối ưu hóa chiến lược dừng lỗ để có thể điều chỉnh động theo biến đổi thị trường
Tối ưu hóa quản lý vị trí, điều chỉnh vị trí theo tình hình thị trường
Kiểm tra các giống phù hợp với chiến lược, chọn các giống có tính thanh khoản tốt và biến động cao
Tối ưu hóa thời gian giao dịch, kiểm tra tác động của thời gian giao dịch khác nhau đối với chiến lược
Chiến lược này đơn giản hơn, thực hiện chiến lược giao dịch dựa trên giảm giá thông qua chỉ số RSI. Ưu điểm của chiến lược là đơn giản, dễ hiểu và kiểm soát rủi ro tương đối tốt. Tuy nhiên, cũng có những vấn đề như khó khăn trong việc tối ưu hóa tham số RSI, không linh hoạt trong việc dừng lỗ.
/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
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/
// © Bitduke
//@version=4
// strategy("Simple RSI Buy/Sell at a level", shorttitle="Simple RSI Strategy", overlay=true,calc_on_every_tick=false,pyramiding=1, default_qty_type=strategy.cash,default_qty_value=1000, currency=currency.USD, initial_capital=1000,commission_type=strategy.commission.percent, commission_value=0.075)
overbought = input(40, title="overbought value")
oversold = input(30, title="oversold value")
// Component Test Periods Code Begin
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2021, "Backtest Stop Year")
testStopMonth = input(16, "Backtest Stop Month")
testStopDay = input(2, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)
testPeriod() => true
// Component Test Periods Code End
//////////////////////////////////////////////////////////////////////
myrsi = rsi(close, 10) > overbought
myrsi2 = rsi(close, 10) < oversold
barcolor(myrsi ? color.black : na)
barcolor(myrsi2 ? color.blue : na)
myEntry = myrsi2 and hour(time) <= 9
strategy.entry("Buy Signal", strategy.long, when = myEntry and testPeriod())
// Close 10 bar periods after the condition that triggered the entry
//if (myEntry[10])
//strategy.close("Buy Signal")
strategy.close("Buy Signal", when = barssince(myEntry) >= 10 or myrsi and testPeriod())
//strategy.entry("Sell Signal",strategy.short, when = myrsi2)