Chiến lược kim tự tháp giao dịch chứng khoán dựa trên chỉ số RSI

Tác giả:ChaoZhang, Ngày: 2024-01-30 15:26:49
Tags:

img

Tổng quan

Bài viết này chủ yếu giới thiệu một chiến lược kim tự tháp giao dịch chứng khoán được thiết kế dựa trên chỉ số chỉ số sức mạnh tương đối (RSI).

Nguyên tắc chiến lược

  • Sử dụng chỉ số RSI để đánh giá liệu cổ phiếu đã bước vào khu vực mua quá mức hay bán quá mức. RSI dưới 25 là bán quá mức, và trên 80 là mua quá mức.
  • Khi chỉ số RSI bước vào khu vực bán quá mức, bắt đầu mua dài. Khi chỉ số RSI bước vào khu vực mua quá mức, bắt đầu mua ngắn.
  • Sử dụng phương pháp kim tự tháp, với tối đa 7 lần mua thêm.

Phân tích lợi thế

  • Sử dụng chỉ số RSI để xác định các khu vực mua quá mức và bán quá mức có thể nắm bắt các cơ hội đảo ngược giá lớn hơn.
  • Phương pháp kim tự tháp có thể có được lợi nhuận tương đối tốt hơn khi thị trường di chuyển đúng.
  • Thiết lập lấy lợi nhuận và dừng lỗ sau mỗi lần mua thêm có thể kiểm soát rủi ro.

Phân tích rủi ro

  • Hiệu ứng của chỉ số RSI để xác định các khu vực mua quá mức và bán quá mức là không ổn định và có thể xảy ra các tín hiệu sai.
  • Số lượng mua thêm cần phải được thiết lập hợp lý, quá nhiều mua thêm sẽ làm tăng rủi ro.
  • Việc thiết lập các điểm dừng lỗ cần phải xem xét sự biến động, không thể được đặt quá nhỏ.

Hướng dẫn tối ưu hóa

  • Xem xét kết hợp các chỉ số khác để lọc các tín hiệu RSI và cải thiện độ chính xác của việc xác định tình trạng mua quá nhiều và bán quá nhiều. chẳng hạn như KDJ, BOLL và các chỉ số khác.
  • Có thể thiết lập stop loss nổi để theo dõi giá. Điều chỉnh năng động theo yêu cầu biến động và kiểm soát rủi ro.
  • Xem xét sử dụng các thông số thích nghi dựa trên điều kiện thị trường (thị trường tăng, thị trường giảm, v.v.).

Tóm lại

Chiến lược này kết hợp chỉ số RSI với chiến lược kim tự tháp. Trong khi đánh giá tình trạng mua quá mức và bán quá mức, nó có thể thu được nhiều lợi nhuận hơn thông qua mua thêm. Mặc dù độ chính xác của phán quyết RSI cần được cải thiện, thông qua tối ưu hóa tham số hợp lý và kết hợp với các chỉ số khác, nó có thể tạo thành một chiến lược giao dịch hiệu quả. Chiến lược này có một số tính phổ quát và là một phương pháp giao dịch định lượng tương đối đơn giản và đơn giản.


/*backtest
start: 2023-12-30 00:00:00
end: 2024-01-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RafaelZioni

strategy(title='Simple RSI strategy', overlay=false)

SWperiod = 1
look = 0
OverBought = input(80, minval=50)
OverSold = input(25, maxval=50)

bandmx = hline(100)
bandmn = hline(0)

band1 = hline(OverBought)
band0 = hline(OverSold)
//band50 = hline(50, color=black, linewidth=1)
fill(band1, band0, color=color.purple, transp=98)


src = close
len = input(5, minval=1, title="RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)

p = 100

//scale
hh = highest(high, p)
ll = lowest(low, p)
scale = hh - ll

//dynamic OHLC
dyno = (open - ll) / scale * 100
dynl = (low - ll) / scale * 100
dynh = (high - ll) / scale * 100
dync = (close - ll) / scale * 100

//candle color
color_1 = close > open ? 1 : 0

//drawcandle
hline(78.6)
hline(61.8)
hline(50)
hline(38.2)
hline(23.6)
plotcandle(dyno, dynh, dynl, dync, title="Candle", color=color_1 == 1 ? color.green : color.red)
plot(10, color=color.green)
plot(55, color=color.black)
plot(80, color=color.black)
plot(90, color=color.red)

long = rsi <= OverSold ? 5 : na

//Strategy
golong = rsi <= OverSold ? 5 : na

longsignal = golong  
//based on https://www.tradingview.com/script/7NNJ0sXB-Pyramiding-Entries-On-Early-Trends-by-Coinrule/
//set take profit

ProfitTarget_Percent = input(3)
Profit_Ticks = close * (ProfitTarget_Percent / 100) / syminfo.mintick

//set take profit

LossTarget_Percent = input(10)
Loss_Ticks = close * (LossTarget_Percent / 100) / syminfo.mintick


//Order Placing

strategy.entry("Entry 1", strategy.long, when=strategy.opentrades == 0 and longsignal)

strategy.entry("Entry 2", strategy.long, when=strategy.opentrades == 1 and longsignal)

strategy.entry("Entry 3", strategy.long, when=strategy.opentrades == 2 and longsignal)

strategy.entry("Entry 4", strategy.long, when=strategy.opentrades == 3 and longsignal)

strategy.entry("Entry 5", strategy.long, when=strategy.opentrades == 4 and longsignal)

strategy.entry("Entry 6", strategy.long, when=strategy.opentrades == 5 and longsignal)

strategy.entry("Entry 7", strategy.long, when=strategy.opentrades == 6 and longsignal)



if strategy.position_size > 0
    strategy.exit(id="Exit 1", from_entry="Entry 1", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 2", from_entry="Entry 2", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 3", from_entry="Entry 3", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 4", from_entry="Entry 4", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 5", from_entry="Entry 5", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 6", from_entry="Entry 6", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 7", from_entry="Entry 7", profit=Profit_Ticks, loss=Loss_Ticks)


Thêm nữa