
इस रणनीति में चलती औसत, लेन-देन की मात्रा और मूल्य गतिशीलता के संकेतकों के संयोजन का उपयोग करके, एक मात्रात्मक नियम का एक सेट तैयार किया गया है, जिसका उपयोग स्टॉक के संचयी चरण में प्रवेश करने के समय की पहचान करने के लिए किया जाता है। इस चरण में, स्टॉक आम तौर पर कीमतों के संश्लेषण और गतिशीलता की स्थिति में होते हैं, जो कम कीमतों में प्रवेश करने का एक अच्छा अवसर प्रदान करते हैं।
रणनीति 50-, 90-, और 200-दिवसीय सरल चलती औसत का उपयोग करती है ताकि कीमतों के रुझान का पता लगाया जा सके। खरीद संकेत केवल तब उत्पन्न होते हैं जब कीमतें 200-दिवसीय रेखा से ऊपर होती हैं। यह बड़ी गिरावट की अनिश्चितता को फ़िल्टर कर सकता है।
एक रणनीति में एक बड़ी प्रवृत्ति के अलावा, प्रवृत्ति की पुष्टि करने के लिए एक अल्पकालिक औसत रेखा क्रम का भी आकलन किया जाता है। विशेष रूप से, यह 50 दिन की रेखा 90 दिन की रेखा से अधिक है।
चलती औसत की पुष्टि करने के आधार पर कि क्या बड़ी प्रवृत्ति और अल्पकालिक प्रवृत्ति योग्य हैं, रणनीति एक संचयी विशेषता का न्याय करने के लिए परिमाण संकेतक पीवीटी और मैकड संकेतक का संयोजन करती है। केवल जब पीवीटी ऊपर की ओर टूट जाता है, तो मैकड लाइन सिग्नल लाइन से ऊपर होती है और परिमाण बढ़ जाती है, तो एक खरीद संकेत उत्पन्न होता है।
अकेले चलती औसत का उपयोग करने की तुलना में, यह रणनीति प्रवृत्ति की पुष्टि करती है और साथ ही लेनदेन की मात्रा की जांच करती है। यह स्टॉक के संचयी चरण में प्रवेश करने के समय को अधिक सटीक रूप से निर्धारित करने में मदद कर सकता है, जिससे प्रवेश की कीमत का लाभ सुनिश्चित हो सके।
मल्टी-टाइम फ़्रेम विश्लेषण के माध्यम से, यह रणनीति मध्यम-लंबी अवधि के रुझान निर्णय और अल्पकालिक विशेषताओं के निर्णय को जोड़ती है, और समय फ़्रेम मिलान से एकल समय फ़्रेम निर्णय त्रुटि के कारण होने वाली अनिश्चितता को कम किया जा सकता है।
यह रणनीति मुख्य रूप से औसत रेखा निर्णय पर निर्भर करती है, और जब कीमत में भारी उतार-चढ़ाव होता है, तो औसत रेखा निर्णय निष्क्रिय हो जाता है। इस समय स्थिति का आकार कम किया जाना चाहिए, या सीधे नुकसान से बाहर निकल जाना चाहिए।
इसके अलावा, संचयी चरण में निर्णय गलत हो सकता है, जिससे पलटने का अवसर छूट जाता है। इसे अधिक लक्षण संकेतकों को देखकर निर्णय की पुष्टि करने की आवश्यकता होती है।
इस रणनीति में मशीन लर्निंग एल्गोरिदम को शामिल किया जा सकता है, जो फीचर एक्सट्रैक्शन और मॉडल प्रशिक्षण के माध्यम से संचयी चरणों के लिए स्वचालित निर्णय को लागू करता है। यह मैन्युअल रूप से सेट किए गए थ्रेशोल्ड के कारण सीमाओं को कम कर सकता है।
इसके अलावा, इस रणनीति में ब्रेकपॉइंट फ़ंक्शन का भी परीक्षण किया जा सकता है, जो विभिन्न बाजार स्थितियों में स्वचालित रूप से विभिन्न मापदंडों को स्विच करता है, जिससे रणनीति अधिक कठोर हो जाती है।
इस रणनीति में समग्र रूप से मूल्य और परिमाण के मिलान के लिए विचार का उपयोग किया गया है ताकि स्टॉक संचय की विशेषताएं निर्धारित की जा सकें। बड़ी दिशा की पुष्टि करते हुए, अल्पकालिक संचय के अवसरों का दोहन करें। पैरामीटर अनुकूलन और मशीन सीखने जैसे साधनों की शुरूआत के माध्यम से, रणनीति प्रभाव में और वृद्धि करने की जगह है।
/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © stocktechbot
//@version=5
strategy("Accumulate", overlay = true)
lookback = input(defval = 21, title = 'Lookback')
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
//SMA Tredline
out = ta.sma(close, 200)
outf = ta.sma(close, 50)
outn = ta.sma(close, 90)
outt = ta.sma(close, 21)
//sma plot
plot(out, color=color.blue, title="MA200", offset=offset)
plot(outf, color=color.maroon, title="MA50", offset=offset)
plot(outn, color=color.orange, title="MA90", offset=offset)
plot(outt, color=color.olive, title="MA21", offset=offset)
//MarketCap Calculation
//MarketCap = 0.0
//TSO = request.financial(syminfo.tickerid, "TOTAL_SHARES_OUTSTANDING", "FQ", ignore_invalid_symbol = true)
//if str.tostring(TSO) != 'na'
// if ta.barssince(TSO != TSO[1] and TSO > TSO[1])==0
// MarketCap := TSO * close
//
// if barstate.islast and MarketCap == 0
// runtime.error("No MarketCap is provided by the data vendor.")
//
//momlen = 100
//msrc = MarketCap
//mom = msrc - msrc[momlen]
//plotmom = if (mom > mom[1])
// true
//else
// false
//OBV with sma on macd
obv = ta.cum(math.sign(ta.change(close)) * volume)
smoothingLength = 5
smoothingLine = ta.sma(obv,5)
[macdLine, signalLine, histLine] = ta.macd(ta.pvt, 12, 26, 9)
sellvolhigh = macdLine < signalLine
buyvolhigh = macdLine > signalLine
//Buy Signal
mafentry =ta.sma(close, 50) > ta.sma(close, 90)
//matentry = ta.sma(close, 21) > ta.sma(close, 50)
matwohun = close > ta.sma(close, 200)
higheshigh = ta.rising(high, 2)
higheslow = ta.rising(low, 2 )
twohunraise = ta.rising(out, 2)
//highvol = ta.crossover(volume, ta.sma(volume, lookback))
highvol = ta.rising(volume,2)
fourlow = ta.lowest(close, lookback)
fourhig = ta.highest(close, lookback)
change = (((fourhig - fourlow) / fourlow) * 100) <= 30
green = close > open
allup = false
lineabove = ta.cross(close, ta.sma(close, input(defval = 21, title = 'Entry Line')))
if matwohun and mafentry and higheshigh and twohunraise and buyvolhigh
//if higheshigh and higheslow and highvol
allup := true
plotshape(allup, style=shape.arrowup,location=location.belowbar, color=color.green, title = "Buy Signal")
barsSinceLastEntry() =>
strategy.opentrades > 0 ? bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) : na
//Sell Signal
mafexit =ta.sma(close, 50) < ta.sma(close, 90)
matexit = ta.sma(close, 21) < ta.sma(close, 50)
matwohund = close < ta.sma(close, 200)
linebreak = ta.sma(close, input(defval = 21, title = 'Exit Line')) > close
lowesthigh = ta.falling(high, 3)
lowestlow = ta.falling(low, 2 )
twohunfall = ta.falling(out, 3)
twentyfall = ta.falling(outt, 2)
highvole = ta.crossover(volume, ta.sma(volume, 5))
//fourlow = ta.lowest(close, lookback)
//fourhig = ta.highest(close, lookback)
changed = (((fourhig - close) / close) * 100) >= 10
red = close < open
atr = ta.atr(14)
//atrsmalen = int(bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) )
atrsmalen = barsSinceLastEntry()
atrsma = false
atrlen = 5
if str.tostring(atrsmalen) != 'NaN' and atrsmalen > 0
atrlen := atrsmalen
atrsma := atr > ta.sma(atr,50)
alldwn = false
if sellvolhigh and lowestlow and (close < close[1] and close < open)
//if higheshigh and higheslow and highvol
alldwn := true
plotshape(alldwn, style=shape.arrowdown,location=location.abovebar, color=color.red, title = "Sell Signal")
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
if (allup)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
if (alldwn)
strategy.entry("My Short Entry Id", strategy.short)