یہ حکمت عملی کیلنڈر چینل اشارے کی بنیاد پر تیار کی گئی ہے تاکہ جب قیمت چینل کے اوپری اور نچلے بینڈ کو توڑ دے تو تجارتی سگنل تیار کیے جائیں۔ یہ حکمت عملی صرف لمبی ہوتی ہے ، اگر فروخت کا اشارہ ظاہر ہوتا ہے تو ، یہ پوزیشن کو غیر جانبدار تک برابر کردے گی۔
اسٹریٹجی میں ایس ایم اے اور اے ٹی آر کا استعمال کیلنڈر چینل کی تعمیر کے لئے کیا جاتا ہے۔ اوپری اور نچلے بینڈ کا حساب اس طرح کیا جاتا ہے:
اوپری بینڈ = SMA + ATR * ضرب کم بینڈ = SMA - ATR * ضرب
جب قیمت اوپری بینڈ سے اوپر ہوتی ہے تو ، خرید کا اشارہ پیدا ہوتا ہے۔ جب قیمت نچلی بینڈ سے نیچے ہوتی ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔
چونکہ یہ صرف طویل عرصے تک جاتا ہے، اگر فروخت کا اشارہ ظاہر ہوتا ہے، تو یہ پچھلے احکامات کو منسوخ کرے گا اور پوزیشن کو برابر کرے گا.
منطق یہ ہے:
اس حکمت عملی کے فوائد:
کچھ خطرات بھی ہیں:
حل:
حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
یہ حکمت عملی مارکیٹ کے رجحانات کو آسان کیلٹنر چینل قوانین کے ساتھ مؤثر طریقے سے پکڑتی ہے۔ منطق واضح اور سمجھنے میں آسان ہے۔ اگرچہ باہر نکلنے اور مختصر ماڈیول کی کمی ہے ، لیکن اس میں پیرامیٹر ٹیوننگ ، اسٹاپ شامل کرنے ، مختصر جانے وغیرہ جیسے بہتری کی بڑی صلاحیت موجود ہے۔ مجموعی طور پر ایک قیمتی مقدار کی حکمت عملی جو گہری تحقیق اور درخواست کے قابل ہے۔
/*backtest start: 2023-11-24 00:00:00 end: 2023-12-24 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Keltner Channel Strategy", overlay=true) source = close useTrueRange = input(true) length = input(20, minval=1) mult = input(1.0) ma = sma(source, length) range = useTrueRange ? tr : high - low rangema = sma(range, length) upper = ma + rangema * mult lower = ma - rangema * mult crossUpper = crossover(source, upper) crossLower = crossunder(source, lower) bprice = 0.0 bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1]) sprice = 0.0 sprice := crossLower ? low -syminfo.mintick : nz(sprice[1]) crossBcond = false crossBcond := crossUpper ? true : na(crossBcond[1]) ? false : crossBcond[1] crossScond = false crossScond := crossLower ? true : na(crossScond[1]) ? false : crossScond[1] cancelBcond = crossBcond and (source < ma or high >= bprice ) cancelScond = crossScond and (source > ma or low <= sprice ) if (cancelBcond) strategy.cancel("KltChLE") if (crossUpper) strategy.entry("KltChLE", strategy.long, stop=bprice, comment="KltChLE") if (cancelScond) strategy.cancel("KltChSE") if (crossLower) strategy.entry("KltChSE", strategy.short, stop=sprice, comment="KltChSE") //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)