
Стратегия является высокотехнологичной торговой системой, которая сочетает в себе множество инструментов технического анализа и генерирует торговые сигналы, основанные на высоких временных рамках, основанных на уровне фибоначчи, и высоких и низких условиях ценового прорыва. Стратегия динамически рассчитывает ценовые данные более высоких временных рамок, сочетая уровни фибоначчи и индивидуальные условия ценового прорыва, чтобы сформировать целостную систему принятия решений.
Центральная логика стратегии основана на трех основных столпах: первое - анализ цены на более высоких временных рамках, создание более макроэкономического взгляда на рынок путем расчета цен на открытие и закрытие более высоких временных периодов, таких как дневная линия. Следует динамическое расчет уровня фибоначчи, на основе ценового диапазона высоких временных рамок, для установления ключевых уровней сопротивления поддержки.
Это хорошо продуманная торговая система, которая, объединив несколько классических инструментов технического анализа, создает как теоретическую, так и практическую торговую стратегию. Самая большая особенность этой стратегии заключается в том, что она может предоставлять более надежные торговые сигналы с помощью многомерного анализа, сохраняя при этом достаточную гибкость для адаптации к различным рыночным условиям.
/*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)