चलती औसत और अस्थिरता पर आधारित प्रवृत्ति अनुसरण रणनीति


निर्माण तिथि: 2023-09-21 21:32:40 अंत में संशोधित करें: 2023-09-21 21:32:40
कॉपी: 0 क्लिक्स: 658
1
ध्यान केंद्रित करना
1617
समर्थक

अवलोकन

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

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

इस रणनीति में निम्नलिखित महत्वपूर्ण कदम शामिल हैंः

  1. औसत रेखा की गणना VWAP का उपयोग करके की जाती है, न कि समापन मूल्य, जो वास्तविक लेनदेन की कीमतों को अधिक सटीक रूप से दर्शाता है।

  2. औसत रेखा के औसत को गणना करें और उस औसत के आधार पर ब्रिन बैंड को रेखांकित करें। ब्रिन बैंड यह बताता है कि क्या कीमतों में उतार-चढ़ाव बढ़ गया है, और प्रवृत्ति शुरू करने के लिए संकेत दिया गया है।

  3. ट्रेडों की संख्या में वृद्धि को पहचानने के लिए समय-सीमा मात्रा (टीएसवी) को शामिल करें।

  4. जब एक तेज औसत रेखा पर एक धीमी औसत रेखा को पार करता है, तो एक खरीद संकेत उत्पन्न होता है जब कीमत बुलिन से अधिक होती है और टीएसवी 0 से अधिक होती है; इसके विपरीत, एक बेचने का संकेत होता है।

  5. औसत रेखा वापसी और बुलिन के नीचे की पटरी का उपयोग स्टॉप लॉस क्लियर सिग्नल के रूप में करें।

रणनीतिक लाभ

  • कई मापदंडों का उपयोग करके पुष्टि करें, झूठी दरारों को प्रभावी रूप से फ़िल्टर करें, और रुझान की शुरुआत की पहचान करें

  • औसत रेखा गणना विधि वास्तविक लेनदेन मूल्य को अधिक सटीक रूप से दर्शाती है

  • अस्थिरता सूचकांक के साथ प्रवृत्ति का निर्धारण करना

  • ट्रेड वॉल्यूम इंडिकेटर में वृद्धि, विकास में रुझानों की पुष्टि

  • उचित स्टॉप और स्टॉप मानकों को स्थापित करें और जोखिम को नियंत्रित करें

  • पैरामीटर विन्यास योग्य है, जो लचीलेपन के साथ इष्टतम स्थिति में समायोजित किया जा सकता है

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

  • बहु-सूचक संयोजन निर्णय, पैरामीटर अनुकूलन की कठिनाई के साथ समस्या

  • औसत भार रेखा और ब्रिन बैंड दोनों में देरी की समस्या है, जिससे समय पर स्टॉप लॉस नहीं हो सकता है

  • समय अवधि सूचक पैरामीटर सेटिंग के प्रति संवेदनशील है, विभिन्न बाजारों में समायोजन की आवश्यकता है

  • बाजारों में अधिक झूठे संकेत पैदा करने की संभावना

  • लेनदेन लागत के प्रभाव को ध्यान में रखे बिना, वास्तविक लाभ और हानि के परिणाम परिणाम से कम हैं

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

  • स्वचालित रूप से पैरामीटर सेट को अनुकूलित करने के लिए मशीन लर्निंग का उपयोग करने का प्रयास करें

  • गतिशील रूप से चलती रोक या ट्रैक रोक को सेट करें, लाभ को बेहतर तरीके से लॉक करें

  • ट्रेडों की मात्रा को कम करने के लिए ऊर्जा संकेतक को शामिल करना

  • लहर सिद्धांत के संयोजन में, यह निर्धारित करने के लिए कि वर्तमान में प्रवृत्ति के शुरुआती, मध्य और अंतिम चरण में है, गतिशील समायोजन रणनीति पैरामीटर

  • वास्तविक लेन-देन लागत प्रभाव को ध्यान में रखते हुए, लागत-प्रभावशीलता को नियंत्रित करने के लिए न्यूनतम स्टॉप-एंड्स सेट करें

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4

// Credits

// "Vwap with period" code which used in this strategy to calculate the leadLine was written by "neolao" active on https://tr.tradingview.com/u/neolao/
// "TSV" code which used in this strategy was written by "liw0" active on https://www.tradingview.com/u/liw0. The code is corrected by "vitelot" December 2018.

strategy("HYE Trend Hunter [Strategy]", overlay = true, initial_capital = 1000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_value = 0.025, pyramiding = 0)
  
// Strategy inputs 

slowtenkansenPeriod = input(9, minval=1, title="Slow Tenkan Sen VWAP Line Length", group = "Tenkansen / Kijunsen")
slowkijunsenPeriod = input(26, minval=1, title="Slow Kijun Sen VWAP Line Length", group = "Tenkansen / Kijunsen")
fasttenkansenPeriod = input(5, minval=1, title="Fast Tenkan Sen VWAP Line Length", group = "Tenkansen / Kijunsen")
fastkijunsenPeriod = input(13, minval=1, title="Fast Kijun Sen VWAP Line Length", group = "Tenkansen / Kijunsen")
BBlength = input(20, minval=1, title= "Bollinger Band Length", group = "Bollinger Bands")
BBmult = input(2.0, minval=0.001, maxval=50, title="Bollinger Band StdDev", group = "Bollinger Bands")
tsvlength  = input(13, minval=1, title="TSV Length", group = "Tıme Segmented Volume")
tsvemaperiod = input(7, minval=1, title="TSV Ema Length", group = "Tıme Segmented Volume")

// Make input options that configure backtest date range  
 
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31, group = "Backtest Range")
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12, group = "Backtest Range")
startYear = input(title="Start Year", type=input.integer,
     defval=2000, minval=1800, maxval=2100, group = "Backtest Range")

endDate = input(title="End Date", type=input.integer, 
     defval=31, minval=1, maxval=31, group = "Backtest Range")
endMonth = input(title="End Month", type=input.integer,
     defval=12, minval=1, maxval=12, group = "Backtest Range") 
endYear = input(title="End Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100, group = "Backtest Range")
     
inDateRange =  true

//Slow Tenkan Sen Calculation

typicalPriceTS = (high + low + close) / 3
typicalPriceVolumeTS = typicalPriceTS * volume
cumulativeTypicalPriceVolumeTS = sum(typicalPriceVolumeTS, slowtenkansenPeriod)
cumulativeVolumeTS = sum(volume, slowtenkansenPeriod)
slowtenkansenvwapValue = cumulativeTypicalPriceVolumeTS / cumulativeVolumeTS

//Slow Kijun Sen Calculation

typicalPriceKS = (high + low + close) / 3
typicalPriceVolumeKS = typicalPriceKS * volume
cumulativeTypicalPriceVolumeKS = sum(typicalPriceVolumeKS, slowkijunsenPeriod)
cumulativeVolumeKS = sum(volume, slowkijunsenPeriod)
slowkijunsenvwapValue = cumulativeTypicalPriceVolumeKS / cumulativeVolumeKS

//Fast Tenkan Sen Calculation

typicalPriceTF = (high + low + close) / 3
typicalPriceVolumeTF = typicalPriceTF * volume
cumulativeTypicalPriceVolumeTF = sum(typicalPriceVolumeTF, fasttenkansenPeriod)
cumulativeVolumeTF = sum(volume, fasttenkansenPeriod)
fasttenkansenvwapValue = cumulativeTypicalPriceVolumeTF / cumulativeVolumeTF

//Fast Kijun Sen Calculation

typicalPriceKF = (high + low + close) / 3
typicalPriceVolumeKF = typicalPriceKS * volume
cumulativeTypicalPriceVolumeKF = sum(typicalPriceVolumeKF, fastkijunsenPeriod)
cumulativeVolumeKF = sum(volume, fastkijunsenPeriod)
fastkijunsenvwapValue = cumulativeTypicalPriceVolumeKF / cumulativeVolumeKF

//Slow LeadLine Calculation
 
lowesttenkansen_s = lowest(slowtenkansenvwapValue, slowtenkansenPeriod)
highesttenkansen_s = highest(slowtenkansenvwapValue, slowtenkansenPeriod)

lowestkijunsen_s = lowest(slowkijunsenvwapValue, slowkijunsenPeriod)
highestkijunsen_s = highest(slowkijunsenvwapValue, slowkijunsenPeriod)

slowtenkansen = avg(lowesttenkansen_s, highesttenkansen_s)
slowkijunsen = avg(lowestkijunsen_s, highestkijunsen_s)
slowleadLine = avg(slowtenkansen, slowkijunsen)

//Fast LeadLine Calculation
 
lowesttenkansen_f = lowest(fasttenkansenvwapValue, fasttenkansenPeriod)
highesttenkansen_f = highest(fasttenkansenvwapValue, fasttenkansenPeriod)

lowestkijunsen_f = lowest(fastkijunsenvwapValue, fastkijunsenPeriod)
highestkijunsen_f = highest(fastkijunsenvwapValue, fastkijunsenPeriod)

fasttenkansen = avg(lowesttenkansen_f, highesttenkansen_f)
fastkijunsen = avg(lowestkijunsen_f, highestkijunsen_f)
fastleadLine = avg(fasttenkansen, fastkijunsen)

// BBleadLine Calculation

BBleadLine = avg(fastleadLine, slowleadLine)

// Bollinger Band Calculation
 
basis = sma(BBleadLine, BBlength)
dev = BBmult * stdev(BBleadLine, BBlength)
upper = basis + dev
lower = basis - dev

// TSV Calculation

tsv = sum(close>close[1]?volume*(close-close[1]):close<close[1]?volume*(close-close[1]):0,tsvlength)
tsvema = ema(tsv, tsvemaperiod)

// Rules for Entry & Exit  

if(fastleadLine > fastleadLine[1] and slowleadLine > slowleadLine[1] and tsv > 0 and tsv > tsvema and close > upper and inDateRange)
    strategy.entry("BUY", strategy.long)
 
if(fastleadLine < fastleadLine[1] and slowleadLine < slowleadLine[1])
    strategy.close("BUY")

// Plots 

colorsettingS = input(title="Solid Color Slow Leadline", defval=false, type=input.bool)
plot(slowleadLine, title = "Slow LeadLine", color = colorsettingS ? color.aqua : slowleadLine > slowleadLine[1] ? color.green : color.red, linewidth=3)

colorsettingF = input(title="Solid Color Fast Leadline", defval=false, type=input.bool)
plot(fastleadLine, title = "Fast LeadLine", color = colorsettingF ? color.orange : fastleadLine > fastleadLine[1] ? color.green : color.red, linewidth=3)

p1 = plot(upper, "Upper BB", color=#2962FF)
p2 = plot(lower, "Lower BB", color=#2962FF)
fill(p1, p2, title = "Background", color=color.blue)