Untitled
unknown
plain_text
14 days ago
4.3 kB
4
Indexable
Never
//@version=5 indicator("Momentum Oscillator, Real Time Divergences & Signals [TrendAlpha]", "Momentum Oscillator, Divergences & Signals [TrendAlpha]", overlay=true) length = input(7, "Length") src = input(close, "Source") show_lines = input(true, "Show Lines") colcor = input(false, "Hide Price/Oscillator") // Sayıların gösterilip gösterilmeyeceğini belirlemek için input'lar show_1 = input(true, "Show 1") show_2 = input(true, "Show 2") show_3 = input(true, "Show 3") show_4 = input(true, "Show 4") show_5 = input(true, "Show 5") show_6 = input(true, "Show 6") show_7 = input(true, "Show 7") show_8 = input(true, "Show 8") show_9 = input(true, "Show 9") up = ta.highest(src, length) dn = ta.lowest(src, length) osc = ta.mom(ta.sma(ta.sma(src, length), length), length) phosc = ta.crossunder(ta.change(osc), 0) plosc = ta.crossover(ta.change(osc), 0) bear = osc > 0 and phosc and ta.valuewhen(phosc, osc, 0) < ta.valuewhen(phosc, osc, 1) and ta.valuewhen(phosc, up, 0) > ta.valuewhen(phosc, up, 1) bull = osc < 0 and plosc and ta.valuewhen(plosc, osc, 0) > ta.valuewhen(plosc, osc, 1) and ta.valuewhen(plosc, dn, 0) < ta.valuewhen(plosc, dn, 1) simple_css = osc > osc[1] and osc > 0 ? color.new(color.green, 0) : osc < osc[1] and osc > 0 ? color.new(color.lime, 0) : osc < osc[1] and osc < 0 ? color.new(color.red, 0) : osc > osc[1] and osc < 0 ? color.new(color.maroon, 0) : na plot(osc, "Osc", colcor ? color.new(color.black, 0) : simple_css, 3, plot.style_histogram) // Yeşil sayım mekanizması var int green_count = na var float last_high_green = na var int prev_green_count = na // Önceki sayımı saklamak için if (osc > osc[1] and osc > 0) // Osilatör yeşile döndüğünde if na(green_count) or green_count == 0 // Sayım 1'den başlat green_count := 1 last_high_green := high else if high > last_high_green and green_count < 9 // Eğer mumun high'ı son kaydedilen high'ı geçerse green_count := green_count + 1 last_high_green := high else if osc < osc[1] and osc < 0 // Osilatör kırmızıya döndüğünde green_count := na // Yeşil sayımı durdur // Yeşil sayımı mumların üstüne sadece sayım arttığında ve ilgili sayı gösterilmek isteniyorsa yerleştir if not na(green_count) and (na(prev_green_count) or green_count > prev_green_count) if (green_count == 1 and show_1) or (green_count == 2 and show_2) or (green_count == 3 and show_3) or (green_count == 4 and show_4) or (green_count == 5 and show_5) or (green_count == 6 and show_6) or (green_count == 7 and show_7) or (green_count == 8 and show_8) or (green_count == 9 and show_9) label.new(bar_index, high, str.tostring(green_count), style=label.style_label_down, color=color.green, textcolor=color.white, size=size.small) prev_green_count := green_count // Önceki sayımı güncelle // Kırmızı sayım mekanizması var int red_count = na var float last_low_red = na var int prev_red_count = na // Önceki kırmızı sayımı saklamak için if (osc < osc[1] and osc < 0) // Osilatör kırmızıya döndüğünde if na(red_count) or red_count == 0 // Sayım 1'den başlat red_count := 1 last_low_red := low else if low < last_low_red and red_count < 9 // Eğer mumun low'u son kaydedilen low'u geçerse red_count := red_count + 1 last_low_red := low else if osc > osc[1] and osc > 0 // Osilatör yeşile döndüğünde red_count := na // Kırmızı sayımı durdur // Kırmızı sayımı mumların altına sadece sayım arttığında ve ilgili sayı gösterilmek isteniyorsa yerleştir if not na(red_count) and (na(prev_red_count) or red_count > prev_red_count) if (red_count == 1 and show_1) or (red_count == 2 and show_2) or (red_count == 3 and show_3) or (red_count == 4 and show_4) or (red_count == 5 and show_5) or (red_count == 6 and show_6) or (red_count == 7 and show_7) or (red_count == 8 and show_8) or (red_count == 9 and show_9) label.new(bar_index, low, str.tostring(red_count), style=label.style_label_up, color=color.red, textcolor=color.white, size=size.small) prev_red_count := red_count // Önceki kırmızı sayımı güncelle
Leave a Comment