بولنگر بینڈز اور کالکن چینلز پر مبنی مومنٹم سکوز کی حکمت عملی


تخلیق کی تاریخ: 2024-01-30 17:33:49 آخر میں ترمیم کریں: 2024-01-30 17:33:49
کاپی: 0 کلکس کی تعداد: 869
1
پر توجہ دیں
1617
پیروکار

بولنگر بینڈز اور کالکن چینلز پر مبنی مومنٹم سکوز کی حکمت عملی

جائزہ

یہ LazyBear کی طرف سے تیار ایک متحرک دباؤ اشارے پر مبنی ایک مقداری ٹریڈنگ حکمت عملی ہے۔ یہ حکمت عملی برن بینڈ ، کیلکن چینلز اور متحرک اشارے کو مربوط کرتی ہے ، جس میں متعدد تکنیکی اشارے کے مجموعے کے ذریعہ اعلی جیت کی شرح کے ساتھ متحرک توڑ تجارت کی جاتی ہے۔

حکمت عملی کا اصول

اس حکمت عملی کا مرکزی اشارے LazyBear کا متحرک دباؤ اشارے ہے۔ اس اشارے سے یہ معلوم ہوتا ہے کہ کیا برن بینڈ کو کیلکن چینل کی طرف سے دباؤ دیا گیا ہے یا نہیں ، جب دباؤ ہوتا ہے تو ، مارکیٹ کو ایک ممکنہ پھوٹ پھوٹ کی طرف اشارہ کرتا ہے۔ دباؤ کے اشارے کے ساتھ مل کر اس کی سمت کا فیصلہ کرنے کے بعد ، جب دباؤ جاری ہوتا ہے تو مارکیٹ کے پھوٹ پھوٹ کا اندازہ لگایا جاسکتا ہے۔

خاص طور پر ، اس حکمت عملی میں پہلے 21 سائیکلوں کے بلین بینڈ کا حساب لگایا جاتا ہے ، جس میں قیمت کے معیاری فرق سے 2 گنا زیادہ چوڑائی ہوتی ہے۔ اس کے ساتھ ہی 20 سائیکلوں کے کیلکن چینل کا حساب لگایا جاتا ہے ، جس میں قیمت کے پھیلاؤ سے 1.5 گنا زیادہ چوڑائی ہوتی ہے۔ جب بلین بینڈ کو کیلکن چینل کی چوٹی سے کچل دیا جاتا ہے تو ، ایک دباؤ کا اشارہ جاری ہوتا ہے۔ اس کے علاوہ ، حکمت عملی میں قیمتوں کی قیمتوں کا حساب بھی لگایا جاتا ہے جو اس کی اپنی قیمت کی چوٹی کے وسط کے مقابلے میں ایک مدت کے دوران ہے۔ جب دباؤ ہوتا ہے تو ، دباؤ کی مقدار کے اشارے کی سمت کے ساتھ مل کر ، خریدنے یا بیچنے کا فیصلہ کریں۔

باہر نکلنے پر ، جب متحرک اشارے کا رنگ سرمئی ہوجاتا ہے ، پوزیشنوں کو صاف کرتا ہے ، جس کا مطلب ہے کہ دباؤ کی حالت ختم ہوگئی ہے ، تو رجحان الٹ ہوسکتا ہے۔

اسٹریٹجک فوائد

  1. تجارتی فیصلوں کی درستگی کو بہتر بنانے کے لئے متعدد تکنیکی اشارے کو مربوط کرنا

اس حکمت عملی میں برن بینڈ ، کیلکن چینلز اور متحرک اشارے شامل ہیں ، جو ان اشارے کے مجموعی تعلقات کا اندازہ کرکے تجارتی فیصلوں کی درستگی کو بڑھا سکتے ہیں اور غلط تجارت کے امکانات کو کم کرسکتے ہیں۔

  1. طاقت دباؤ کے مقامات کی درستگی ، منافع بخش صلاحیت

متحرک دباؤ کی حکمت عملی مارکیٹ کے پھوٹ پڑنے کے اہم نکات پر قبضہ کرسکتی ہے ، یہ نکات اکثر اہم سمت کے فیصلے کرنے کے لئے مارکیٹ کے موڑ کے نقطہ نظر ہوتے ہیں۔ اگر صحیح فیصلہ کیا جائے تو ، اس کے بعد کا رجحان طویل عرصے تک چلتا ہے ، لہذا حکمت عملی کے لئے ممکنہ منافع کی گنجائش بہت زیادہ ہے۔

  1. اعلی کامیابی کی شرح کے ساتھ اہم ٹرانزیکشنز

اس حکمت عملی کے لئے منتخب کردہ داخلی نقطہ ، جو برن بینڈ اور کارکن چینل کے دباؤ کے مقامات پر واقع ہے ، اس میں کامیابی کی شرح بہت زیادہ ہے جب اشارے کے انضمام کے ذریعہ فیصلہ کیا جاتا ہے ، اس کے مقابلے میں بے ترتیب بریک ٹریڈنگ کے مقابلے میں۔

اسٹریٹجک رسک

  1. برن بینڈ اور کیلکن چینل پیرامیٹرز کے لئے خطرہ ترتیب

برن بینڈ اور کیلکن چینل میں دورانیہ پیرامیٹرز اور بینڈوتھ پیرامیٹرز کی ترتیبات حکمت عملی کے نتائج پر بہت زیادہ اثر انداز ہوتی ہیں۔ اگر پیرامیٹرز کو غیر مناسب طریقے سے ترتیب دیا گیا ہو تو ، اس سے غلط فہمی پیدا ہوسکتی ہے۔ اس کے لئے بہت زیادہ ریٹرننگ کے ذریعے بہترین پیرامیٹرز تلاش کرنے کی ضرورت ہے۔

  1. ناکامی کا خطرہ

کسی بھی بریک ٹریڈ میں ناکامی کا خطرہ ہوتا ہے ، اور جب قیمت اس حکمت عملی کے منتخب کردہ نقطہ سے تجاوز کر جاتی ہے تو ، اس میں ایک بار پھر واپسی کا امکان ہوتا ہے ، جس سے نقصان ہوتا ہے۔ اس کو سختی سے روکنے کی ضرورت ہے۔

  1. رجحان کے الٹ جانے کا خطرہ

جب دباؤ کی حالت ختم ہوجاتی ہے تو ، حکمت عملی تمام پوزیشنوں کو ختم کردیتی ہے۔ تاہم ، بعض اوقات قیمت کا رجحان جاری رہ سکتا ہے ، جس سے حکمت عملی کے جلد باہر نکلنے کا خطرہ ہوتا ہے۔ اس کے لئے باہر جانے کے فیصلے کی منطق کو بہتر بنانے کی ضرورت ہے۔

حکمت عملی کی اصلاح کی سمت

  1. پیرامیٹرز کو بہتر بنائیں

بہتر پیرامیٹرز کی مدت اور بینڈوڈتھ کی ترتیبات کو تلاش کرنے کے لئے، حکمت عملی کی کارکردگی کو بڑھانے کے لئے، برن بینڈ اور کیلکن چینل کے لئے بہتر پیرامیٹرز کی مدت اور بینڈوڈتھ کی ترتیبات کو تلاش کرنے کے لئے، زیادہ سے زیادہ اعداد و شمار کی جانچ پڑتال کی غلطیوں کو تلاش کرنے کے لئے.

  1. زیادہ سے زیادہ سٹاپ نقصان کی حکمت عملی

ایک متحرک سٹاپ یا ایکوجنک سٹاپ قائم کیا جاسکتا ہے ، جس میں حکمت عملی کو زیادہ سے زیادہ واپسی پر قابو پانے کے لئے قیمتوں میں ردوبدل کے وقت فوری طور پر روک دیا جاتا ہے۔

  1. دوبارہ داخلے کی شرائط میں اضافہ

جب حکمت عملی پوزیشن سے باہر نکل جاتی ہے تو ، کچھ دوبارہ داخل ہونے کی شرائط طے کی جاسکتی ہیں ، اور اگر رجحان جاری رہتا ہے تو ، وہ دوبارہ میدان میں داخل ہوسکتے ہیں۔

  1. مزید اشارے کے ساتھ

ایک جامع حکمت عملی تشکیل دینے کے لئے ، جس میں زیادہ سے زیادہ مختلف اقسام کے اشارے شامل ہوں ، جیسے کہ دیگر اتار چڑھاؤ کے اشارے ، حجم کے اشارے وغیرہ ، فیصلہ سازی کی درستگی کو بہتر بنانے کے لئے انڈیکیٹر انٹیگریٹڈ۔

خلاصہ کریں۔

اس حکمت عملی میں برن بینڈ ، کیلکن چینل اور حرکیات کے اشارے شامل ہیں ، ان اشارے کے تعلقات کا فیصلہ کرکے ، اعلی کامیابی کی شرح کے ساتھ داخلہ کے نقطہ نظر کو منتخب کریں۔ پیرامیٹرز کی اصلاح ، اسٹاپ نقصان کی حکمت عملی ، دوبارہ داخلہ کی شرائط اور جامع اشارے کے انضمام جیسے متعدد پہلوؤں میں اصلاح کی گنجائش ہے ، جس سے حکمت عملی کی تاثیر کو مزید بڑھا دیا جاسکتا ہے۔

حکمت عملی کا ماخذ کوڈ
/*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")