संचयन चरण पहचानकर्ता और व्यापार रणनीति

लेखक:चाओझांग, दिनांकः 2024-02-20 11:29:57
टैगः

img

अवलोकन

इस रणनीति में चलती औसत, मात्रा संकेतकों और मूल्य गति संकेतकों को जोड़कर संचय चरण में प्रवेश करने वाले स्टॉक के समय की पहचान करने के लिए मात्रात्मक नियमों का एक सेट तैयार किया गया है। इस चरण में, स्टॉक आमतौर पर मूल्य समेकन और भंडारण की स्थिति में होते हैं, जो कम कीमत का एक अच्छा अवसर प्रदान करते हैं।

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

यह रणनीति मूल्य के रुझानों को निर्धारित करने के लिए 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)


अधिक