यह सूचक उन बिंदुओं को उजागर करता है जहां मूल्य एक केंद्रीय स्तर से महत्वपूर्ण रूप से विचलित होता है। यह विचलन दूरी उपयोगकर्ता-सेट मान या अवधि 200 Atr के गुणक का उपयोग करके निर्धारित की जाती है और फाइबोनैचि अनुक्रम के क्रमिक मानों से गुणा की जाती है।
सेटिंग्स
विधिः दूरी विधि, विकल्पों में
उपयोग
सूचक संभावित उलट-पुलट बिंदुओं को उजागर करने की अनुमति देता है, लेकिन यह केंद्रीय स्तर का उपयोग करके रुझानों को भी निर्धारित कर सकता है, यदि केंद्रीय स्तर अपने पिछले मूल्य से अधिक है और इसके विपरीत एक डाउनट्रेंड के लिए एक अपट्रेंड का पता लगाया जाता है।
जब एक अपट्रेंड का पता चलता है, और कीमत इससे काफी ऊपर की ओर विचलित होती है तो एक पहला चेकमार्क एक गुणक के रूप में उपयोग किए जाने वाले फाइबोनैचि अनुक्रम के साथ हाइलाइट किया जाएगा, यदि कीमत नीचे की ओर विचलित होती है, तो इसके बजाय एक क्रॉस दिखाया जाएगा, फिर दूरी की सीमा फाइबोनैचि अनुक्रम में अगले मूल्य से गुणा की जाएगी।
यदि मूल्य केंद्रीय स्तर से विचलित हो जाता है ताकि अनुक्रम की लंबाई उपयोगकर्ता द्वारा निर्धारित अनुक्रम लंबाई से अधिक हो, तो एक ब्रेक लेबल एक नए केंद्रीय स्तर के साथ प्रदर्शित किया जाएगा, जिसमें वर्तमान समापन मूल्य द्वारा निर्धारित मूल्य होगा, जबकि फाइबोनैचि गुणक को 1 पर रीसेट किया जाएगा।
मध्य स्तर और सीमा दूरी से बने ऊपरी और निचले छोरों को उजागर किया गया है और उनका उपयोग समर्थन और प्रतिरोध के रूप में किया जा सकता है।
बैकटेस्ट
/*backtest start: 2022-04-10 00:00:00 end: 2022-05-07 23:59:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/ // © LuxAlgo //@version=5 indicator("Fibonacci Progression With Breaks [LUX]",overlay=1,max_labels_count=500,max_lines_count=500) method = input.string('Atr',options=['Atr','Manual'],inline='inline1') size = input(1.,'',inline='inline1') max = input(3,'Sequence Length') //---- var fib = array.from(1,1) var dist = 0.,var avg = 0.,var fib_n = 1,var os = 0 src = close n = bar_index if barstate.isfirst for i = 1 to max array.push(fib,array.get(fib,i-1) + array.get(fib,i)) //---- if method == 'Atr' dist := ta.atr(200)*size*array.get(fib,fib_n) else dist := size*array.get(fib,fib_n) fib_n := math.abs(src-avg) > dist ? fib_n+1 : fib_n avg := nz(fib_n > max+1 ? src : avg[1],src) fib_n := fib_n > max+1 ? 1 : fib_n buy = avg > avg[1] sell = avg < avg[1] os := buy ? 1 : sell ? 0 : os tp = avg != avg[1] ? na : os == 1 ? avg + dist : avg - dist sl = avg != avg[1] ? na : os == 0 ? avg + dist : avg - dist //---- css = os == 1 ? #0cb51a : #ff1100 plot0 = plot(src,color=na) plot1 = plot(avg,color=na) fill(plot0,plot1,color.new(css,80)) //---- plotshape(buy ? low : na,"Buy Label",shape.labelup,location.absolute,#0cb51a,0,text="B",textcolor=color.white,size=size.tiny) plotshape(sell ? high : na,"Sell Label",shape.labeldown,location.absolute,#ff1100,0,text="S",textcolor=color.white,size=size.tiny) plot(tp,'Target',#0cb51a,1,plot.style_linebr) plot(sl,'Stop',#ff1100,1,plot.style_linebr) if buy strategy.entry("Enter Long", strategy.long) else if sell strategy.entry("Enter Short", strategy.short)