संसाधन लोड हो रहा है... लोड करना...

पीवोट पॉइंट्स और ढलान के आधार पर वास्तविक समय में ट्रेंडलाइन ट्रेडिंग

लेखक:चाओझांग, दिनांकः 2024-04-26 15:34:28
टैगःएटीआरएडीएक्सएमए

img

अवलोकन

यह रणनीति मूल्य में स्विंग हाई और लो की पहचान करने के लिए पिवोट पॉइंट्स (पिवोट हाई और पिवोट लो) का उपयोग करती है और इन बिंदुओं के आधार पर ऊपर और नीचे की प्रवृत्ति रेखाएं खींचती है। प्रवृत्ति रेखाओं की ढलान की गणना एटीआर (औसत सच्ची सीमा), मानक विचलन, या रैखिक प्रतिगमन जैसे तरीकों का उपयोग करके की जाती है, और फिर ढलान कारक द्वारा समायोजित की जाती है। जब कीमत एक प्रवृत्ति रेखा के माध्यम से टूटती है, तो रणनीति एक खरीद या बिक्री संकेत उत्पन्न करती है।

रणनीतिक सिद्धांत

  1. ta.pivothigh (() और ta.pivotlow (()) फ़ंक्शन का उपयोग एक निश्चित लुकबैक अवधि में स्विंग हाई (ph) और स्विंग लो (pl) का पता लगाने के लिए करें।
  2. चयनित गणना पद्धति (एटीआर, मानक विचलन या रैखिक प्रतिगमन) के आधार पर प्रवृत्ति रेखाओं के ढलान की गणना करें और इसे ढलान कारक (मल्ट) से गुणा करके समायोजित करें।
  3. ढलान और पिव्होट पॉइंट की कीमतों का उपयोग करके, ऊपर की प्रवृत्ति रेखा (ऊपरी) और नीचे की प्रवृत्ति रेखा (नीचे) के वर्तमान मूल्यों की गणना करें।
  4. यह निर्धारित करें कि क्या वर्तमान समापन मूल्य ने प्रवृत्ति रेखा को पार कर लिया हैः यदि समापन मूल्य ऊपर की प्रवृत्ति रेखा से ऊपर है, तो एक ऊपर का ब्रेकआउट सिग्नल उत्पन्न होता है; यदि समापन मूल्य नीचे की प्रवृत्ति रेखा से नीचे है, तो एक नीचे का ब्रेकआउट सिग्नल उत्पन्न होता है।
  5. चार्ट पर प्रवृत्ति रेखाओं को चित्रित करें, रेखाओं को विस्तारित करने के विकल्प के साथ।
  6. ब्रेकआउट सिग्नल के आधार पर ट्रेड करेंः ऊपर की ओर ब्रेकआउट पर लॉन्ग जाएं और नीचे की ओर ब्रेकआउट पर शॉर्ट करें।

रणनीतिक लाभ

  1. यह रणनीति मूल्य व्यवहार (पीवोट पॉइंट्स और ट्रेंडलाइन) के वस्तुनिष्ठ तथ्यों के आधार पर ट्रेडिंग सिग्नल उत्पन्न करती है, जो विश्वसनीयता और स्थिरता की एक डिग्री प्रदान करती है।
  2. प्रवृत्ति रेखाओं की ढलान को बाजार की अस्थिरता के आधार पर गतिशील रूप से समायोजित किया जा सकता है, जो विभिन्न बाजार स्थितियों के अनुकूल है।
  3. उपयोगकर्ता रणनीतिक प्रदर्शन को अनुकूलित करने के लिए ढलान गणना विधि और पैरामीटर सेटिंग्स को लचीले ढंग से चुन सकते हैं।
  4. यह रणनीति विभिन्न उपयोगकर्ताओं की जरूरतों को पूरा करने के लिए वास्तविक समय और विलंबित सिग्नल मोड दोनों प्रदान करती है।
  5. अंतर्निहित अलर्ट फ़ंक्शन उपयोगकर्ताओं को समय पर ट्रेडिंग अवसरों को पकड़ने में मदद कर सकता है।

रणनीतिक जोखिम

  1. अस्थिर बाजारों में या जब रुझान स्पष्ट नहीं होते हैं, तो रणनीति अक्सर झूठे संकेत उत्पन्न कर सकती है, जिससे लाभप्रदता कम हो जाती है।
  2. रणनीति का प्रदर्शन पैरामीटर सेटिंग्स पर निर्भर करता है; अनुचित पैरामीटर के कारण रणनीति विफल हो सकती है या अत्यधिक ट्रेड उत्पन्न हो सकती है।
  3. विलंबित संकेत मोड में, बैकटेस्टिंग के अस्तित्व के कारण, वास्तविक ट्रेडिंग परिणाम ऐतिहासिक परीक्षण परिणामों से भिन्न हो सकते हैं।

रणनीति अनुकूलन दिशाएं

  1. अधिक तकनीकी संकेतक या मूल्य व्यवहार की विशेषताएं, जैसे कि ट्रेडिंग वॉल्यूम और अस्थिरता, ट्रेंडलाइन ब्रेकआउट संकेतों की पुष्टि करने और संकेत की गुणवत्ता में सुधार करने में सहायता करने के लिए पेश करें।
  2. झूठे संकेतों को कम करने के लिए ट्रेंडलाइन ब्रेकआउट की अवधि और परिमाण जैसे कारकों पर विचार करके ट्रेडिंग सिग्नल को फ़िल्टर करें।
  3. स्थिति प्रबंधन और जोखिम नियंत्रण को अनुकूलित करना, जैसे कि प्रवृत्ति की ताकत या अस्थिरता के आधार पर स्थिति के आकार को गतिशील रूप से समायोजित करना और उचित स्टॉप-लॉस और ले-प्रॉफिट स्तर निर्धारित करना।
  4. सर्वोत्तम पैरामीटर संयोजन खोजने के लिए मशीन लर्निंग या अनुकूलन एल्गोरिदम का उपयोग करके मापदंडों का अनुकूलन करें।

सारांश

यह रणनीति एक वास्तविक समय की ट्रेंडलाइन ट्रेडिंग प्रणाली का निर्माण करने के लिए पिवोट पॉइंट्स और ट्रेंडलाइन ढलानों का उपयोग करती है। ट्रेंडलाइन ब्रेकआउट घटनाओं को कैप्चर करके, रणनीति ट्रेंड गठन के शुरुआती चरणों में व्यापार कर सकती है। हालांकि रणनीति के कुछ फायदे हैं, फिर भी चंचल बाजारों में इसके जोखिमों के बारे में जागरूक होना आवश्यक है और अधिक जानकारी पेश करके, सिग्नल फ़िल्टरिंग, स्थिति प्रबंधन और अन्य तरीकों को अनुकूलित करके रणनीति की मजबूती और लाभप्रदता में और वृद्धि करना आवश्यक है।


/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(" only Ajay ", overlay=true)

//------------------------------------------------------------------------------
//Settings
//------------------------------------------------------------------------------{
length = input.int(14, 'Swing Detection Lookback')
mult = input.float(1., 'Slope', minval = 0, step = .1)
calcMethod = input.string('Atr', 'Slope Calculation Method', options = ['Atr','Stdev','Linreg'])
backpaint = input(true, tooltip = 'Backpainting offset displayed elements in the past. Disable backpainting to see real time information returned by the indicator.')

//Style
upCss = input.color(color.teal, 'Up Trendline Color', group = 'Style')
dnCss = input.color(color.red, 'Down Trendline Color', group = 'Style')
showExt = input(true, 'Show Extended Lines')

//------------------------------------------------------------------------------}
//Calculations
//------------------------------------------------------------------------------{
var upper = 0.
var lower = 0.
var slope_ph = 0.
var slope_pl = 0.

var offset = backpaint ? length : 0

n = bar_index
src = close

ph = ta.pivothigh(length, length)
pl = ta.pivotlow(length, length)

//Slope Calculation Method
slope = switch calcMethod
    'Atr'    => ta.atr(length) / length * mult
    'Stdev'  => ta.stdev(src,length) / length * mult
    'Linreg' => math.abs(ta.sma(src * n, length) - ta.sma(src, length) * ta.sma(n, length)) / ta.variance(n, length) / 2 * mult

//Get slopes and calculate trendlines
slope_ph := ph ? slope : slope_ph
slope_pl := pl ? slope : slope_pl

upper := ph ? ph : upper - slope_ph
lower := pl ? pl : lower + slope_pl

var upos = 0
var dnos = 0
upos := ph ? 0 : close > upper - slope_ph * length ? 1 : upos
dnos := pl ? 0 : close < lower + slope_pl * length ? 1 : dnos

//------------------------------------------------------------------------------}
//Extended Lines
//------------------------------------------------------------------------------{
// var uptl  = line.new(na,na,na,na, color = upCss, style = line.style_dashed, extend = extend.right)
// var dntl  = line.new(na,na,na,na, color = dnCss, style = line.style_dashed, extend = extend.right)

// if ph and showExt
//     uptl.set_xy1(n-offset, backpaint ? ph : upper - slope_ph * length)
//     uptl.set_xy2(n-offset+1, backpaint ? ph - slope : upper - slope_ph * (length+1))

// if pl and showExt
//     dntl.set_xy1(n-offset, backpaint ? pl : lower + slope_pl * length)
//     dntl.set_xy2(n-offset+1, backpaint ? pl + slope : lower + slope_pl * (length+1))

//------------------------------------------------------------------------------}
//Plots
//------------------------------------------------------------------------------{
plot(backpaint ? upper : upper - slope_ph * length, 'Upper', color = ph ? na : upCss, offset = -offset)
plot(backpaint ? lower : lower + slope_pl * length, 'Lower', color = pl ? na : dnCss, offset = -offset)

//Breakouts
upBreakout = upos > upos[1]
dnBreakout = dnos > dnos[1]

if (upBreakout)
    strategy.entry("Up Breakout", strategy.long)

if (dnBreakout)
    strategy.entry("Down Breakout", strategy.short)

//------------------------------------------------------------------------------}
//Alerts
//------------------------------------------------------------------------------{
alertcondition(upos > upos[1], 'Upward Breakout', 'Price broke the down-trendline upward')
alertcondition(dnos > dnos[1], 'Downward Breakout', 'Price broke the up-trendline downward')

//------------------------------------------------------------------------------}


संबंधित

अधिक