اس حکمت عملی میں متعدد اشارے شامل ہیں جن میں حجم وزن والی اوسط قیمت ، بولنگر بینڈ اور وقت کے لحاظ سے تقسیم شدہ حجم شامل ہیں تاکہ قیمت کے رجحانات کے آغاز اور اختتام کی نشاندہی کی جاسکے اور رجحانات کی پیروی کی جاسکے۔ متعدد تصدیقیں غلط بریکآؤٹس کو مؤثر طریقے سے فلٹر کرسکتی ہیں۔
اسٹریٹیجی میں مندرجہ ذیل اہم اقدامات شامل ہیں:
تیز اور سست حجم وزن شدہ اوسط قیمت لائنوں کا حساب لگائیں۔ اصل تجارتی قیمت کو بہتر طور پر ظاہر کرنے کے لئے قریبی قیمت کے بجائے VWAP استعمال کیا جاتا ہے۔
بولنگر بینڈس کو پلاٹ کرنے کے لئے وی ڈبلیو اے پی لائنوں کا اوسط لیں ۔ بینڈس کے ذریعہ دکھائی جانے والی بڑھتی ہوئی اتار چڑھاؤ کا مطلب ہے کہ رجحان کا آغاز۔
تجارتی حجم میں اضافے کی تصدیق اور رجحان کی توثیق کرنے کے لئے وقت میں تقسیم شدہ حجم (TSV) متعارف کرایا جائے۔
جب تیز VWAP سست VWAP کے اوپر سے گزرتا ہے تو خریدنے کا اشارہ پیدا کرتا ہے ، قیمت بولنگر کے اوپری بینڈ سے اوپر ہوتی ہے ، اور TSV مثبت ہوتا ہے۔ جب الٹ ہوتا ہے تو سگنل فروخت کریں۔
VWAP پل بیک اور بولنگر کے نیچے والے بینڈ کو سٹاپ نقصان کے سگنل کے طور پر استعمال کریں۔
متعدد توثیقوں کو مؤثر طریقے سے جھوٹے بریک آؤٹ کو فلٹر کریں اور رجحان کے آغاز کی شناخت کریں
وی ڈبلیو اے پی کا حساب کتاب اصل تجارتی قیمت کو بہتر انداز میں ظاہر کرتا ہے
اتار چڑھاؤ کا اشارے فیصلہ کرتا ہے کہ آیا کوئی رجحان موجود ہے
تجارتی حجم رجحان کی تسلسل کی تصدیق کرتا ہے
معقول سٹاپ نقصان اور منافع لینے کے کنٹرول کا خطرہ
ترتیب دینے کے قابل پیرامیٹرز لچکدار اصلاح کی اجازت دیتے ہیں
متعدد اشارے کو بہتر بنانے میں دشواری
VWAP اور بولنگر بینڈ کی تاخیر کی نوعیت
مختلف مارکیٹوں کے لئے پیرامیٹرز کی ترتیب کے لئے حساس TSV
رینج سے منسلک مارکیٹوں میں مزید غلط سگنل
تجارتی اخراجات کو نظر انداز کرتا ہے، اصل P&L بیک ٹسٹ سے کم ہے
خودکار طور پر پیرامیٹر کے مجموعے کو بہتر بنانے کے لئے مشین لرننگ کا اطلاق کریں
منافع میں بہتر تالا لگانے کے لئے متحرک یا ٹریلنگ اسٹاپ نقصان مقرر کریں
اختلافات سے بچنے کے لئے حجم کی رفتار کے اشارے شامل کریں
رجحان کے مراحل کا تعین کرنے کے لئے ایلیٹ لہروں کو شامل کریں، اس کے مطابق پیرامیٹرز کو ایڈجسٹ کریں
تجارتی اخراجات پر غور کریں، لاگت کی کارکردگی کو کنٹرول کرنے کے لئے کم سے کم منافع کا ہدف مقرر کریں
یہ حکمت عملی متعدد اشارے کو مربوط کرکے ایک اچھی رجحان کی نشاندہی فراہم کرتی ہے۔ یہ حقیقی رجحانات کے آغاز اور اختتام کا مؤثر طریقے سے تعین کرسکتی ہے۔ پیرامیٹر کی اصلاح ، اسٹاپ نقصان کی اصلاح اور فلٹر کی اصلاح کے ذریعے استحکام میں مزید بہتری حاصل کی جاسکتی ہے۔ لیکن مجموعی طور پر ، رجحان کی پیروی کرنے والی حکمت عملی کے طور پر ، اس میں اب بھی کچھ سطحوں کی کمی اور خطرہ انعام کے تناسب ہوتے ہیں۔ تاجروں کو مواقع اور سخت رسک مینجمنٹ ذہنیت کا انتظار کرنے کے لئے صبر کی ضرورت ہے۔
/*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)