اس حکمت عملی کی بنیاد لیزی بیئر
بولنگر بینڈ کے وسط بینڈ ، اوپری بینڈ اور نچلے بینڈ کا حساب لگائیں۔ وسط بینڈ بند قیمت کا n دن کا سادہ چلتا ہوا اوسط ہے ، اوپری اور نچلی بینڈ وسط بینڈ پلس / مائنس ایم بار بند قیمت کا n دن کا معیاری انحراف ہے۔
کلٹنر چینلز کی درمیانی لائن ، اوپری لائن اور نچلی لائن کا حساب لگائیں۔ درمیانی لائن قریبی قیمت کی n دن کی سادہ چلتی اوسط ہے ، اوپری اور نچلی لائنیں درمیانی لائن پلس / مائنس ایم گنا حقیقی رینج کی n دن کی سادہ چلتی اوسط ہیں۔
اس بات کا تعین کریں کہ کیا قیمت بولنگر بینڈ اور کیلنر چینلز کے اوپری یا نچلے بینڈ سے ٹوٹ کر کمپریشن اور توسیع کے نمونوں کی تشکیل کرتی ہے۔ کمپریشن اس وقت ہوتا ہے جب قیمت نچلے بینڈ سے ٹوٹ جاتی ہے ، جبکہ قیمت اوپری بینڈ سے ٹوٹنے پر توسیع ہوتی ہے۔
رفتار اشارے کے طور پر لکیری رجعت منحنی کی قدر کا حساب لگائیں۔ 0 کو اوپر سے عبور کرنا خریدنے کا اشارہ ہے جبکہ 0 کو نیچے سے عبور کرنا فروخت کا اشارہ ہے۔
حتمی تجارتی سگنل کا تعین کرنے کے لئے کمپریشن / توسیع کے نمونوں ، رفتار کی سمت ، اوسط فلٹرنگ اور دیگر شرائط کو یکجا کریں۔ خراب تجارت سے بچنے کے لئے تمام شرائط پوری ہونے پر ہی سگنل ٹرگر ہوتے ہیں۔
معیار کمپریشن اور توسیع کے پیٹرن کی نشاندہی کرنے کے لئے بولنگر بینڈ اور Keltner چینلز کی ڈبل فلٹریشن کا استعمال کرتے ہوئے.
رفتار کا اشارے چینل کے اشارے کی تکمیل کرتے ہوئے قیمتوں کے رجحان کی تبدیلیوں کو بروقت پکڑ سکتا ہے۔
منافع کے مواقع بڑھانے کے لیے ابتدائی داخلے کی اجازت دیں۔
Adopt multiple condition judgment to avoid over-trading during ranging markets. مختلف مارکیٹوں کے دوران زیادہ سے زیادہ تجارت سے بچنے کے لئے متعدد شرائط کا فیصلہ کریں۔
تکنیکی اشارے کے پیرامیٹرز مختلف مصنوعات اور پیرامیٹر کے مجموعوں کے مطابق اپنی مرضی کے مطابق ہیں.
بیک ٹسٹ ٹائم فریم کو مخصوص ادوار کے دوران بہتر بنانے کے لئے مقرر کیا جاسکتا ہے۔
رجحان کی پیروی کرنے والی حکمت عملیاں رجحان کے الٹ جانے پر نقصان کا شکار ہوتی ہیں۔
پیرامیٹر کی غلط ترتیبات سے زیادہ تجارت یا سگنل کی خراب کیفیت پیدا ہوسکتی ہے۔
تاریخی اعداد و شمار پر انحصار مستقبل میں مستحکم منافع کی ضمانت نہیں دے سکتا۔
بلیک سوان واقعات کی وجہ سے مارکیٹ میں ہلچل اور شدید قیمتوں میں اتار چڑھاؤ سے نمٹنے کے قابل نہیں.
غلط backtest وقت ونڈو کی ترتیبات overfitting کی قیادت کر سکتے ہیں.
بہترین مجموعہ تلاش کرنے کے لئے بولنگر بینڈ اور کیلنڈر چینلز کے پیرامیٹرز کو بہتر بنائیں.
ہر تجارت میں زیادہ سے زیادہ نقصان کو کنٹرول کرنے کے لئے ٹریلنگ سٹاپ نقصان کا اضافہ کرنے کا ٹیسٹ.
مخصوص مصنوعات اور مدت / پیرامیٹر مجموعے کے لئے مزید اصلاحات کی کوشش کریں.
مشین لرننگ ماڈلز کو مربوط کرنے کا جائزہ لیں تاکہ رجحانات کی تبدیلی کا اندازہ لگایا جا سکے۔
مختلف انٹری ترتیب اور پوزیشن سائزنگ کی حکمت عملی کی جانچ کریں.
تحقیق کریں کہ کس طرح رجحان کی تبدیلی کے اشاروں کی نشاندہی کریں اور وقت پر باہر نکلیں۔
یہ حکمت عملی قیمت کی رجحان کی سمت کا فیصلہ کرنے اور رجحان کی پیروی کرنے کے لئے متعدد تکنیکی اشارے کو مربوط کرتی ہے ، جس میں نسبتا strong مضبوط موافقت ہے۔ پیرامیٹرز کو اپنی مرضی کے مطابق کرکے اور متعدد حالت فلٹرز کا استعمال کرتے ہوئے ، یہ مؤثر طریقے سے تجارتی تعدد کو کنٹرول کرسکتا ہے اور سگنل کے معیار کو بہتر بنا سکتا ہے۔ لیکن الٹ ٹریڈز اور بلیک سوان واقعات کو اب بھی دیکھنا چاہئے۔
/*backtest start: 2022-11-06 00:00:00 end: 2023-11-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //Strategy based on LazyBear Squeeze Momentum Indicator //I added some custom feature and filters // // @author LazyBear // List of all my indicators: // https://docs.google.com/document/d/15AGCufJZ8CIUvwFJ9W-IKns88gkWOKBCvByMEvm5MLo/edit?usp=sharing // v2 - fixed a typo, where BB multipler was always stuck at 1.5. [Thanks @ucsgears] // strategy(shorttitle = "SQZMOM_LB", title="Strategy for Squeeze Momentum Indicator [LazyBear]", overlay=false, calc_on_every_tick=true, pyramiding=0,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD) length = input(14, title="BB Length") mult = input(2.0,title="BB MultFactor") lengthKC=input(16, title="KC Length") multKC = input(1.5, title="KC MultFactor") useTrueRange = input(true, title="Use TrueRange (KC)", type=bool) //FILTERS useExtremeOrders = input(false, title="Early entry on momentum change", type=bool) useMomAverage = input(false, title="Filter for Momenutum value", type=bool) MomentumMin = input(20, title="Min for momentum") // Calculate BB src = close basis = sma(src, length) dev = mult * stdev(src, length) upperBB = basis + dev lowerBB = basis - dev // Calculate KC ma = sma(src, 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(src - avg(avg(highest(high, lengthKC), lowest(low, lengthKC)),sma(close,lengthKC)), lengthKC,0) bcolor = iff( val > 0, iff( val > nz(val[1]), lime, green), iff( val < nz(val[1]), red, maroon)) scolor = noSqz ? blue : sqzOn ? black : aqua plot(val, color=bcolor, style=histogram, linewidth=4) plot(0, color=scolor, style=cross, linewidth=2) //LOGIC //momentum filter filterMom=useMomAverage?abs(val)>(MomentumMin/100000)?true:false:true //standard condition longCondition = scolor[1]!=aqua and scolor==aqua and bcolor==lime and filterMom exitLongCondition = bcolor==green and not useExtremeOrders shortCondition = scolor[1]!=aqua and scolor==aqua and bcolor==red and filterMom exitShortCondition = bcolor==maroon and not useExtremeOrders //early entry extremeLong= useExtremeOrders and scolor==aqua and bcolor==maroon and bcolor[1]!=bcolor[0] and filterMom exitExtLong = scolor==black or bcolor==red extremeShort = useExtremeOrders and scolor==aqua and bcolor==green and bcolor[1]!=bcolor[0] and filterMom exitExtShort = scolor==black or bcolor==lime //STRATEGY strategy.entry("SQ_Long", strategy.long, when = longCondition) strategy.close("SQ_Long",when = exitLongCondition ) strategy.entry("SQ_Long_Ext", strategy.long, when = extremeLong) strategy.close("SQ_Long_Ext",when = exitExtLong) //strategy.exit("exit Long", "SQ_Long", when = exitLongCondition) strategy.entry("SQ_Short", strategy.short, when = shortCondition) strategy.close("SQ_Short",when = exitShortCondition) strategy.entry("SQ_Short_Ext", strategy.short, when = extremeShort) strategy.close("SQ_Short_Ext",when = exitExtShort) //strategy.exit("exit Short", "SQ_Short", when = exitShortCondition) // // === Backtesting Dates === thanks to Trost // testPeriodSwitch = input(true, "Custom Backtesting Dates") // testStartYear = input(2018, "Backtest Start Year") // testStartMonth = input(1, "Backtest Start Month") // testStartDay = input(1, "Backtest Start Day") // testStartHour = input(0, "Backtest Start Hour") // testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,0) // testStopYear = input(2018, "Backtest Stop Year") // testStopMonth = input(12, "Backtest Stop Month") // testStopDay = input(14, "Backtest Stop Day") // testStopHour = input(23, "Backtest Stop Hour") // testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,testStopHour,0) // testPeriod() => // time >= testPeriodStart and time <= testPeriodStop ? true : false // isPeriod = testPeriodSwitch == true ? testPeriod() : true // // === /END // if not isPeriod // strategy.cancel_all() // strategy.close_all()