Chiến lược đảo ngược Fibonacci Retracement

Tác giả:ChaoZhang, Ngày: 2023-12-07 15:15:26
Tags:

img

Tổng quan

Chiến lược đảo ngược Fibonacci Retracement là một chiến lược giao dịch định lượng dựa trên mức độ đảo ngược Fibonacci và chỉ số chỉ số sức mạnh tương đối (RSI). Chiến lược này kết hợp lý thuyết kênh Fibonacci và chỉ số mua quá mức / bán quá mức để thực hiện các giao dịch đảo ngược chống lại xu hướng chính để kiếm lợi nhuận trong các chu kỳ ngắn hạn.

Chiến lược logic

Chiến lược đầu tiên tính toán hai vùng giá quan trọng dựa trên mức Fibonacci 0,618 - điểm cao gấp 0,618 lần và điểm thấp gấp 0,618 lần.

Ngoài ra, chiến lược cũng sử dụng chỉ số RSI để xác định điều kiện mua quá mức / bán quá mức. RSI dưới 30 cho thấy tình trạng bán quá mức trong khi RSI trên 70 cho thấy tình trạng mua quá mức. Chúng cũng ngụ ý khả năng đảo ngược giá.

Kết hợp hai điều kiện, tín hiệu mua được kích hoạt khi: đóng cửa vượt quá điểm thấp 0,618 lần và RSI dưới 30; tín hiệu bán được kích hoạt khi: đóng cửa vượt quá điểm cao 0,618 lần và RSI vượt quá 70.

Khi tín hiệu mua, chiến lược sẽ dài ở giá thị trường. Khi tín hiệu bán, nó sẽ ngắn ở giá thị trường. Ngoài ra, mức lợi nhuận và dừng lỗ được thiết lập để vị trí sẽ được đóng khi giá di chuyển thuận lợi bằng một tỷ lệ phần trăm nhất định (lấy lợi nhuận) hoặc di chuyển bất lợi bằng một tỷ lệ phần trăm nhất định (đừng lỗ).

Ưu điểm

Chiến lược kết hợp cả hai kịch bản xu hướng và đảo ngược, tính đến xu hướng chính trong khi hưởng lợi từ việc khôi phục ngắn hạn.

  1. Mức Fibonacci có các thuộc tính hỗ trợ / kháng cự vốn có, phục vụ như một chỉ số vùng giá hiệu quả.
  2. Tình trạng mua quá mức / bán quá mức RSI cho thấy các điểm chuyển hướng tiềm năng.
  3. Các tín hiệu dài/ngắn là rõ ràng, bắt được cơ hội đảo ngược.
  4. Đánh rủi ro kiểm soát lợi nhuận / dừng lỗ.

Rủi ro

Có một số rủi ro cần được nhận thức:

  1. Mất mát có thể xảy ra nếu không có sự đảo ngược xu hướng lớn xảy ra mặc dù có sự hồi phục ngắn hạn.
  2. Khu vực dừng lỗ rộng hơn có thể giúp.
  3. Sự đảo ngược có thể duy trì trong một thời gian dài, đòi hỏi sự hỗ trợ vốn đầy đủ.

Tối ưu hóa

Chiến lược có thể được tối ưu hóa thêm bằng cách:

  1. Thu thập nhiều dữ liệu lịch sử hơn để kiểm tra và điều chỉnh các thông số chính như phạm vi vùng Fibonacci và các đường mua quá mức / bán quá mức RSI để phù hợp hơn với thị trường thực.

  2. Kết hợp nhiều chỉ số hơn để tạo ra các tín hiệu mạnh mẽ hơn, như các mô hình nến, thay đổi khối lượng vv

  3. Điều chỉnh các tham số hoặc quy tắc theo các đặc điểm của các công cụ giao dịch khác nhau.

  4. Thêm cơ chế dừng lỗ năng động để theo dõi giá theo thời gian thực.

Kết luận

Chiến lược đảo ngược Fibonacci Retracement cân bằng các kịch bản xu hướng và đảo ngược để kiếm lợi nhuận trong ngắn hạn trong khi kiểm soát rủi ro.


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

//@version=5
strategy("FBS Trade", overlay=true)

// Fibonacci seviyeleri
fibonacciLevels = input(0.618, title="Fibonacci Düzeltme Seviyesi")

// RSI ayarları
rsiLength = input(14, title="RSI Periyodu")
overboughtLevel = input(70, title="RSI Satış Sinyali Seviyesi")
oversoldLevel = input(30, title="RSI Alış Sinyali Seviyesi")

// Take Profit ve Stop Loss yüzdesi
takeProfitPercent = input(1, title="Take Profit Yüzdesi") / 100
stopLossPercent = input(1, title="Stop Loss Yüzdesi") / 100

// Fibonacci seviyelerini hesapla
highFibo = high * (1 + fibonacciLevels)
lowFibo = low * (1 - fibonacciLevels)

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

// Alış ve satış koşulları
buyCondition = close > lowFibo and rsiValue < 30
sellCondition = close < highFibo and rsiValue > overboughtLevel

// Take Profit ve Stop Loss seviyeleri
takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent)
stopLossLong = strategy.position_avg_price * (1 - stopLossPercent)

takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent)
stopLossShort = strategy.position_avg_price * (1 + stopLossPercent)

// Alış ve satış işlemleri
if (buyCondition)
    strategy.entry("Buy", strategy.long)
if (sellCondition)
    strategy.entry("Sell", strategy.short)

// Take Profit ve Stop Loss seviyeleri
if (strategy.position_size > 0)
    strategy.exit("Take Profit/Close Buy", from_entry="Buy", limit=takeProfitLong, stop=stopLossLong)
if (strategy.position_size < 0)
    strategy.exit("Take Profit/Close Sell", from_entry="Sell", limit=takeProfitShort, stop=stopLossShort)

// Sadece mumları ve buy/sell işlemlerini göster
plot(close, color=color.black, title="Close")

// Destek ve direnç bölgeleri
supportLevel = input(27, title="Fibonacci Destek Seviyesi")
resistanceLevel = input(200, title="Direnç Seviyesi")

hline(supportLevel, "Fibonacci Destek Seviyesi", color=color.green)
hline(resistanceLevel, "Direnç Seviyesi", color=color.red)

// Trend çizgileri
var line trendLine = na
if (ta.crossover(close, highFibo))
    trendLine := line.new(bar_index[1], highFibo[1], bar_index, highFibo, color=color.green, width=2)
if (ta.crossunder(close, lowFibo))
    trendLine := line.new(bar_index[1], lowFibo[1], bar_index, lowFibo, color=color.red, width=2)

// RSI ve Fibo'yu grafiğe çizme
hline(overboughtLevel, "RSI Satış Sinyali", color=color.red, linestyle=hline.style_dashed)
hline(oversoldLevel, "RSI Alış Sinyali", color=color.green, linestyle=hline.style_dashed)
plot(rsiValue, color=color.purple, title="RSI")

// 15 dakikalıkta 3 mumda bir alarm
is15MinBar = ta.change(time('15'), 1)
if (is15MinBar % 3 == 0)
    alert("15 dakikalıkta 3 mum geçti.")


Thêm nữa