Chiến lược Trung bình vị trí động RSI

Tác giả:ChaoZhang, Ngày: 2024-02-06 09:44:05
Tags:

img

Tổng quan

Chiến lược này kết hợp chỉ số sức mạnh tương đối (RSI) và các nguyên tắc trung bình vị trí martingale. Nó bắt đầu một vị trí dài khi RSI đi dưới đường bán quá mức, và tăng gấp đôi vị trí nếu giá tiếp tục giảm. Lợi nhuận được đạt được với các mục tiêu nhỏ. Chiến lược này phù hợp với các đồng xu có vốn hóa thị trường cao trong giao dịch tại chỗ để có lợi nhuận ổn định.

Chiến lược logic

  1. Sử dụng chỉ số RSI để xác định các điều kiện bán quá mức trên thị trường, với thời gian RSI được thiết lập là 14 và ngưỡng bán quá mức được thiết lập là 30.
  2. Bắt đầu vị trí mua đầu tiên với 5% vốn chủ sở hữu tài khoản khi RSI < 30.
  3. Nếu giá giảm 0,5% so với giá nhập cảnh ban đầu, tăng gấp đôi kích thước vị trí để giảm trung bình.
  4. Lấy lợi nhuận 0,5% mỗi lần.
  5. Lặp lại chu kỳ.

Phân tích lợi thế

  • Xác định các điều kiện bán quá mức trên thị trường với RSI cho các điểm đầu vào tốt.
  • Trung bình vị trí Martingale làm giảm giá nhập trung bình.
  • Lợi nhuận nhỏ cho phép lợi nhuận nhất quán.
  • Thích hợp cho các đồng xu có vốn hóa thị trường cao giao dịch tại chỗ với rủi ro được kiểm soát.

Phân tích rủi ro

  • Sự suy thoái thị trường kéo dài có thể dẫn đến tổn thất lớn.
  • Không dừng lỗ có nghĩa là bất hạn.
  • Quá nhiều mức trung bình sẽ làm tăng tổn thất.
  • Vẫn có những rủi ro về hướng dài.

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

  1. Bao gồm dừng lỗ để giới hạn lỗ tối đa.
  2. Tối ưu hóa các thông số RSI để tìm ra các tín hiệu mua/bán quá tốt nhất.
  3. Đặt phạm vi lợi nhuận hợp lý dựa trên biến động tiền xu cụ thể.
  4. Xác định tốc độ trung bình dựa trên tổng tài sản hoặc các quy tắc định kích thước vị trí.

Tóm lại

Chiến lược này kết hợp chỉ số RSI và trung bình vị trí martingale để tận dụng các tình huống bán quá mức với mức trung bình thích hợp xuống, và lợi nhuận nhỏ để có lợi nhuận ổn định.


/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Stavolt

//@version=5
strategy("RSI Martingale Strategy", overlay=true, default_qty_type=strategy.cash, currency=currency.USD)

// Inputs
rsiLength = input(14, title="RSI Length")
oversoldThreshold = input(30, title="Oversold Threshold") // Keeping RSI threshold
profitTargetPercent = input(0.5, title="Profit Target (%)") / 100
initialInvestmentPercent = input(5, title="Initial Investment % of Equity")

// Calculating RSI
rsiValue = ta.rsi(close, rsiLength)

// State variables for tracking the initial entry
var float initialEntryPrice = na
var int multiplier = 1

// Entry condition based on RSI
if (rsiValue < oversoldThreshold and na(initialEntryPrice))
    initialEntryPrice := close
    strategy.entry("Initial Buy", strategy.long, qty=(strategy.equity * initialInvestmentPercent / 100) / close)
    multiplier := 1

// Adjusting for errors and simplifying the Martingale logic
// Note: This section simplifies the aggressive position size adjustments without loops
if (not na(initialEntryPrice))
    if (close < initialEntryPrice * 0.995) // 0.5% drop from initial entry
        strategy.entry("Martingale Buy 1", strategy.long, qty=((strategy.equity * initialInvestmentPercent / 100) / close) * 2)
        multiplier := 2 // Adjusting multiplier for the next potential entry

    if (close < initialEntryPrice * 0.990) // Further drop
        strategy.entry("Martingale Buy 2", strategy.long, qty=((strategy.equity * initialInvestmentPercent / 100) / close) * 4)
        multiplier := 4

    // Additional conditional entries could follow the same pattern

// Checking for profit target to close positions
if (strategy.position_size > 0 and (close - strategy.position_avg_price) / strategy.position_avg_price >= profitTargetPercent)
    strategy.close_all(comment="Take Profit")
    initialEntryPrice := na // Reset for next cycle


Thêm nữa