PHP Code:
//@version=5
indicator(title=".", overlay=true)
// --- Girdiler ---
length = input.int(5, title="Filtreleme Uzunluğu")
filterFractals = input.bool(true, title="Fraktalları Filtrele")
showSwingsHL = input.bool(true, title="Swing H/L Göster")
showChannel = input.bool(true, title="Fiyat Kanallarını Çiz")
// --- Fraktal Hesaplama (5'li Bar Yapısı) ---
// [2] nolu barın, sağındaki ve solundaki 2'şer bardan yüksek/alçak olma durumu
ftop = high[2] > high[3] and high[2] > high[4] and high[2] > high[1] and high[2] > high[0]
fbot = low[2] < low[3] and low[2] < low[4] and low[2] < low[1] and low[2] < low[0]
// Uzunluk (Length) bazlı filtreleme: Son X barın en yükseği mi?
topf = ftop ? (high[2] >= ta.highest(high, length) ? true : false) : false
botf = fbot ? (low[2] <= ta.lowest(low, length) ? true : false) : false
filteredtopf = filterFractals ? topf : ftop
filteredbotf = filterFractals ? botf : fbot
// --- Çizgilerin Belirginleştirilmesi (Price Channel Mantığı) ---
// Sadece fraktal anında değil, bir sonraki fraktala kadar değerin korunması sağlanır
float topPrice = na
float botPrice = na
topPrice := filteredtopf ? high[2] : topPrice[1]
botPrice := filteredbotf ? low[2] : botPrice[1]
// Kanalları Çiz (Çizgilerin daha net görünmesi için style_linebr kullanıldı)
plot(showChannel ? topPrice : na, color=color.new(color.red, 0), linewidth=2, offset=-1, title="TEPE", style=plot.style_linebr)
plot(showChannel ? botPrice : na, color=color.new(color.lime, 0), linewidth=2, offset=-1, title="DİP", style=plot.style_linebr)
// --- Swing High/Low (H ve L Etiketleri) ---
highswings = filteredtopf and (ta.valuewhen(filteredtopf, high[2], 2) < ta.valuewhen(filteredtopf, high[2], 1) and ta.valuewhen(filteredtopf, high[2], 1) > ta.valuewhen(filteredtopf, high[2], 0))
lowswings = filteredbotf and (ta.valuewhen(filteredbotf, low[2], 2) > ta.valuewhen(filteredbotf, low[2], 1) and ta.valuewhen(filteredbotf, low[2], 1) < ta.valuewhen(filteredbotf, low[2], 0))
///////////////////////////
int smooth = input.int(1, 'Smooth Length:')
FractalMA(float src, simple int length, bool fillna=false) =>
float ma = ta.ema(src, length)
bool osc = (ma[3] <= ma[1] and ma[2] <= ma[1] and ma[1] >= ma[0]) or (ma[3] >= ma[1] and ma[2] >= ma[1] and ma[1] <= ma[0])
float fma = osc ? src[1] : na
if fillna and na(fma)
fma := fma[1]
fma
// //////////////
float src = input.source(hl2, 'Source:')
int length1 = input.int( 1, 'Length 1:')
bool fillna = input.bool(true, 'Fill `na` values?')
float smoothed = ta.sma(src, smooth)
plot(FractalMA(smoothed, length1, fillna), 'TREND', color.black , offset=length1)
///////////////
//@version=5
// --- Girdiler ---
note = input.bool(false, title='Bu indikatör seçtiğiniz zaman diliminin iki katı kadar gecikmeli çalışır.')
high_src = input.source(high, title='Yüksek Kaynak')
low_src = input.source(low, title='Düşük Kaynak')
tf = input.timeframe('D', title='ZigZag Zaman Dilimi')
price_range = input.float(0.01, title='GANN Box için Fiyat Aralığı')
time_range = input.int(24, title='GANN Box için Bar Aralığı')
// --- ZigZag Fonksiyonu ---
f_zigzag(_high, _low) =>
var int _trend = 0
_is_up = _high > _high[1]
_is_down = _low < _low[1]
if _trend > 0 and _is_down
_trend := -1
else if _trend < 0 and _is_up
_trend := 1
else if _trend == 0
_trend := _is_up ? 1 : -1
_zigzag = ta.change(_trend) > 0 ? _low[1] : ta.change(_trend) < 0 ? _high[1] : na
_zigzag
// Security ile ZigZag verisi alma
zigzag_src = request.security(syminfo.tickerid, tf, (f_zigzag(high_src, low_src)))
// --- Gann Çizgi Fonksiyonları ---
f_bull_gann_line(_p_mult, _t_mult, _p_range, _t_range, _src) =>
_decay = (_p_range * _p_mult) / (_t_range * _t_mult)
var float _gann_line = na
_gann_line := _gann_line - _decay
if ta.change(_src) > 0
_gann_line := _src
_gann_line
f_bear_gann_line(_p_mult, _t_mult, _p_range, _t_range, _src) =>
_decay = (_p_range * _p_mult) / (_t_range * _t_mult)
var float _gann_line = na
_gann_line := _gann_line + _decay
if ta.change(_src) < 0
_gann_line := _src
_gann_line
// ///////
be11 = f_bear_gann_line(1, 1, price_range, time_range, zigzag_src)
be12 = f_bear_gann_line(1, 2, price_range, time_range, zigzag_src)
be13 = f_bear_gann_line(1, 3, price_range, time_range, zigzag_src)
be14 = f_bear_gann_line(1, 4, price_range, time_range, zigzag_src)
be18 = f_bear_gann_line(1, 5, price_range, time_range, zigzag_src)
plot(ta.change(zigzag_src) < 0 ? na : be11, title='STOP', color=color.new(color.maroon, 0), linewidth=1, style=plot.style_line)
kodu deneyecek olanlar... kendi sistemleriyle test etmeleri önerilir....
Yer İmleri