
اس حکمت عملی میں بنیادی طور پر مساوی لائن کراسنگ اصول کا استعمال کیا جاتا ہے ، جس میں آر ایس آئی اشارے کے الٹ سگنل کے ساتھ مل کر ، اور اپنی مرضی کے مطابق بائنری ٹریکنگ الگورتھم کو مساوی لائن کراس ٹریکنگ ٹریڈنگ کے ل. استعمال کیا جاتا ہے۔ حکمت عملی میں دو مختلف ادوار کی مساوی لائن کراسنگ کی پیروی کی جاتی ہے ، ایک تیز رفتار میڈین مختصر مدت کے رجحانات کی پیروی کرتی ہے ، اور دوسری سست رفتار میڈین طویل مدتی رجحانات کی پیروی کرتی ہے۔ جب تیز رفتار میڈین مختصر مدت کے رجحانات کو اوپر کی طرف سے عبور کرتی ہے تو ، خرید سکتے ہیں۔ جب تیز رفتار میڈین سست رفتار میڈین لائن کو نیچے کی طرف سے عبور کرتی ہے تو ، مختصر مدت کے رجحانات ختم ہوجاتے ہیں ، اور اس پر قبضہ کرنا چاہئے۔
VWAP میڈین لائن کا حساب لگانا جس میں لمبی مدت کے رجحانات اور مختصر مدت کے رجحانات کی نمائندگی کرنے والے مختلف پیرامیٹرز کے دو سیٹ ہیں۔
سست اوسط اور تیز اوسط کے طور پر بالترتیب پردے کی لائن اور بیس لائن کے دو سیٹوں کا اوسط لینا
بلین بینڈ انڈیکیٹر کا حساب لگانا اور اس سے تجاوز کرنا
ٹرانزیکشن حجم توانائی کے لئے ٹی ایس وی کا حساب لگانا
RSI اشارے کا حساب لگانا اور زیادہ خریدنے اور زیادہ فروخت کرنے کا فیصلہ کرنا
داخلے کی شرائط:
شرائط:
دوہری مساوی نظام کا استعمال کرتے ہوئے، ایک ہی وقت میں طویل اور قلیل مدتی رجحانات پر قبضہ کر سکتے ہیں
RSI اشارے اوورلوڈ زون میں خریدنے اور اوورلوڈ زون میں فروخت کرنے سے گریز کریں
TSV اشارے کافی مقدار میں تجارت کو یقینی بناتے ہیں جو رجحان کی حمایت کرتے ہیں
برین بینڈ کے اہم نقطہ نظر کا استعمال
متعدد اشارے کے مجموعے ، جعلی کامیابیوں کو مؤثر طریقے سے فلٹر کرنے کے لئے
مساوی نظام غلط سگنل پیدا کرنے کے لئے آسان ہے، معاون اشارے فلٹرنگ کی ضرورت ہے
RSI اشارے کے پیرامیٹرز کو بہتر بنانے کی ضرورت ہے ، ورنہ خرید و فروخت کی جگہ سے محروم ہوسکتا ہے
TSV اشارے بھی پیرامیٹرز کے لئے حساس ہیں اور احتیاط سے جانچ کی ضرورت ہے
برن کے ساتھ ریل پر توڑنے کے لئے ممکنہ طور پر جعلی توڑ کی ضرورت ہے
کثیر اشارے کا مجموعہ ، پیرامیٹرز کو بہتر بنانا مشکل ہے ، زیادہ بہتر بنانا آسان ہے
ناکافی ٹریننگ اور ٹیسٹ کے اعداد و شمار سے منحنی فٹ ہونے کا امکان ہے
زیادہ سے زیادہ سائیکل پیرامیٹرز کی جانچ پڑتال کریں اور بہترین پیرامیٹرز کا مجموعہ تلاش کریں
MACD، KD متبادل یا RSI کے ساتھ دوسرے اشارے کی کوشش کریں
پیرامیٹرز کو بہتر بنانے کے لئے واک فارورڈ تجزیہ کا استعمال کریں
نقصانات کو کنٹرول کرنے کے لئے اضافی اسٹاپ نقصانات کی حکمت عملی
مشین لرننگ ماڈل میں معاون سگنل کی تشخیص شامل کرنے پر غور کریں
مختلف مارکیٹوں کے لئے پیرامیٹرز کو ایڈجسٹ کریں ، ایک ہی پیرامیٹرز کے مجموعے پر زیادہ انحصار نہ کریں
اس حکمت عملی میں دوہری مساوی لائن سسٹم کے ذریعہ طویل اور قلیل مدتی رجحانات کو پکڑنے کے ساتھ ساتھ آر ایس آئی ، ٹی ایس وی ، اور بلین بینڈ جیسے متعدد اشارے فلٹرنگ سگنل استعمال کیے جاتے ہیں۔ حکمت عملی کا فائدہ یہ ہے کہ طویل عرصے تک بڑھتی ہوئی لہروں کو پکڑنے کے لئے اس کا استعمال کیا جاسکتا ہے۔ تاہم ، کچھ غلط سگنل کا خطرہ بھی موجود ہے۔ اس خطرے کو کم کرنے کے لئے پیرامیٹرز کو مزید بہتر بنانے اور اسٹاپ نقصان کو کنٹرول کرنے کی ضرورت ہے۔
/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 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.
// "Vidya" code which used in this strategy was written by "everget" active on https://tr.tradingview.com/u/everget/
strategy("HYE Combo Market [Strategy] (Vwap Mean Reversion + Trend Hunter)", overlay = true, initial_capital = 1000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_value = 0.025)
//Strategy inputs
source = input(title = "Source", defval = close, group = "Mean Reversion Strategy Inputs")
smallcumulativePeriod = input(title = "Small VWAP", defval = 8, group = "Mean Reversion Strategy Inputs")
bigcumulativePeriod = input(title = "Big VWAP", defval = 10, group = "Mean Reversion Strategy Inputs")
meancumulativePeriod = input(title = "Mean VWAP", defval = 50, group = "Mean Reversion Strategy Inputs")
percentBelowToBuy = input(title = "Percent below to buy %", defval = 2, group = "Mean Reversion Strategy Inputs")
rsiPeriod = input(title = "Rsi Period", defval = 2, group = "Mean Reversion Strategy Inputs")
rsiEmaPeriod = input(title = "Rsi Ema Period", defval = 5, group = "Mean Reversion Strategy Inputs")
rsiLevelforBuy = input(title = "Maximum Rsi Level for Buy", defval = 30, group = "Mean Reversion Strategy Inputs")
slowtenkansenPeriod = input(9, minval=1, title="Slow Tenkan Sen VWAP Line Length", group = "Trend Hunter Strategy Inputs")
slowkijunsenPeriod = input(13, minval=1, title="Slow Kijun Sen VWAP Line Length", group = "Trend Hunter Strategy Inputs")
fasttenkansenPeriod = input(3, minval=1, title="Fast Tenkan Sen VWAP Line Length", group = "Trend Hunter Strategy Inputs")
fastkijunsenPeriod = input(7, minval=1, title="Fast Kijun Sen VWAP Line Length", group = "Trend Hunter Strategy Inputs")
BBlength = input(20, minval=1, title= "Bollinger Band Length", group = "Trend Hunter Strategy Inputs")
BBmult = input(2.0, minval=0.001, maxval=50, title="Bollinger Band StdDev", group = "Trend Hunter Strategy Inputs")
tsvlength = input(20, minval=1, title="TSV Length", group = "Trend Hunter Strategy Inputs")
tsvemaperiod = input(7, minval=1, title="TSV Ema Length", group = "Trend Hunter Strategy Inputs")
length = input(title="Vidya Length", type=input.integer, defval=20, group = "Trend Hunter Strategy Inputs")
src = input(title="Vidya Source", type=input.source, defval= hl2 , group = "Trend Hunter Strategy Inputs")
// Vidya Calculation
getCMO(src, length) =>
mom = change(src)
upSum = sum(max(mom, 0), length)
downSum = sum(-min(mom, 0), length)
out = (upSum - downSum) / (upSum + downSum)
out
cmo = abs(getCMO(src, length))
alpha = 2 / (length + 1)
vidya = 0.0
vidya := src * alpha * cmo + nz(vidya[1]) * (1 - alpha * cmo)
// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
defval=1, minval=1, maxval=31, group = "Strategy Date Range")
startMonth = input(title="Start Month", type=input.integer,
defval=1, minval=1, maxval=12, group = "Strategy Date Range")
startYear = input(title="Start Year", type=input.integer,
defval=2000, minval=1800, maxval=2100, group = "Strategy Date Range")
endDate = input(title="End Date", type=input.integer,
defval=31, minval=1, maxval=31, group = "Strategy Date Range")
endMonth = input(title="End Month", type=input.integer,
defval=12, minval=1, maxval=12, group = "Strategy Date Range")
endYear = input(title="End Year", type=input.integer,
defval=2021, minval=1800, maxval=2100, group = "Strategy Date Range")
inDateRange = true
// Mean Reversion Strategy Calculation
typicalPriceS = (high + low + close) / 3
typicalPriceVolumeS = typicalPriceS * volume
cumulativeTypicalPriceVolumeS = sum(typicalPriceVolumeS, smallcumulativePeriod)
cumulativeVolumeS = sum(volume, smallcumulativePeriod)
smallvwapValue = cumulativeTypicalPriceVolumeS / cumulativeVolumeS
typicalPriceB = (high + low + close) / 3
typicalPriceVolumeB = typicalPriceB * volume
cumulativeTypicalPriceVolumeB = sum(typicalPriceVolumeB, bigcumulativePeriod)
cumulativeVolumeB = sum(volume, bigcumulativePeriod)
bigvwapValue = cumulativeTypicalPriceVolumeB / cumulativeVolumeB
typicalPriceM = (high + low + close) / 3
typicalPriceVolumeM = typicalPriceM * volume
cumulativeTypicalPriceVolumeM = sum(typicalPriceVolumeM, meancumulativePeriod)
cumulativeVolumeM = sum(volume, meancumulativePeriod)
meanvwapValue = cumulativeTypicalPriceVolumeM / cumulativeVolumeM
rsiValue = rsi(source, rsiPeriod)
rsiEMA = ema(rsiValue, rsiEmaPeriod)
buyMA = ((100 - percentBelowToBuy) / 100) * bigvwapValue[0]
inTrade = strategy.position_size > 0
notInTrade = strategy.position_size <= 0
if(crossunder(smallvwapValue, buyMA) and rsiEMA < rsiLevelforBuy and close < meanvwapValue and inDateRange and notInTrade)
strategy.entry("BUY-M", strategy.long)
if(close > meanvwapValue or not inDateRange)
strategy.close("BUY-M")
// Trend Hunter Strategy Calculation
// 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 close > vidya and inDateRange and notInTrade)
strategy.entry("BUY-T", strategy.long)
if((fastleadLine < fastleadLine[1] and slowleadLine < slowleadLine[1]) or not inDateRange)
strategy.close("BUY-T")
// Plots
plot(meanvwapValue, title="MEAN VWAP", linewidth=2, color=color.yellow)
//plot(vidya, title="VIDYA", linewidth=2, color=color.green)
//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)
//plot(smallvwapValue, color=#13C425, linewidth=2)
//plot(bigvwapValue, color=#CA1435, linewidth=2)