Chiến lược đột phá phạm vi RSI của thuật toán


Ngày tạo: 2023-10-17 17:14:09 sửa đổi lần cuối: 2023-10-17 17:14:09
sao chép: 0 Số nhấp chuột: 759
1
tập trung vào
1617
Người theo dõi

Chiến lược đột phá phạm vi RSI của thuật toán

Tổng quan

Chiến lược này nhằm mục đích mua và bán khi RSI ở trong phạm vi thấp, mua và bán khi RSI ở trong phạm vi cao, và điều này có nghĩa là hoạt động ngược lại khi RSI vượt quá.

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

  1. Thiết lập RSI dài 14 chu kỳ

  2. Cài đặt RSI của tín hiệu mua:

    • RSI <= 27
    • RSI <= 18
  3. Cài đặt RSI của tín hiệu bán:

    • RSI >= 68
    • Phạm vi 2: RSI > = 80
  4. Khi RSI đi vào khoảng mua, hãy mua thêm:

    • Nếu RSI đi vào khoảng 1 (dưới 27), làm thêm 1 tay
    • Nếu RSI đi vào khoảng 2 (dưới 18), làm thêm 1 tay
  5. Khi RSI đi vào khoảng bán tháo, hãy tháo vào:

    • Nếu RSI đi vào khoảng 1 (hoặc hơn 68)
    • Nếu RSI đi vào khoảng 2 (80 trở lên), thêm 1 tay trống
  6. Mỗi lần mở vị trí cố định dừng 2500 điểm, dừng 5000 điểm

  7. Khi RSI rời khỏi phạm vi tín hiệu, nó sẽ xóa các vị trí liên quan

Phân tích lợi thế

  1. Cài đặt hai khoảng cho phép chiến lược đánh giá rõ hơn về quá mua và quá bán để tránh bỏ lỡ cơ hội đảo ngược

  2. Cài đặt điểm dừng cố định, không theo đuổi quá nhiều.

  3. RSI là một chỉ số đánh giá quá mua và quá bán, có lợi thế hơn so với các chỉ số khác

  4. Các tham số của chiến lược này được thiết lập hợp lý, có thể nắm bắt hiệu quả các điểm đảo ngược xu hướng, thu được lợi nhuận dư thừa

Phân tích rủi ro

  1. Chỉ số RSI có thể xảy ra thị trường không hiệu quả, dẫn đến hệ thống tiếp tục thua lỗ

  2. Cài đặt điểm dừng cố định có thể không phù hợp với sự biến động của thị trường, không có lợi nhuận hoặc dừng lỗ sớm

  3. Thiết lập khoảng cách không hợp lý có thể dẫn đến cơ hội giao dịch bị bỏ lỡ hoặc mất mát giao dịch thường xuyên

  4. Chiến lược này phụ thuộc nhiều hơn vào tối ưu hóa tham số, cần chú ý đến chu kỳ thử nghiệm và kiểm soát điểm trượt

Hướng tối ưu hóa

  1. Có thể kiểm tra hiệu quả của chỉ số RSI với các chu kỳ khác nhau

  2. Các giá trị có thể được tối ưu hóa trong khoảng mua bán để phù hợp hơn với các đặc điểm của các giống khác nhau

  3. Có thể nghiên cứu các phương pháp dừng động để làm cho dừng hiệu quả hơn, dừng hợp lý hơn

  4. Có thể xem xét giao dịch kết hợp với các chỉ số khác để tăng sự ổn định của hệ thống

  5. Có thể khám phá cách học máy tự động tối ưu hóa các tham số phân vùng để làm cho chiến lược trở nên mạnh mẽ hơn

Tóm tắt

Chiến lược này được thiết kế dựa trên nguyên tắc phán đoán quá mua quá bán của chỉ số RSI. Bằng cách thiết lập các khu vực mua bán song song để tận dụng hiệu quả của chỉ số RSI, trong khi duy trì một mức độ ổn định, có thể nắm bắt hiệu quả hiện tượng quá mua quá bán của thị trường. Nhưng chiến lược này cũng có một số tùy thuộc vào tham số, cần kiểm tra tối ưu hóa đối với các giống khác nhau. Nếu tham số được thiết lập đúng, chiến lược này có thể thu được lợi nhuận vượt quá tốt. Nói chung, chiến lược này là một chiến lược giao dịch đơn giản và hiệu quả sử dụng chỉ số trưởng thành, cần nghiên cứu thêm về tối ưu hóa giá trị và cũng cung cấp đường hướng cho chiến lược giao dịch.

Mã nguồn chiến lược
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 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/
// © Rawadabdo

// Ramy's Algorithm

//@version=5
strategy("BTC/USD - RSI", overlay=false, initial_capital = 5000)

// User input
length = input(title = "Length", defval=14, tooltip="RSI period")

first_buy_level = input(title = "Buy Level 1", defval=27, tooltip="Level where 1st buy triggers")
second_buy_level = input(title = "Buy Level 2", defval=18, tooltip="Level where 2nd buy triggers")

first_sell_level = input(title = "Sell Level 1", defval=68, tooltip="Level where 1st sell triggers")
second_sell_level = input(title = "Sell Level 2", defval=80, tooltip="Level where 2nd sell triggers")

takeProfit= input(title="target Pips", defval=2500, tooltip="Fixed pip stop loss distance")
stopLoss = input(title="Stop Pips", defval=5000, tooltip="Fixed pip stop loss distance")

lot = input(title = "Lot Size", defval = 1, tooltip="Trading Lot size")

// Get RSI
vrsi = ta.rsi(close, length)

// Entry Conditions
long1 = (vrsi <= first_buy_level and vrsi>second_buy_level)
long2 = (vrsi <= second_buy_level)

short1= (vrsi >= first_sell_level and vrsi<second_sell_level)
short2= (vrsi >= second_sell_level)


// Entry Orders
// Buy Orders
if (long1 and strategy.position_size == 0)
    strategy.entry("Long", strategy.long, qty=lot, comment="Buy")
    if (long2 and  strategy.position_size == 0)
        strategy.entry("Long", strategy.long, qty=lot, comment="Buy")

// Short Orders
if (short1 and strategy.position_size == 0)
    strategy.entry("Short", strategy.short,qty=lot, comment="Sell")
    if (short2 and strategy.position_size == 0)
        strategy.entry("Short", strategy.short,qty=lot, comment="Sell")
    
// Exit our trade if our stop loss or take profit is hit
strategy.exit(id="Long Exit", from_entry="Long",qty = lot, profit=takeProfit, loss=stopLoss)
strategy.exit(id="Short Exit", from_entry="Short", qty = lot, profit=takeProfit, loss=stopLoss)

// plot data to the chart
hline(first_sell_level, "Overbought Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2)
hline(second_sell_level, "Overbought Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2)
hline(first_buy_level, "Oversold Zone", color=color.red, linestyle=hline.style_dashed, linewidth = 2)
hline(second_buy_level, "Oversold Zone", color=color.green, linestyle=hline.style_dashed, linewidth = 2)
plot (vrsi, title = "RSI", color = color.blue, linewidth=2)