Chiến lược giao dịch lưới chỉ số RSI

Tác giả:ChaoZhang, Ngày: 2024-01-29 11:42:46
Tags:

img

Tổng quan

Chiến lược giao dịch lưới chỉ số RSI tích hợp các chỉ số kỹ thuật RSI và CCI với phương pháp giao dịch lưới cố định. Nó sử dụng các giá trị của các chỉ số RSI và CCI để xác định các tín hiệu đầu vào, và đặt đặt hàng lợi nhuận và các lệnh lưới bổ sung dựa trên tỷ lệ lợi nhuận cố định và số lưới. Chiến lược cũng kết hợp một cơ chế phòng ngừa rủi ro chống lại sự biến động của giá.

Chiến lược logic

Điều kiện nhập cảnh

Các tín hiệu dài được tạo ra khi chỉ số RSI 5 phút và 30 phút thấp hơn các giá trị ngưỡng, và CCI 1 giờ thấp hơn ngưỡng. Giá đóng hiện tại được ghi nhận là giá nhập cảnh, và kích thước của lệnh đầu tiên được tính dựa trên vốn hóa tài khoản và số lưới.

Chấp nhận các điều kiện lợi nhuận

Mức giá lấy lợi nhuận được tính bằng cách sử dụng giá nhập cảnh và tỷ lệ lợi nhuận mục tiêu.

Điều kiện nhập lưới

Sau lần đặt hàng đầu tiên, các đơn đặt hàng lưới có kích thước cố định còn lại được đặt một lần cho đến khi đạt được số lưới đã chỉ định.

Cơ chế phòng ngừa rủi ro

Nếu giá tăng vượt quá tỷ lệ phần trăm ngưỡng bảo hiểm được thiết lập từ khi nhập cảnh, tất cả các vị trí mở sẽ được bảo hiểm bằng cách đóng chúng.

Cơ chế đảo ngược

Nếu giá giảm vượt quá tỷ lệ phần trăm ngưỡng đảo ngược được thiết lập từ khi nhập cảnh, tất cả các đơn đặt hàng đang chờ được hủy bỏ để chờ đợi các cơ hội nhập cảnh mới.

Phân tích lợi thế

  • Kết hợp các chỉ số RSI và CCI để cải thiện lợi nhuận
  • Mục tiêu lưới điện cố định khóa lợi nhuận để tăng độ chắc chắn
  • Các biện pháp phòng ngừa rủi ro tích hợp chống lại biến động giá biến động
  • Cơ chế đảo ngược cắt giảm tổn thất

Phân tích rủi ro

  • Các tín hiệu sai từ các chỉ số
  • Giá tăng cao vượt qua ngưỡng phòng ngừa
  • Không nhập lại khi đảo ngược

Những điều này có thể được giảm thiểu bằng cách điều chỉnh các tham số chỉ số, mở rộng phạm vi phòng ngừa rủi ro, giảm phạm vi đảo ngược.

Các lĩnh vực cải tiến

  • Kiểm tra nhiều kết hợp chỉ số hơn
  • Nghiên cứu thu lợi nhuận thích nghi
  • Tối ưu hóa logic lưới

Kết luận

Chiến lược lưới RSI xác định các mục nhập với các chỉ số và khóa trong lợi nhuận ổn định bằng cách sử dụng lưới cố định lấy lợi nhuận và mục nhập. Nó cũng kết hợp bảo hiểm biến động và tái nhập sau khi đảo ngược. Sự tích hợp của nhiều cơ chế giúp giảm rủi ro giao dịch và tăng tỷ lệ lợi nhuận. Việc tối ưu hóa thêm các chỉ số và cài đặt có thể cải thiện hiệu suất trực tiếp.


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

//@version=5
strategy("Custom RSI/CCI Strategy with Fixed Grid", shorttitle="INVESTCOIN_RSI_CCI_Fixed_Grid", overlay=true)

// Input parameters
input_rsi_5min_value = 55
input_rsi_30min_value = 65
input_cci_1hr_value = 85
input_profit_target_percent = 0.6 // Target profit in percentage
input_grid_size = 15 // Number of orders in grid
input_hedging_percent = 20 // Percentage price change for hedging
input_first_order_offset = 0.2 // Offset for the first order in percentage
input_reversal_percent = 0.4 // Percentage price change for reversal

// Calculating the RSI and CCI values
rsi_5min = ta.rsi(close, 5)
rsi_30min = ta.rsi(close, 30)
cci_1hr = ta.cci(close, 60)

// Define strategy conditions based on the provided screenshot
long_condition = (rsi_5min < input_rsi_5min_value) and (rsi_30min < input_rsi_30min_value) and (cci_1hr < input_cci_1hr_value)

// Plot signals
plotshape(series=long_condition, title="Long Entry Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Initialize a variable to store the entry price
var float entry_price = na

// Initialize a variable to store the profit target
var float profit_target = na

// Hedge condition based on price change percentage
var float hedge_price = na

// Initialize a variable to count the total number of orders
var int total_orders = 0

// Calculate the initial order size based on account equity and grid size
var float initial_order_size = 1 / input_grid_size / 100

// Entry orders with fixed size
if (long_condition and total_orders < 9000)
    // Place first order with an offset
    if total_orders == 0
        strategy.order("First Long", strategy.long, qty=initial_order_size, limit=close * (1 - input_first_order_offset / 100))
    total_orders := total_orders + 1
    
    // Place remaining grid orders
    for i = 1 to input_grid_size - 1
        if (total_orders >= 9000)
            break // Stop if max orders reached
        strategy.entry("Long_" + str.tostring(i), strategy.long, qty=initial_order_size)
        total_orders := total_orders + 1

// Calculate the profit target in currency
if (long_condition)
    entry_price := close // Store the entry price when the condition is true

if (not na(entry_price))
    profit_target := entry_price * input_profit_target_percent / 100 // Calculate the profit target

// Setting up the profit target
if (not na(profit_target))
    strategy.exit("Take Profit", "Long", limit=entry_price + profit_target)

// Hedge by closing all positions if the price increases by the hedging percentage
if (strategy.position_size > 0)
    hedge_price := close * (1 + input_hedging_percent / 100)

if (not na(hedge_price) and close >= hedge_price)
    strategy.close_all(comment="Hedging")


// Reversal condition based on the price change percentage
var float reversal_price = na

if (strategy.position_size > 0 and total_orders > 1) // Check if at least one grid order has been placed
    reversal_price := entry_price * (1 - input_reversal_percent / 100)

// Cancel trades and wait for a new entry point if the price reverses by the specified percentage
if (not na(reversal_price) and close <= reversal_price)
    strategy.cancel_all()
    total_orders := 0 // Reset the total orders count after cancellation

Thêm nữa