
یہ LazyBear کی طرف سے تیار ایک متحرک دباؤ اشارے پر مبنی ایک مقداری ٹریڈنگ حکمت عملی ہے۔ یہ حکمت عملی برن بینڈ ، کیلکن چینلز اور متحرک اشارے کو مربوط کرتی ہے ، جس میں متعدد تکنیکی اشارے کے مجموعے کے ذریعہ اعلی جیت کی شرح کے ساتھ متحرک توڑ تجارت کی جاتی ہے۔
اس حکمت عملی کا مرکزی اشارے LazyBear کا متحرک دباؤ اشارے ہے۔ اس اشارے سے یہ معلوم ہوتا ہے کہ کیا برن بینڈ کو کیلکن چینل کی طرف سے دباؤ دیا گیا ہے یا نہیں ، جب دباؤ ہوتا ہے تو ، مارکیٹ کو ایک ممکنہ پھوٹ پھوٹ کی طرف اشارہ کرتا ہے۔ دباؤ کے اشارے کے ساتھ مل کر اس کی سمت کا فیصلہ کرنے کے بعد ، جب دباؤ جاری ہوتا ہے تو مارکیٹ کے پھوٹ پھوٹ کا اندازہ لگایا جاسکتا ہے۔
خاص طور پر ، اس حکمت عملی میں پہلے 21 سائیکلوں کے بلین بینڈ کا حساب لگایا جاتا ہے ، جس میں قیمت کے معیاری فرق سے 2 گنا زیادہ چوڑائی ہوتی ہے۔ اس کے ساتھ ہی 20 سائیکلوں کے کیلکن چینل کا حساب لگایا جاتا ہے ، جس میں قیمت کے پھیلاؤ سے 1.5 گنا زیادہ چوڑائی ہوتی ہے۔ جب بلین بینڈ کو کیلکن چینل کی چوٹی سے کچل دیا جاتا ہے تو ، ایک دباؤ کا اشارہ جاری ہوتا ہے۔ اس کے علاوہ ، حکمت عملی میں قیمتوں کی قیمتوں کا حساب بھی لگایا جاتا ہے جو اس کی اپنی قیمت کی چوٹی کے وسط کے مقابلے میں ایک مدت کے دوران ہے۔ جب دباؤ ہوتا ہے تو ، دباؤ کی مقدار کے اشارے کی سمت کے ساتھ مل کر ، خریدنے یا بیچنے کا فیصلہ کریں۔
باہر نکلنے پر ، جب متحرک اشارے کا رنگ سرمئی ہوجاتا ہے ، پوزیشنوں کو صاف کرتا ہے ، جس کا مطلب ہے کہ دباؤ کی حالت ختم ہوگئی ہے ، تو رجحان الٹ ہوسکتا ہے۔
اس حکمت عملی میں برن بینڈ ، کیلکن چینلز اور متحرک اشارے شامل ہیں ، جو ان اشارے کے مجموعی تعلقات کا اندازہ کرکے تجارتی فیصلوں کی درستگی کو بڑھا سکتے ہیں اور غلط تجارت کے امکانات کو کم کرسکتے ہیں۔
متحرک دباؤ کی حکمت عملی مارکیٹ کے پھوٹ پڑنے کے اہم نکات پر قبضہ کرسکتی ہے ، یہ نکات اکثر اہم سمت کے فیصلے کرنے کے لئے مارکیٹ کے موڑ کے نقطہ نظر ہوتے ہیں۔ اگر صحیح فیصلہ کیا جائے تو ، اس کے بعد کا رجحان طویل عرصے تک چلتا ہے ، لہذا حکمت عملی کے لئے ممکنہ منافع کی گنجائش بہت زیادہ ہے۔
اس حکمت عملی کے لئے منتخب کردہ داخلی نقطہ ، جو برن بینڈ اور کارکن چینل کے دباؤ کے مقامات پر واقع ہے ، اس میں کامیابی کی شرح بہت زیادہ ہے جب اشارے کے انضمام کے ذریعہ فیصلہ کیا جاتا ہے ، اس کے مقابلے میں بے ترتیب بریک ٹریڈنگ کے مقابلے میں۔
برن بینڈ اور کیلکن چینل میں دورانیہ پیرامیٹرز اور بینڈوتھ پیرامیٹرز کی ترتیبات حکمت عملی کے نتائج پر بہت زیادہ اثر انداز ہوتی ہیں۔ اگر پیرامیٹرز کو غیر مناسب طریقے سے ترتیب دیا گیا ہو تو ، اس سے غلط فہمی پیدا ہوسکتی ہے۔ اس کے لئے بہت زیادہ ریٹرننگ کے ذریعے بہترین پیرامیٹرز تلاش کرنے کی ضرورت ہے۔
کسی بھی بریک ٹریڈ میں ناکامی کا خطرہ ہوتا ہے ، اور جب قیمت اس حکمت عملی کے منتخب کردہ نقطہ سے تجاوز کر جاتی ہے تو ، اس میں ایک بار پھر واپسی کا امکان ہوتا ہے ، جس سے نقصان ہوتا ہے۔ اس کو سختی سے روکنے کی ضرورت ہے۔
جب دباؤ کی حالت ختم ہوجاتی ہے تو ، حکمت عملی تمام پوزیشنوں کو ختم کردیتی ہے۔ تاہم ، بعض اوقات قیمت کا رجحان جاری رہ سکتا ہے ، جس سے حکمت عملی کے جلد باہر نکلنے کا خطرہ ہوتا ہے۔ اس کے لئے باہر جانے کے فیصلے کی منطق کو بہتر بنانے کی ضرورت ہے۔
بہتر پیرامیٹرز کی مدت اور بینڈوڈتھ کی ترتیبات کو تلاش کرنے کے لئے، حکمت عملی کی کارکردگی کو بڑھانے کے لئے، برن بینڈ اور کیلکن چینل کے لئے بہتر پیرامیٹرز کی مدت اور بینڈوڈتھ کی ترتیبات کو تلاش کرنے کے لئے، زیادہ سے زیادہ اعداد و شمار کی جانچ پڑتال کی غلطیوں کو تلاش کرنے کے لئے.
ایک متحرک سٹاپ یا ایکوجنک سٹاپ قائم کیا جاسکتا ہے ، جس میں حکمت عملی کو زیادہ سے زیادہ واپسی پر قابو پانے کے لئے قیمتوں میں ردوبدل کے وقت فوری طور پر روک دیا جاتا ہے۔
جب حکمت عملی پوزیشن سے باہر نکل جاتی ہے تو ، کچھ دوبارہ داخل ہونے کی شرائط طے کی جاسکتی ہیں ، اور اگر رجحان جاری رہتا ہے تو ، وہ دوبارہ میدان میں داخل ہوسکتے ہیں۔
ایک جامع حکمت عملی تشکیل دینے کے لئے ، جس میں زیادہ سے زیادہ مختلف اقسام کے اشارے شامل ہوں ، جیسے کہ دیگر اتار چڑھاؤ کے اشارے ، حجم کے اشارے وغیرہ ، فیصلہ سازی کی درستگی کو بہتر بنانے کے لئے انڈیکیٹر انٹیگریٹڈ۔
اس حکمت عملی میں برن بینڈ ، کیلکن چینل اور حرکیات کے اشارے شامل ہیں ، ان اشارے کے تعلقات کا فیصلہ کرکے ، اعلی کامیابی کی شرح کے ساتھ داخلہ کے نقطہ نظر کو منتخب کریں۔ پیرامیٹرز کی اصلاح ، اسٹاپ نقصان کی حکمت عملی ، دوبارہ داخلہ کی شرائط اور جامع اشارے کے انضمام جیسے متعدد پہلوؤں میں اصلاح کی گنجائش ہے ، جس سے حکمت عملی کی تاثیر کو مزید بڑھا دیا جاسکتا ہے۔
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//All credits to LazyBear. All I did was turn it into a strategy!
strategy(title = "SQZMOM STRAT", overlay=false)
// --- GENERAL INPUTS ---
FromMonth = input(defval = 4, title = "From Month", minval = 1, maxval = 12)
FromYear = input(defval = 2020, title = "From Year", minval = 2012)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
FromDay = 1
ToDay = 1
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true
get_round(value, precision) => round(value * (pow(10, precision))) / pow(10, precision)
trade_leverage = input(1, title = "Trade - Leverage", step = 0.25)
trade_risk = input(100, title = "Trade - Risk Percent", type = input.float, step = 0.1, minval = 0.1, maxval = 100)
tradeType = input("LONG", title="What trades should be taken : ", options=["LONG", "SHORT", "BOTH"])
// --- SQZMOM CODE
length = input(21, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")
useTrueRange = input(true, title="Use TrueRange (KC)", type=input.bool)
// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev
// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC
sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz = (sqzOn == false) and (sqzOff == false)
val = linreg(source - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)),sma(close,lengthKC)), lengthKC,0)
bcolor = color.gray
if (val > 0 and val > nz(val[1]))
bcolor := color.green
if (val < 0 and val < nz(val[1]))
bcolor := color.red
scolor = noSqz ? color.blue : sqzOn ? color.black : color.gray
plot(val, color=bcolor, style=plot.style_histogram, linewidth=4)
plot(0, color=scolor, style=plot.style_cross, linewidth=2)
// --- VWMA CODE ---
useVWMA = input(false, title = "Use VWMA to selectively long/short?", type = input.bool)
lengthVWMA=input(42, title = "VWMA Length", step = 1, minval = 1)
useCV=input(false, type=input.bool, title="Use Cumulative Volume for VWMA?")
nbfs = useCV ? cum(volume) : sum(volume, lengthVWMA)
medianSrc=close
calc_evwma(price, lengthVWMA, nb_floating_shares) => data = (nz(close[1]) * (nb_floating_shares - volume)/nb_floating_shares) + (volume*price/nb_floating_shares)
m=calc_evwma(medianSrc, lengthVWMA, nbfs)
// ---STRATEGY---
if ((tradeType == "LONG" or tradeType == "BOTH") and (m>0 or useVWMA == false))
longCondition = (val > 0 and noSqz == 0 and sqzOn == 0 and sqzOn[1] == 1)
if (longCondition)
contracts = get_round((strategy.equity * trade_leverage / close) * (trade_risk / 100), 4)
strategy.entry("LONG", strategy.long, qty = contracts, when = window())
if((tradeType == "SHORT" or tradeType == "BOTH") and (m<0 or useVWMA == false))
shortCondition = (val < 0 and noSqz == 0 and sqzOn == 0 and sqzOn[1] == 1)
if (shortCondition)
contracts = get_round((strategy.equity * trade_leverage / close) * (trade_risk / 100), 4)
strategy.entry("SHORT", strategy.short, qty = contracts, when = window())
if (bcolor == color.gray)
strategy.close("LONG")
strategy.close("SHORT")