এই কৌশলটি গড় পরিমাপ লাইন, ব্রিন ব্যান্ড এবং সময়কালের পরিমাণের মতো একাধিক সূচক ব্যবহার করে, দামের প্রবণতার শুরু এবং সমাপ্তি সনাক্ত করে, প্রবণতা ট্র্যাকিং অপারেশন পরিচালনা করে। কৌশলটি একাধিক সূচকের মাধ্যমে নিশ্চিত করে, কার্যকরভাবে ফিল্টার করতে পারে।
এই কৌশলটিতে নিম্নলিখিত মূল পদক্ষেপগুলি অন্তর্ভুক্ত রয়েছেঃ
দ্রুত গড় লাইন এবং ধীর গড় লাইন গণনা করুন। গড় লাইন গণনাটি VWAP ব্যবহার করে এবং বন্ধের মূল্যের পরিবর্তে, যা প্রকৃত লেনদেনের মূল্যকে আরও সঠিকভাবে প্রতিফলিত করে।
গড় পরিমাপ রেখার গড় মান গণনা করুন এবং এর ভিত্তিতে একটি ব্রিনের রেখা আঁকুন। ব্রিনের রেখাটি দামের অস্থিরতা প্রসারিত হয়েছে কিনা তা নির্ধারণ করে এবং প্রবণতা শুরু করার পরামর্শ দেয়।
ট্রেডিংয়ের পরিমাণ বাড়ছে কিনা তা নির্ধারণের জন্য টাইমসেট ভলিউম (টিএসভি) সূচকটি প্রবর্তন করা হয়েছে, যা প্রবণতা নিশ্চিত করে।
যখন দ্রুত গড়রেখায় ধীরগতির গড়রেখা অতিক্রম করা হয়, দামটি বুলিনের উপরে থাকে এবং TSV 0 এর চেয়ে বড় হয়, তখন একটি ক্রয় সংকেত উত্পন্ন হয়; বিপরীতে একটি বিক্রয় সংকেত আসে।
গড় লাইন প্রত্যাহার এবং ব্রিনের নিচের রেলগুলিকে স্টপ-ড্রপ সমতল সংকেত হিসাবে ব্যবহার করুন।
একাধিক সূচক ব্যবহার করে নিশ্চিতকরণ, কার্যকরভাবে জাল ব্রেকআপগুলি ফিল্টার করে, প্রবণতা শুরু করে
গড় পরিমাপ রেখা গণনা পদ্ধতি প্রকৃত লেনদেনের মূল্যকে আরো সঠিকভাবে প্রতিফলিত করে
প্রবণতা আছে কি না তা নির্ধারণের জন্য অস্থিরতার পরিমাপের সাথে মিলিত
ট্রেডিং ভলিউম সূচক বৃদ্ধি, প্রবণতা উন্নয়ন নিশ্চিত
যুক্তিসঙ্গত স্টপ লস এবং স্টপ স্টপ মান নির্ধারণ করুন এবং ঝুঁকি নিয়ন্ত্রণ করুন
প্যারামিটারগুলি কনফিগারযোগ্য এবং নমনীয়ভাবে সর্বোত্তম অবস্থায় সামঞ্জস্য করা যায়
প্যারামিটার অপ্টিমাইজেশান সমস্যা
গড় পরিমাপ রেখা এবং ব্রিন বন্ডে সমস্যা রয়েছে, যার ফলে ক্ষতির সময়সীমা শেষ হতে পারে না
সময়সীমা সূচক প্যারামিটার সেটিং সংবেদনশীল, বিভিন্ন বাজারে সমন্বয় প্রয়োজন
মার্কেটের পুনরুদ্ধারে আরও ভুয়া সংকেত তৈরির সম্ভাবনা
লেনদেনের খরচ প্রভাব ছাড়াই প্রকৃত মুনাফা এবং লোকসান রিটার্ন ফলাফলের চেয়ে কম হবে
মেশিন লার্নিং পদ্ধতি ব্যবহার করে প্যারামিটার সেটটি স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করার চেষ্টা করুন
ডায়নামিক মুভিং স্টপ বা ট্র্যাকিং স্টপ সেট করুন যাতে লাভের উপর আরও ভাল লকিং করা যায়
লেনদেনের ভলিউম শক্তির সূচক চালু করুন যাতে ভুল লেনদেনের ফলে ভলিউম বিভ্রান্তি এড়ানো যায়
ঢেউ তত্ত্বের সাথে মিলিত, প্রবণতার প্রথম, মধ্য এবং শেষ পর্যায়ে অবস্থান করে, গতিশীলভাবে কৌশলগত প্যারামিটারগুলিকে সামঞ্জস্য করে
প্রকৃত লেনদেনের খরচ প্রভাব বিবেচনা করুন, খরচ কার্যকারিতা নিয়ন্ত্রণের জন্য ন্যূনতম স্টপ প্রস্থ সেট করুন
এই কৌশলটি একাধিক সূচককে সমন্বিতভাবে বিবেচনা করে যা একটি ভাল প্রবণতা সনাক্তকরণ ক্ষমতা সরবরাহ করে যা সত্যিকারের প্রবণতার শুরু এবং শেষের বিষয়ে কার্যকরভাবে বিচার করতে পারে। প্যারামিটার অপ্টিমাইজেশন, স্টপ লস অপ্টিমাইজেশন এবং ফিল্টার অপ্টিমাইজেশনের মাধ্যমে কৌশলটির স্থায়িত্ব আরও বাড়ানো যেতে পারে। তবে সামগ্রিকভাবে, ট্রেন্ড ট্র্যাকিং কৌশল হিসাবে, এর প্রত্যাহার এবং ক্ষতির হার এখনও কিছু ঝুঁকি বহন করতে হবে। ব্যবসায়ীদের সুযোগের জন্য ধৈর্য ধরে অপেক্ষা করা এবং কঠোর ঝুঁকি ব্যবস্থাপনার সচেতনতা প্রয়োজন।
/*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)