PineScript

Fibonacci Of Chart

Paylaştı

on

Merhabalar, geçenlerde tradingview’de bir araç yayınlamıştım. Fakat özgün olmadığı gerekçesi ile kaldırıldı. Sağlık olsun. Bu yazımda o aracın kodlarını ve ne işe yaradığını paylaşacağım.

Fibonacci kodlamak zaten çok basit bir iş. Aslında tüm kodlamalar çok basit, en baştan kalem kağıdı elinize alıp algoritmayı maddeler halinde kurguladıktan sonra kod yazma işi çok kısa sürüyor.

Bu aracın diğer otomatik fibonacci çizenlerden farkı nedir ?

Bu da otomatik fibonacci çiziyor fakat geriye dönük bar sayısını kendiniz girmiyorsunuz. Açık olan grafiğin en solundaki noktadan en sağındaki nokta arasındaki en yüksek ve en düşük bölgeyi tespit ediyor. Bu sayede geçmiş dönemdeki fibonacci seviyelerini ve aralıklarını grafiği büyültüp küçülterek görebilirsiniz.

Aşağıda başka bir örnekte de hangi skala içerisindeki fibonacci değerlerinin ölçüldüğünü gösterdim.

Twitter’dan ve birkaç yerden birçok yorum geldi sürekli değişiyor diye. Evet sürekli değişecek, bu araç bir sisteme entegre etmek için uygun olmayabilir fakat teknik analiz kullananların geçmişe dönük veya açık grafikteki analizlerini yapmalarında faydası olacaktır.

Birkaç tane ayarı mevcut. Çizgileri en soldan en sağa çektirebilirsiniz. Ya da en sağa yakın dip veya tepeden itibaren çizdirebilirsiniz. Kodlarını aşağıda paylaşıyorum. Umarım eğitim anlamında faydası olur.

Reklamlar
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © only_fibonacci

//@version=5
indicator("Fibonacci of the Chart",overlay = true)


farLeft = chart.left_visible_bar_time
farRight = chart.right_visible_bar_time
farLeftIndex = ta.valuewhen(time==farLeft,bar_index,0)
farRightIndex = ta.valuewhen(time==farRight,bar_index,0)
farLeftDistance = farRightIndex - farLeftIndex
fibonacciToolTip = "Max : 1618\nPlease do not enter the fibonacci 50 level"
fib1 = input.int(defval = 618, title = "Fib Level", group = "Fibonacci", maxval = 1618, tooltip = fibonacciToolTip, minval = 1)
fib2 = input.int(defval = 382, title = "Fib Level", group = "Fibonacci", maxval = 1618, tooltip = fibonacciToolTip, minval = 1)
fib3 = input.int(defval = 786, title = "Fib Level", group = "Fibonacci", maxval = 1618, tooltip = fibonacciToolTip, minval = 1)
fibShowData = input.bool(defval = true,title = "Fibonacci Show Data", group = "Fibonacci" , inline = "FG")
longitudinal = input.bool(defval = false, title = "Draw From Left to Far Right?", group = "Fibonacci", inline = "FG")
textColor = input.color(defval = color.black, title = "Text Color", group = "Fibonacci")
lineColor = input.color(defval = color.black, title = "Line Color", group = "Fibonacci")
rightTextSpace = input.int(defval = 20, title = "Right Text Space", minval = 1, group = "Fibonacci")
if time == farRight
    highest = high
    lowest = low
    for i = 0 to farLeftDistance by 1
        highest := high[i] > highest ? high[i] : highest
        lowest := low[i] < lowest ? low[i] : lowest
    highestbar = 0
    lowestbar = 0
    for i = 0 to farLeftDistance by 1
        highestbar := highestbar +1
        if high[i] == highest
            break
    for i = 0 to farLeftDistance by 1
        lowestbar := lowestbar +1
        if low[i] == lowest
            break     

    fibLevel1 = lowestbar > highestbar ? highest- ((highest-lowest)*fib1/1000) : lowest + ((highest-lowest)*fib1/1000)
    fibLevel2 = lowestbar > highestbar ? highest- ((highest-lowest)*fib2/1000) : lowest + ((highest-lowest)*fib2/1000)
    fibLevel3 = lowestbar > highestbar ? highest- ((highest-lowest)*fib3/1000) : lowest + ((highest-lowest)*fib3/1000)
    fibLevel4 = lowestbar > highestbar ? highest- ((highest-lowest)*500/1000) : lowest + ((highest-lowest)*500/1000)
    startIndex = longitudinal ? farLeftIndex : farRightIndex - math.min(highestbar,lowestbar)
    line.new(startIndex,highest,farRightIndex,highest,color=lineColor,style = line.style_dashed)
    line.new(startIndex,lowest,farRightIndex,lowest,color=lineColor,style = line.style_dashed)
    line.new(startIndex,fibLevel1,farRightIndex,fibLevel1,color=lineColor,style = line.style_dashed)
    line.new(startIndex,fibLevel2,farRightIndex,fibLevel2,color=lineColor,style = line.style_dashed)
    line.new(startIndex,fibLevel3,farRightIndex,fibLevel3,color=lineColor,style = line.style_dashed)
    line.new(startIndex,fibLevel4,farRightIndex,fibLevel4,color=lineColor,style = line.style_dashed)
    if fibShowData
        label.new(farRightIndex - rightTextSpace, highest,"TOP ( "+str.tostring(math.round_to_mintick(highest))+" )", color = color.gray, style = label.style_none, textcolor = textColor)
        label.new(farRightIndex - rightTextSpace, lowest,"BOTTOM ( "+str.tostring(math.round_to_mintick(lowest))+" )", color = color.gray, style = label.style_none, textcolor = textColor)
        label.new(farRightIndex - rightTextSpace, fibLevel1,str.tostring(fib1/1000)+" ( "+str.tostring(math.round_to_mintick(fibLevel1))+" )", color = color.gray, style = label.style_none, textcolor = textColor)
        label.new(farRightIndex - rightTextSpace, fibLevel2,str.tostring(fib2/1000)+" ( "+str.tostring(math.round_to_mintick(fibLevel2))+" )", color = color.gray, style = label.style_none, textcolor = textColor)
        label.new(farRightIndex - rightTextSpace, fibLevel4,"% 50 ( "+str.tostring(math.round_to_mintick(fibLevel4))+" )", color = color.gray, style = label.style_none, textcolor = textColor)
        label.new(farRightIndex - rightTextSpace, fibLevel3,str.tostring(fib3/1000)+" ( "+str.tostring(math.round_to_mintick(fibLevel3))+" )", color = color.gray, style = label.style_none, textcolor = textColor)




Siz de kendinize ait kodlar yazmak isterseniz PineScriptV5 eğitimime göz atabilirsiniz.

1 Yorum

  1. Ugur

    Mart 30, 2023 at 2:42 pm

    Kral eyvallah sağolasın. Şu telegrama sinyal işini öğrenmek çok zordur

  2. emrullah

    Nisan 2, 2023 at 12:04 am

    teşekkürler hocam emeğinize sağlık bu konuda gerçekten bayrağı taşıyanlardansınız

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Trendler

Exit mobile version