Tỷ lệ vàng Fibonacci và chiến lược RSI sức mạnh tương đối

Tác giả:ChaoZhang, Ngày: 2024-01-03 16:54:32
Tags:

img

Tổng quan

Chiến lược tỷ lệ vàng Fibonacci và chỉ số sức mạnh tương đối (RSI) là một chiến lược giao dịch trong ngày. Nó kết hợp nguyên tắc tỷ lệ vàng Fibonacci và chỉ số RSI để phát ra tín hiệu mua hoặc bán khi giá tiếp cận các điểm chính tỷ lệ vàng và RSI cho thấy tình trạng mua quá mức hoặc bán quá mức.

Chiến lược logic

  1. Tính toán đường trung bình giá dựa trên một khoảng thời gian nhất định của thanh.

  2. Tính toán các điểm chính tỷ lệ vàng bao gồm mức 0,618 và mức 1 dựa trên đường trung và độ lệch chuẩn.

  3. Khi giá tiếp cận các điểm chính tỷ lệ vàng, kiểm tra xem RSI có đi vào vùng mua quá mức hoặc bán quá mức không.

  4. Phát hành tín hiệu mua hoặc bán nếu cả quy tắc tỷ lệ vàng và điều kiện RSI được đáp ứng.

  5. Thiết lập dừng lỗ và lấy lợi nhuận để kiểm soát rủi ro.

Phân tích lợi thế

  1. Kết hợp nhiều chỉ số cải thiện chất lượng tín hiệu và giảm tín hiệu sai.

  2. Sử dụng tính năng hỗ trợ / kháng của quy tắc tỷ lệ vàng để đảm bảo nhập chất lượng.

  3. RSI đo tâm lý thị trường để tránh những sự đảo ngược cực đoan.

  4. Thích hợp cho giao dịch nội ngày tần số cao để tích lũy lợi nhuận từ nhiều giao dịch nhỏ.

Phân tích rủi ro

  1. Tỷ lệ vàng không thể đảm bảo sự đảo ngược giá 100%.

  2. RSI có thể đưa ra các tín hiệu gây hiểu lầm, cần kết hợp hành động giá.

  3. Việc dừng lỗ quá chặt chẽ có thể bị dừng lại bởi biến động giá.

  4. Giao dịch tần số cao đòi hỏi chi phí giao dịch cao hơn và kiểm soát rủi ro chặt chẽ hơn.

Giải pháp:

  1. Tiếp tục nghiêm ngặt quy tắc dừng lỗ để hạn chế lỗ giao dịch duy nhất.

  2. Thả lỏng các thông số RSI đúng cách để tránh các tín hiệu gây hiểu lầm.

  3. Tối ưu hóa điểm dừng lỗ để giảm xác suất dừng lại trong khi đảm bảo dừng lỗ hiệu quả.

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

  1. Kết quả thử nghiệm từ các thông số thời gian chu kỳ khác nhau.

  2. Hãy thử kết hợp các chỉ số khác như MACD, Bollinger Bands vv để cải thiện chất lượng tín hiệu.

  3. Nghiên cứu các chiến lược dừng lỗ khác nhau để tìm các cấu hình tối ưu.

  4. Đánh giá thời gian nắm giữ tối ưu để cân bằng lợi nhuận và chi phí.

Kết luận

Tỷ lệ vàng Fibonacci và chiến lược RSI lọc các giao dịch tiếng ồn thông qua xác nhận kép. So với các chiến lược chỉ số duy nhất, nó tạo ra các tín hiệu giao dịch chất lượng cao hơn. Với tối ưu hóa tham số và tuân theo quy tắc nghiêm ngặt, chiến lược này có thể trở thành một công cụ giao dịch trong ngày hiệu quả.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 00:00:00
period: 1m
basePeriod: 1m
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/
// © MohamedYAbdelaziz

// Intraday Trading
// Best used for Short Timeframes [1-30 Minutes]
// If you have any modifications please tell me to update it

//@version=4
strategy(title="Fibonacci + RSI - Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD)

// Inputs
timeFilter = year >= 2000
    // Stop Loss %
loss_percent = input(title="Stop Loss (%)", minval=0.0, step=0.1, defval=2) * 0.001
    // RSI Inputs
len = input(title="[RSI] Length", minval=0, step=1, defval=14)
overSold = input(title="[RSI] Over Sold %", defval=30)
overBought = input(title="[RSI] Over Bought %", defval=70)
    // Fibonacci Levels
length = input(title="[Fibonacci] Length", defval=200, minval=1)
src = input(hlc3, title="[Fibonacci] Source")
mult = input(title="[Fibonacci] Multiplier", defval=3.0, minval=0.001, maxval=50)
level = input(title="[Fibonacci] Level", defval=764)


// Calculate Fibonacci
basis = vwma(src, length)
dev = mult * stdev(src, length)
fu764= basis + (0.001*level*dev)
fu1= basis + (1*dev)
fd764= basis - (0.001*level*dev)
fd1= basis - (1*dev)

// Calculate RSI
vrsi = rsi(close, len)

// Calculate the Targets
targetUp = fd764
targetDown = fu764
    // Actual Targets
bought = strategy.position_size[0] > strategy.position_size[1]
exit_long = valuewhen(bought, targetUp, 0)
sold = strategy.position_size[0] < strategy.position_size[1]
exit_short = valuewhen(sold, targetDown, 0)

// Calculate Stop Losses
stop_long = strategy.position_avg_price * (1 - loss_percent)
stop_short = strategy.position_avg_price * (1 + loss_percent)

// Conditions to Open Trades
openLong = low < fd1 and crossover(vrsi[1], overSold)
openShort = high > fu1 and crossunder(vrsi[1], overBought)

// Conditions to Close Trades
closeLong = high > exit_long
closeShort = low < exit_short 


// Plots
plot(basis, color=color.blue, linewidth=2, title="[Fibonacci Level] Basis")
plot(fu764, color=color.white, linewidth=1, title="[Fibonacci Level] Short Target")
plot(fu1, color=color.red, linewidth=2, title="1", title="[Fibonacci Level] Top")
plot(fd764, color=color.white, linewidth=1, title="[Fibonacci Level] Long Target")
plot(fd1, color=color.green, linewidth=2, title="1", title="[Fibonacci Level] Bottom")


// Strategy Orders
if timeFilter
    // Entry Orders
    strategy.entry(id="Long", long=true, when=openLong and high < targetUp, limit=close)
    strategy.entry(id="Short", long=false, when=openShort and low > targetDown, limit=close)

    // Exit Orders
    strategy.exit(id="Long", when=closeLong and strategy.position_size > 0, limit=exit_long, stop=stop_long)
    strategy.exit(id="Short", when=closeShort and strategy.position_size < 0, limit=exit_short, stop=stop_short)

Thêm nữa