সঞ্চয় পর্যায়ের কৌশলগুলির পরিমাণগত সনাক্তকরণ


সৃষ্টির তারিখ: 2024-02-20 11:29:57 অবশেষে সংশোধন করুন: 2024-02-20 11:29:57
অনুলিপি: 0 ক্লিকের সংখ্যা: 589
1
ফোকাস
1617
অনুসারী

সঞ্চয় পর্যায়ের কৌশলগুলির পরিমাণগত সনাক্তকরণ

ওভারভিউ

এই কৌশলটি চলমান গড়, লেনদেনের পরিমাণের সূচক এবং দামের গতিশীলতার সূচকগুলির সাথে মিলিত করে একটি পরিমাণগত নিয়ম তৈরি করে যা স্টকগুলিকে একটি জমায়েত পর্যায়ে প্রবেশের সময়কে চিহ্নিত করতে ব্যবহৃত হয়। এই পর্যায়ে, স্টকগুলি সাধারণত দামের সমন্বয় এবং গতিশীল অবস্থায় থাকে, যা কম দামের প্রবেশের ভাল সুযোগ দেয়।

কৌশল নীতি

কৌশলটি 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)