
Chiến lược này là một hệ thống giao dịch cao cấp kết hợp nhiều công cụ phân tích kỹ thuật để tạo ra tín hiệu giao dịch dựa trên các mức độ Fibonacci rút lui của khung thời gian cao và các điều kiện phá vỡ giá cao và thấp hơn. Chiến lược này tính toán động dữ liệu giá của khung thời gian cao hơn, kết hợp các mức độ Fibonacci rút lui và điều kiện phá vỡ giá tùy chỉnh để tạo thành một hệ thống quyết định giao dịch hoàn chỉnh. Phương pháp này xem xét cả xu hướng tổng thể của thị trường và chú ý đến các đợt phá vỡ giá ngắn hạn, có thể nắm bắt các cơ hội giao dịch tiềm năng tại các điểm biến chuyển của thị trường.
Logic cốt lõi của chiến lược được xây dựng dựa trên ba trụ cột chính: phân tích giá trên các khung thời gian cao hơn, xây dựng quan điểm thị trường vĩ mô hơn bằng cách tính toán giá mở và giá khép lại của các chu kỳ thời gian cao hơn như đường ngày. Tiếp theo là tính toán động của mức Fibonacci retraction, thiết lập các ngưỡng kháng cự quan trọng dựa trên các vùng giá trên khung thời gian cao.
Đây là một hệ thống giao dịch được thiết kế tốt, tạo ra một chiến lược giao dịch thực tế bằng cách kết hợp nhiều công cụ phân tích kỹ thuật cổ điển. Đặc điểm lớn nhất của chiến lược này là có thể cung cấp tín hiệu giao dịch đáng tin cậy hơn thông qua phân tích đa chiều, trong khi vẫn có đủ tính linh hoạt để thích ứng với các môi trường thị trường khác nhau. Mặc dù có một số rủi ro vốn có, nhưng bằng hướng tối ưu hóa được đề xuất, bạn có thể nâng cao hơn nữa sự ổn định và độ tin cậy của chiến lược.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Fibonacci Levels Strategy with High/Low Criteria", overlay = true)
// Kullanıcıdan yüksek zaman dilimini ve mum bilgilerini al
timeframe = input.timeframe(defval = "D", title = "Higher Time Frame")
currentlast = input.string(defval = "Last", title = "Current or Last HTF Candle", options = ["Current", "Last"])
// Kullanıcıdan en düşük ve en yüksek fiyat bakış sürelerini al
lowestLookback = input(20, "Lowest Price Lookback", tooltip="The strategy will BUY when the price crosses over the lowest it has been in the last X amount of bars")
highestLookback = input(10, "Highest Price Lookback", tooltip="If Take-Profit is not checked, the strategy will SELL when the price crosses under the highest it has been in the last X amount of bars")
// Fibonacci seviyeleri ayarları
level0 = input.float(defval = 0.000, title = "Level 0")
level1 = input.float(defval = 0.236, title = "Level 1")
level2 = input.float(defval = 0.382, title = "Level 2")
level3 = input.float(defval = 0.500, title = "Level 3")
level4 = input.float(defval = 0.618, title = "Level 4")
level5 = input.float(defval = 0.786, title = "Level 5")
level100 = input.float(defval = 1.000, title = "Level 100")
// HTF mumlarını hesapla
newbar = ta.change(time(timeframe)) != 0
var float htfhigh = high
var float htflow = low
var float htfopen = open
float htfclose = close
var counter = 0
if newbar
htfhigh := high
htflow := low
htfopen := open
counter := 0
else
htfhigh := math.max(htfhigh, high)
htflow := math.min(htflow, low)
counter += 1
var float open_ = na
var float high_ = na
var float low_ = na
var float close_ = na
if currentlast == "Last" and newbar
open_ := htfopen[1]
high_ := htfhigh[1]
low_ := htflow[1]
close_ := htfclose[1]
else if currentlast == "Current"
open_ := htfopen
high_ := htfhigh
low_ := htflow
close_ := htfclose
// Fibonacci seviyelerini hesapla
var float[] fibLevels = array.new_float(6)
array.set(fibLevels, 0, open_ + (high_ - low_) * level0)
array.set(fibLevels, 1, open_ + (high_ - low_) * level1)
array.set(fibLevels, 2, open_ + (high_ - low_) * level2)
array.set(fibLevels, 3, open_ + (high_ - low_) * level3)
array.set(fibLevels, 4, open_ + (high_ - low_) * level4)
array.set(fibLevels, 5, open_ + (high_ - low_) * level5)
// Fibonacci seviyelerini grafik üzerine çiz
plot(array.get(fibLevels, 0), color=color.new(color.blue, 75), title="Fibonacci Level 0")
plot(array.get(fibLevels, 1), color=color.new(color.green, 75), title="Fibonacci Level 1")
plot(array.get(fibLevels, 2), color=color.new(color.red, 75), title="Fibonacci Level 2")
plot(array.get(fibLevels, 3), color=color.new(color.orange, 75), title="Fibonacci Level 3")
plot(array.get(fibLevels, 4), color=color.new(color.teal, 75), title="Fibonacci Level 4")
plot(array.get(fibLevels, 5), color=color.new(color.navy, 75), title="Fibonacci Level 5")
// En düşük ve en yüksek fiyat kriterlerini hesapla
lowcriteria = ta.lowest(low, lowestLookback)[1]
highcriteria = ta.highest(high, highestLookback)[1]
plot(highcriteria, color=color.green, title="Highest Price Criteria")
plot(lowcriteria, color=color.red, title="Lowest Price Criteria")
// Fibonacci seviyeleri ile ticaret sinyalleri oluştur
longCondition = close > lowcriteria and close > array.get(fibLevels, 3) // En düşük kriterin ve Fibonacci seviyesinin üstüne çıkarsa alım
shortCondition = close < highcriteria and close < array.get(fibLevels, 3) // En yüksek kriterin ve Fibonacci seviyesinin altına düşerse satış
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)