Chiến lược giao dịch chỉ dài trên chứng khoán Vortex và RSI

Tác giả:ChaoZhang, Ngày: 2023-09-19 22:01:09
Tags:

Tổng quan

Chiến lược này sử dụng chỉ số Vortex để xác định hướng xu hướng thị trường và xác định các cơ hội dài. Nó thêm bộ lọc RSI và quản lý dừng lỗ / lấy lợi nhuận để xây dựng một hệ thống giao dịch cổ phiếu dài hoàn chỉnh hơn. Nó có thể xác định hiệu quả xu hướng tăng và cho phép tùy chỉnh tham số.

Chiến lược logic

  1. Tính toán dương VIP và âm VIM của chỉ số Vortex.

  2. Khi VIP vượt trên VIM, và đóng cửa cao hơn mức cao trước đó, một tín hiệu mua được tạo ra.

  3. Khi chỉ số RSI vượt dưới 70, một tín hiệu bán được tạo ra.

  4. Khi VIM vượt qua dưới VIP, và đóng thấp hơn mức thấp trước đó, một tín hiệu bán cũng được kích hoạt.

  5. Đặt stop loss ở stop_loss% vốn ban đầu, và lấy lợi nhuận ở Target_profit% vốn ban đầu.

Chỉ số xoáy đánh giá xu hướng tăng/giảm tốt. Thêm RSI ngăn ngừa rủi ro quá nóng. Dừng lỗ / lấy lợi nhuận thêm độ mạnh mẽ.

Phân tích lợi thế

  1. Vortex xác định chính xác xu hướng với các tín hiệu rõ ràng.

  2. RSI tránh rủi ro quá nóng và đuổi theo đỉnh.

  3. Các điểm dừng động đặt tỷ lệ rủi ro/lợi nhuận được xác định trước.

  4. Các điểm dừng có thể điều chỉnh phù hợp với các môi trường thị trường khác nhau.

  5. Quy tắc đơn giản, rõ ràng, dễ thực hiện.

  6. Có thể mở rộng với các chỉ số khác.

Phân tích rủi ro

  1. Vortex có hiệu ứng chậm trễ, có thể bỏ lỡ cơ hội.

  2. Dừng lỗ quá nhỏ có thể gây ra whipsaws.

  3. Lấy lợi nhuận quá lớn có thể hạn chế lợi nhuận.

  4. Sự phụ thuộc quá mức vào RSI gây ra sự thất bại.

  5. Chi phí giao dịch không được tính.

  6. Không có quy tắc định kích thước vị trí.

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

  1. Kiểm tra và tối ưu hóa các thông số cho Vortex và RSI.

  2. Hãy thử kết hợp Vortex với OBV vv.

  3. Cải thiện các chiến lược dừng lỗ như dừng lại, thoát đèn chùm vv

  4. Thêm mô-đun định kích thước vị trí để hạn chế lỗ giao dịch duy nhất.

  5. Hãy xem xét thêm các bộ lọc như KD, MACD cho thời gian nhập.

  6. Sử dụng máy học để tối ưu hóa các tham số tốt hơn.

  7. Thêm các yếu tố cơ bản để cải thiện tỷ lệ chiến thắng.

Kết luận

Chiến lược này tích hợp Vortex cho xu hướng và RSI để kiểm soát quá nóng vào một hệ thống cổ phiếu dài ổn định. Các thiết lập dừng lỗ / lấy lợi nhuận cũng giữ rủi ro có thể quản lý được. Những cải tiến hơn nữa trong điều chỉnh tham số và các mô-đun mới có thể làm cho nó mạnh mẽ hơn cho giao dịch trực tiếp. Với xu hướng mạnh mẽ theo sau dung lượng và khả năng mở rộng, chiến lược này phù hợp với các nhà đầu tư tích cực.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by Sauciusfinance 
////////////////////////////////////////////////////////////
strategy(title="Vortex and RSI ts 2020",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=20000,commission_value=.25,overlay = true,default_qty_type = strategy.cash, default_qty_value = 20000)
//inputs////////////////////////
n = input(title="vortex period",type=input.integer, defval = 14)
m = input(title = "RSI period", type=input.integer, defval = 14)
// CALCULATIONS *** ///////
VMP = sum( abs( high - low[1]), n )
VMM = sum( abs( low - high[1]), n )
STR = sum( atr(1), n )
VIP = VMP / STR
VIM = VMM / STR
// bring the lines in the panel below, add another panel with RSI
plot(VIP, title="VI +", color=#311B92)
plot(VIM, title="VI -", color=#FF006E)

// RSI on total price, always
totalprice = (high + low+close + open)/4
myrsi = rsi(m, totalprice)
strategy.initial_capital = 50000
//// TRADING SYSTEM CODE //// 
entryl = crossover(VIP, VIM) and close >= high[1] 
strategy.entry("Long", true, when=entryl, comment = "Go!")
exit1 = crossover(VIM, VIP) and close <= low[1]
strategy.close("Long", when=exit1, comment = "Vortex down")
exit2 = crossunder(myrsi, 70)
strategy.close("Long", when=exit2, comment = "RSI down")
//money management
stop_loss=input(7, "Stop loss %", minval = 1, step = 1)
sl = -1*stop_loss/100*strategy.initial_capital
close_Stop = strategy.openprofit < sl
strategy.close("Long", when = close_Stop)
Target_profit=input(16, "Target Profit %", minval = 1, step = 1)
tp = Target_profit/100*strategy.initial_capital
close_Target = strategy.openprofit > tp
strategy.close("Long", when = close_Target)



Thêm nữa