توجه! : کاربران عزیز اگر برای خرید یا سفارش محصولی نیاز به مشاوره داشتید با شماره 09364549266 تماس بگیرید. کانال آموزشی تلگرام

  • 5

اندیکاتور رسم اتوماتیک فیبوناچی اکستنشن Auto Fib Extension در تریدینگ ویو

اندیکاتور رسم اتوماتیک فیبوناچی اکستنشن در تریدینگ ویو برای ارزدیجیتال ،بورس و فارکس

 

یکی از ابزارهای پر کاربرد در تحلیل تکنیکال فیبوناچی اکستنشن می باشد و در این پست به معرفی اندیکاتور   Auto Fib Extension  در تریدینگ ویو می پردازیم که به کمک این ابزار می توانید به صورت اتوماتیک فیبوناچی اکستنشن را رسم کنید. این سری پست ها بیشتر برای فعالین ارز دیجیتال تهیه می گردد البته برای معامله گران بورس و فارکس نیز بسیار کاربردی می باشد.

درخواست مشاوره رایگان برای طراحی اکسپرت، ربات و اندیکاتور
کاربران عزیزی که استراتژی خاصی دارند و قصد دارند آن را به اکسپرت ، اندیکاتور و یا ربات تبدیل کنند می توانند با تکمیل کردن فرم زیر، درخواست مشاوره رایگان دهند، و سپس کارشناسان ما در اسرع وقت با شما تماس خواهند گرفت.
لطفاً برای تکمیل این فرم، جاوا اسکریپت را در مرورگر خود فعال کنید.

 

تعریف اندیکاتور Auto Fib Extension

Auto Fib Extension ابزاری است که سطوح قیمتی هدف را پس از اصلاح محاسبه می کند. فیبو اکستنشن  همچنین مناطق احتمالی برگشت قیمت را نشان می دهد و سطوح احتمالی قیمت را پس از اتمام اصلاحات نشان می دهد. این سطوح بر اساس ضرایب کلیدی فیبوناچی و حرکت قیمت نماد در نمودار محاسبه می گردد.

برای استفاده از اندیکاتور جدید Auto Fib Extension ، از دکمه Indicators در نمودار خود استفاده کنید و اندیکاتور Auto Fib Extension را در برگه Built-ins پیدا کنید.

شیوه استفاده فیبوناچی اکستنشن Fib Extension

 

فروش اکانت پرمیوم و پرو اورجینال

افزونه های فیبوناچی فرمول خاصی ندارند. سطوح افزونه بر اساس دنباله فیبوناچی محاسبه می شود و متداول ترین سطوح 61.8، ، 100، ، 161.8، ، 200، و 261.8 است. ابزار ترسیم مبتنی بر روند می باشد  روند بر اساس سه نقطه تعیین شده توسط معامله گر مشخص می گردد : دو نقطه اول خط روند را مشخص می کند ، نقطه آخر سطح بازده را مشخص می کند. پس از تعیین نقاط ، خطوط سطح افقی ترسیم می گردد.

دانلود رایگان انواع اندیکاتور و آموزش رایگان در کانال هوش فعال لینک عضویت در کانال پیام رسان ایتا لینک عضویت در کانال تلگرام  

برای دانلود آهنگ بیکلام و گوش دادن به موسیقی بیکلام عضو کانال چیل اوت موزیک شوید لینک عضویت در کانال موسیقی بیکلام

 

فیبوناچی اکستنشن به دو روش به نمودار اضافه می گردد که در ادامه مشاهده می فرمایید

1-شیوه اضافه کردن اندیکاتور  Auto Fib Extension به تریدینگ ویو به روش انتخاب اندیکاتور 

 

 

اسکریپت اندیکاتور   Auto Fib Extension 

//@version=4
study("Auto Fib Extension", overlay=true)

depthTooltip = "The minimum number of bars that will be taken into account when calculating the indicator."
depth = input(title="Depth", type=input.integer, defval=10, minval=1, inline = "Pivots", tooltip=depthTooltip)
reverse = input(false, "Reverse")
var extendLeft = input(false, "Extend Left    |    Extend Right", inline = "Extend Lines")
var extendRight = input(true, "", inline = "Extend Lines")
var extending = extend.none
if extendLeft and extendRight
    extending := extend.both
if extendLeft and not extendRight
    extending := extend.left
if not extendLeft and extendRight
    extending := extend.right
prices = input(true, "Show Prices")
levels = input(true, "Show Levels", inline = "Levels")
levelsFormat = input("Values", "", options = ["Values", "Percent"], inline = "Levels")
labelsPosition = input("Left", "Labels Position", options = ["Left", "Right"])

var float upperThreshold = 0.236
var float lowerThreshold = 1.0

var line lineLastHL = na
var line lineLastLH = na
var line lineLast = na

var float iLastH = 0
var float iLastL = 0
var float pLastH = 0
var float pLastL = 0

var float[] iPivotsH = array.new_float()
var float[] iPivotsL = array.new_float()
var float[] pPivotsH = array.new_float()
var float[] pPivotsL = array.new_float()

var isHighLast = false
var float startPrice = na
var float endPrice = na
var float diff = na

pivots(src, length, isHigh) =>
    l2 = length * 2
    c = nz(src[length])
    ok = true
    for i = 0 to l2
        if isHigh and src[i] > c
            ok := false

        if not isHigh and src[i] < c
            ok := false
    if ok
        [bar_index[length], c]
    else
        [int(na), float(na)]
[iH, pH] = pivots(high, depth / 2, true)
[iL, pL] = pivots(low, depth / 2, false)

countPivotsH = array.size(iPivotsH)
countPivotsL = array.size(iPivotsL)

if countPivotsH > 0 and countPivotsL > 0
    iLastH := array.get(iPivotsH, countPivotsH-1)
    iLastL := array.get(iPivotsL, countPivotsL-1)
    isHighLast := iLastH > iLastL
    iLastH := 1
    if isHighLast
        if not na(iH)
            pLastH := array.get(pPivotsH, countPivotsH-1)
            if pH > pLastH
                array.set(iPivotsH, countPivotsH-1, iH)
                array.set(pPivotsH, countPivotsH-1, pH)
            iH := na
    else
        if not na(iL)
            pLastL := array.get(pPivotsL, countPivotsL-1)
            if pL < pLastL
                array.set(iPivotsL, countPivotsL-1, iL)
                array.set(pPivotsL, countPivotsL-1, pL)
            iL := na

if not na(iH)
    array.push(iPivotsH, iH)
    array.push(pPivotsH, pH)

if not na(iL)
    array.push(iPivotsL, iL)
    array.push(pPivotsL, pL)

pPivotsHCopy = array.copy(pPivotsH)
pPivotsLCopy = array.copy(pPivotsL)
iPivotsHCopy = array.copy(iPivotsH)
iPivotsLCopy = array.copy(iPivotsL)

if barstate.islast
    for j = bar_index to 0
        if array.size(iPivotsHCopy) == 0 or array.size(iPivotsLCopy) == 0
            break

        iLastH := array.pop(iPivotsHCopy)
        iLastL := array.pop(iPivotsLCopy)

        pLastH := array.pop(pPivotsHCopy)
        pLastL := array.pop(pPivotsLCopy)

        iPrevPivot = 0.0
        pPrevPivot = 0.0

        isHighLast := iLastH > iLastL

        if isHighLast
            for i = array.size(iPivotsHCopy)-1 to 0
                if i < 0
                    break
                else if array.get(iPivotsHCopy, i) < iLastL
                    break
                if array.get(pPivotsHCopy, i) > pLastH
                    iLastH := array.pop(iPivotsHCopy)
                    pLastH := array.pop(pPivotsHCopy)
                else
                    array.remove(iPivotsHCopy, i)
                    array.remove(pPivotsHCopy, i)
        else
            for i = array.size(iPivotsLCopy)-1 to 0
                if i < 0
                    break
                else if array.get(iPivotsLCopy, i) < iLastH
                    break
                if array.get(pPivotsLCopy, i) < pLastL
                    iLastL := array.pop(iPivotsLCopy)
                    pLastL := array.pop(pPivotsLCopy)
                else
                    array.remove(iPivotsLCopy, i)
                    array.remove(pPivotsLCopy, i)

        if array.size(iPivotsHCopy) == 0 or array.size(iPivotsLCopy) == 0
            break

        isHighLast := iLastH > iLastL

        if isHighLast
            iPrevPivot := array.get(iPivotsHCopy, array.size(iPivotsHCopy)-1)
            pPrevPivot := array.get(pPivotsHCopy, array.size(iPivotsHCopy)-1)
        else
            iPrevPivot := array.get(iPivotsLCopy, array.size(iPivotsLCopy)-1)
            pPrevPivot := array.get(pPivotsLCopy, array.size(iPivotsLCopy)-1)

        if isHighLast
            startPrice := pPrevPivot
            endPrice := pLastL
            diff := abs(startPrice - endPrice)
            if pLastH > endPrice + diff * lowerThreshold or pLastH < endPrice + diff * upperThreshold
                array.push(iPivotsLCopy, iLastL)
                array.push(pPivotsLCopy, pLastL)
                continue
            line.delete(lineLastHL)
            line.delete(lineLastLH)
            line.delete(lineLast)
            lineLastHL := line.new(int(iPrevPivot), pPrevPivot, int(iLastL), pLastL, color=color.red, width=1, style=line.style_dashed)
            lineLastLH := line.new(int(iLastL), pLastL, int(iLastH), pLastH, color=color.green, width=1, style=line.style_dashed)
            lineLast := lineLastLH
        else
            startPrice := pPrevPivot
            endPrice := pLastH
            diff := abs(startPrice - endPrice)
            if pLastL < endPrice - diff * lowerThreshold or pLastL > endPrice - diff * upperThreshold
                array.push(iPivotsHCopy, iLastH)
                array.push(pPivotsHCopy, pLastH)
                continue
            line.delete(lineLastHL)
            line.delete(lineLastLH)
            line.delete(lineLast)
            lineLastLH := line.new(int(iPrevPivot), pPrevPivot, int(iLastH), pLastH, color=color.red, width=1, style=line.style_dashed)
            lineLastHL := line.new(int(iLastH), pLastH, int(iLastL), pLastL, color=color.green, width=1, style=line.style_dashed)
            lineLast := lineLastHL
        break

_draw_line(price, col) =>
    var id = line.new(0, price, 0, price, color=col, width=1, extend=extending)
    if not na(lineLast)
        line.set_xy1(id, line.get_x1(lineLast), price)
        line.set_xy2(id, line.get_x2(lineLast), price)

_draw_label(price, txt, txtColor) =>
    if not na(price)
        x = labelsPosition == "Left" ? line.get_x1(lineLast) : not extendRight ? line.get_x2(lineLast) : bar_index
        labelStyle = labelsPosition == "Left" ? label.style_label_right : label.style_label_left
        align = labelsPosition == "Left" ? text.align_right : text.align_left
        labelsAlignStrLeft = txt + '\n ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏ \n'
        labelsAlignStrRight = '       ' + txt + '\n ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏  ‏ \n'
        labelsAlignStr = labelsPosition == "Left" ? labelsAlignStrLeft : labelsAlignStrRight
        var id = label.new(x=x, y=price, text=labelsAlignStr, textcolor=txtColor, style=labelStyle, textalign=align, color=#00000000)
        label.set_xy(id, x, price)
        label.set_text(id, labelsAlignStr)
        label.set_textcolor(id, txtColor)

_wrap(txt) =>
    "(" + tostring(txt, "#.##") + ")"

_label_txt(level, price) =>
    if not na(price)
        l = levelsFormat == "Values" ? tostring(level) : tostring(level * 100) + "%"
        (levels ? l : "") + (prices ? _wrap(price) : "")

_crossing_level(sr, r) =>
    (r > sr and r < sr[1]) or (r < sr and r > sr[1])

diff := (isHighLast ? -1 : 1) * abs(startPrice - endPrice)
offset = isHighLast ? line.get_y1(lineLastLH) - line.get_y2(lineLastLH) : line.get_y1(lineLastHL) - line.get_y2(lineLastHL)
offset := (isHighLast ? -1 : 1) * abs(offset)

processLevel(show, value, colorL) =>
    float m = value
    r = (endPrice - offset) + ((reverse ? -1 : 1) * diff * m)
    if show
        _draw_line(r, colorL)
        _draw_label(r, _label_txt(m, r), colorL)
        if _crossing_level(close, r)
            alert("Autofib: " + syminfo.ticker + " crossing level " + tostring(value))

show_0 = input(true, "", inline = "Level0")
value_0 = input(0, "", inline = "Level0")
color_0 = input(#787b86, "", inline = "Level0")
processLevel(show_0, value_0, color_0)

show_0_236 = input(true, "", inline = "Level0")
value_0_236 = input(0.236, "", inline = "Level0")
color_0_236 = input(#f44336, "", inline = "Level0")
processLevel(show_0_236, value_0_236, color_0_236)

show_0_382 = input(true, "", inline = "Level1")
value_0_382 = input(0.382, "", inline = "Level1")
color_0_382 = input(#81c784, "", inline = "Level1")
processLevel(show_0_382, value_0_382, color_0_382)

show_0_5 = input(true, "", inline = "Level1")
value_0_5 = input(0.5, "", inline = "Level1")
color_0_5 = input(#4caf50, "", inline = "Level1")
processLevel(show_0_5, value_0_5, color_0_5)

show_0_618 = input(true, "", inline = "Level2")
value_0_618 = input(0.618, "", inline = "Level2")
color_0_618 = input(#009688, "", inline = "Level2")
processLevel(show_0_618, value_0_618, color_0_618)

show_0_65 = input(false, "", inline = "Level2")
value_0_65 = input(0.65, "", inline = "Level2")
color_0_65 = input(#009688, "", inline = "Level2")
processLevel(show_0_65, value_0_65, color_0_65)

show_0_786 = input(true, "", inline = "Level3")
value_0_786 = input(0.786, "", inline = "Level3")
color_0_786 = input(#64b5f6, "", inline = "Level3")
processLevel(show_0_786, value_0_786, color_0_786)

show_1 = input(true, "", inline = "Level3")
value_1 = input(1, "", inline = "Level3")
color_1 = input(#787b86, "", inline = "Level3")
processLevel(show_1, value_1, color_1)

show_1_272 = input(false, "", inline = "Level4")
value_1_272 = input(1.272, "", inline = "Level4")
color_1_272 = input(#81c784, "", inline = "Level4")
processLevel(show_1_272, value_1_272, color_1_272)

show_1_414 = input(false, "", inline = "Level4")
value_1_414 = input(1.414, "", inline = "Level4")
color_1_414 = input(#f44336, "", inline = "Level4")
processLevel(show_1_414, value_1_414, color_1_414)

show_1_618 = input(true, "", inline = "Level5")
value_1_618 = input(1.618, "", inline = "Level5")
color_1_618 = input(#2196f3, "", inline = "Level5")
processLevel(show_1_618, value_1_618, color_1_618)

show_1_65 = input(false, "", inline = "Level5")
value_1_65 = input(1.65, "", inline = "Level5")
color_1_65 = input(#2196f3, "", inline = "Level5")
processLevel(show_1_65, value_1_65, color_1_65)

show_2_618 = input(true, "", inline = "Level6")
value_2_618 = input(2.618, "", inline = "Level6")
color_2_618 = input(#f44336, "", inline = "Level6")
processLevel(show_2_618, value_2_618, color_2_618)

show_2_65 = input(false, "", inline = "Level6")
value_2_65 = input(2.65, "", inline = "Level6")
color_2_65 = input(#f44336, "", inline = "Level6")
processLevel(show_2_65, value_2_65, color_2_65)

show_3_618 = input(true, "", inline = "Level7")
value_3_618 = input(3.618, "", inline = "Level7")
color_3_618 = input(#9c27b0, "", inline = "Level7")
processLevel(show_3_618, value_3_618, color_3_618)

show_3_65 = input(false, "", inline = "Level7")
value_3_65 = input(3.65, "", inline = "Level7")
color_3_65 = input(#9c27b0, "", inline = "Level7")
processLevel(show_3_65, value_3_65, color_3_65)

show_4_236 = input(true, "", inline = "Level8")
value_4_236 = input(4.236, "", inline = "Level8")
color_4_236 = input(#e91e63, "", inline = "Level8")
processLevel(show_4_236, value_4_236, color_4_236)

show_4_618 = input(false, "", inline = "Level8")
value_4_618 = input(4.618, "", inline = "Level8")
color_4_618 = input(#81c784, "", inline = "Level8")
processLevel(show_4_618, value_4_618, color_4_618)

show_neg_0_236 = input(false, "", inline = "Level9")
value_neg_0_236 = input(-0.236, "", inline = "Level9")
color_neg_0_236 = input(#f44336, "", inline = "Level9")
processLevel(show_neg_0_236, value_neg_0_236, color_neg_0_236)

show_neg_0_382 = input(false, "", inline = "Level9")
value_neg_0_382 = input(-0.382, "", inline = "Level9")
color_neg_0_382 = input(#81c784, "", inline = "Level9")
processLevel(show_neg_0_382, value_neg_0_382, color_neg_0_382)

show_neg_0_618 = input(false, "", inline = "Level10")
value_neg_0_618 = input(-0.618, "", inline = "Level10")
color_neg_0_618 = input(#009688, "", inline = "Level10")
processLevel(show_neg_0_618, value_neg_0_618, color_neg_0_618)

show_neg_0_65 = input(false, "", inline = "Level10")
value_neg_0_65 = input(-0.65, "", inline = "Level10")
color_neg_0_65 = input(#009688, "", inline = "Level10")
processLevel(show_neg_0_65, value_neg_0_65, color_neg_0_65)

 

 

2-شیوه اضافه کردن اندیکاتور Auto Fib Extension  به تریدینگ ویو با استفاده از اسکریپت

شیوه تنظیم کردن این اندیکاتور

اصلا برای  استفاده از این اندیکاتور نیاز به تغییر در تنظیمات آن نداریم. اما این اندیکاتور تنظیمات زیادی برای تنظیم رنگ و ضخامت خطوط  دارد که در ادامه مشاهده می فرمایید.

 

 

نویسنده و گرد آورنده : مصطفی اجارستاقی

کاربرگرامی جهت بهبود کیفی مطالب لطفا دیدگاه های ارزشند خود را با ما به اشتراک بگذارید.

 

 

 

Visits: 642

درباره این مطلب نظر دهید !

میانگین امتیاز این مطلب 5 است .

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

2 دیدگاه برای “اندیکاتور رسم اتوماتیک فیبوناچی اکستنشن Auto Fib Extension در تریدینگ ویو

    • مهندس مصطفی اجارستاقی می گوید :

      با سلام
      برای استفاده از امکانات اندیکاتور ها و اسکریپت نویسی در سایت تریدینگ ویو نیاز به اشتراک ندارد ولی باید ثبت نام را انجام دهید که آن هم رایگان و ظرف یک دقیقه انجام می گیرد.
      موفق و موید باشید

محصولات زیرا حتما ببینید ...

متاسفانه موردی یافت نشد ...