PineScript
Fibonacci Of Chart
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.
// 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.
Ugur
Mart 30, 2023 at 2:42 pm
Kral eyvallah sağolasın. Şu telegrama sinyal işini öğrenmek çok zordur
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