یہ حکمت عملی 4 گھنٹے اور روزانہ کے ٹائم فریم سے بریک آؤٹ سگنلز کو یکجا کرتی ہے اور ٹریڈنگ سگنلز جاری کرنے سے پہلے موم بتی کے نمونوں کی تصدیق کرتی ہے ، اس طرح ایک زیادہ قابل اعتماد بریک آؤٹ ٹریڈنگ حکمت عملی کو نافذ کرتی ہے۔
ڈبل تصدیق بریکآؤٹ حکمت عملی مختصر ٹائم فریم اور طویل ٹائم فریم سے بریکآؤٹ سگنلز کو جوڑتی ہے اور طویل مدتی اور قلیل مدتی رجحانات کے مابین مستقل مزاجی کو مدنظر رکھتے ہوئے زیادہ موثر بریکآؤٹ پوائنٹس کی نشاندہی کرتی ہے۔ خاص طور پر ، یہ حکمت عملی 4 گھنٹے اور روزانہ دونوں ٹائم فریموں پر حرکت پذیر اوسط کا حساب لگاتی ہے۔ خریدنے کا اشارہ اس وقت پیدا ہوتا ہے جب قلیل مدتی ایم اے طویل مدتی ایم اے سے تجاوز کرتا ہے ، اور فروخت سگنل کے لئے اس کے برعکس۔ اس کے علاوہ ، یہ حکمت عملی بدصورت قیمتوں کے اقدامات کے دوران پوزیشن کھولنے سے بچنے کے لئے تجارتی سگنل جاری کرنے سے پہلے موجودہ بار کے موم بتی پیٹرن کی تصدیق بھی کرتی ہے۔
دوہری تصدیق اور موم بتیوں کی فلٹرنگ کے طریقہ کار کے ذریعے، طویل معاوضے یا مختصر ٹریپس کے خطرات سے مؤثر طریقے سے بچا جاسکتا ہے، اس طرح ٹریڈنگ سگنل کی کیفیت کو بہتر بنایا جاسکتا ہے.
ڈبل ٹائم فریم بریک آؤٹ سگنل کے معیار کو بہتر بناتا ہے۔ قلیل مدتی اور طویل مدتی ٹائم فریم کا امتزاج سگنلز کو قلیل مدتی رجحانات کو ٹریک کرنے کے قابل بناتا ہے جبکہ پھر بھی طویل مدتی رجحانات کا حوالہ دیتا ہے۔
موم بتی کے نمونہ کی تصدیق سے غلط سگنل سے بچتا ہے۔ سگنل سے پہلے موم بتی کے نمونہ کی توثیق سے کچھ جعلی یا غلط بریک آؤٹ فلٹر ہوسکتے ہیں اور نقصانات سے بچ سکتے ہیں۔
خودکار اصلاح لچک فراہم کرتی ہے۔ اس حکمت عملی کے بریک آؤٹ پیرامیٹرز اور سائیکل پیرامیٹرز صارفین کے لئے مختلف تجارتی مصنوعات اور مارکیٹ کے حالات کے مطابق پیرامیٹرز کے بہترین امتزاج کا انتخاب کرنے کے لئے اپنی مرضی کے مطابق ہیں۔
ڈبل بریک آؤٹ کی حکمت عملی میں قیمتوں میں انتہائی اضافے کے خلاف نسبتا weak کمزور رجحان کا پیچھا کرنے کی صلاحیت ہے۔ جب مختصر اور لمبے وقت کے فریم دونوں پر بیک وقت شدید قیمت کی کارروائی ہوتی ہے تو ، یہ حکمت عملی زیادہ سے زیادہ اندراج نقطہ کو یاد کر سکتی ہے۔
موم بتیوں کی توثیق کا طریقہ کار کچھ مواقع سے محروم ہوسکتا ہے۔ انتہائی مارکیٹ کے حالات میں ، موم بتیاں اکثر مسخات کا مظاہرہ کرتی ہیں ، اور توثیق کا طریقہ کار حکمت عملی کو زیادہ قدامت پسند بنا دیتا ہے ، اس طرح کچھ موقع کھو دیتا ہے۔
پیرامیٹر کی غلط ترتیبات بھی غلط سگنل پیدا کرسکتی ہیں۔ صارفین کو مخصوص مصنوع کی بنیاد پر ڈبل بریک آؤٹ اور موم بتی کے اجزاء کے لئے مناسب پیرامیٹرز کا انتخاب کرنے کی ضرورت ہے ، ورنہ حکمت عملی کی کارکردگی متاثر ہوگی۔
ان خطرات سے نمٹنے کے لئے ، پیرامیٹر ٹوننگ ، اسٹاپ نقصان / منافع کی ترتیب جیسے طریقوں کو بہتری اور اصلاح کے لئے اپنایا جاسکتا ہے۔
سیکنڈری تصدیق کرنے کے لئے اتار چڑھاؤ انڈیکس شامل کریں۔ مثال کے طور پر ، جب بی بی دباؤ ڈال رہا ہے تو جاری کردہ بریک آؤٹ سگنل اعلی معیار کے ہوتے ہیں۔
اسٹاپ نقصان / منافع ماڈیول شامل کریں۔ مناسب ترتیب سے منافع میں مقفل ہونے اور نقصانات کو فعال طور پر کم کرنے میں مدد ملتی ہے۔
دوہری بریک آؤٹ پیرامیٹرز کو بہتر بنائیں۔ پیرامیٹرز کو مصنوعات کی خصوصیات جیسے دن کے اندر اور روزانہ اتار چڑھاؤ کے مطابق ایڈجسٹ کیا جاسکتا ہے۔
K لائن کی توثیق کے پیرامیٹرز کو بہتر بنائیں۔ K لائن کی توثیق کے لئے سائیکل اور پیرامیٹرز کے مختلف مجموعے زیادہ مستحکم نتائج پیدا کرسکتے ہیں۔
دوہری تصدیق بریک آؤٹ حکمت عملی دوہری ٹائم فریم اور کے لائن کی توثیق کے طریقہ کار کو جوڑ کر سرمایہ کاری کی کارکردگی اور سگنل کے معیار کے مابین موثر توازن پیدا کرتی ہے ، جس سے یہ ایک تجویز کردہ قلیل مدتی بریک آؤٹ حکمت عملی بن جاتی ہے۔ صارفین بہتر نتائج کے ل their اپنی ضروریات کے مطابق متعلقہ پیرامیٹرز کو ایڈجسٹ کرسکتے ہیں۔
/*backtest start: 2023-11-14 00:00:00 end: 2023-12-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("breakout ", overlay=true) tim=input('1440') sim=input('370') out1 = request.security(syminfo.tickerid, tim, open) out2 = request.security(syminfo.tickerid, sim, close) plot(out1,color=red) plot(out2,color=green) length = input(20, 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=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) range1 = useTrueRange ? tr : (high - low) rangema = sma(range1, 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 = iff( val > 0,iff( val > nz(val[1]), lime, green),iff( val < nz(val[1]), red, maroon)) scolor = noSqz ? blue : sqzOn ? black : gray //plot(val, color=bcolor, style=histogram, linewidth=4) //plot(0, color=scolor, style=cross, linewidth=2) // this section based on Almost Zero Lag EMA [LazyBear] // Fast MA - type, length matype = input(defval="HullMA", title="Fast MA Type: SMA, EMA, WMA, VWMA, SMMA, DEMA, TEMA, HullMA, TMA, ZEMA ( case sensitive )") malength = input(defval=20, title="Moving Average Length", minval=1) src = input(close,title="Moving average Source") // Returns MA input selection variant, default to SMA if blank or typo. variant(type, src, len) => v1 = sma(src, len) // Simple v2 = ema(src, len) // Exponential v3 = wma(src, len) // Weighted v4 = vwma(src, len) // Volume Weighted v5 = na(v5[1]) ? sma(src, len) : (v5[1] * (len - 1) + src) / len // Smoothed v6 = 2 * v2 - ema(v2, len) // Double Exponential v7 = 3 * (v2 - ema(v2, len)) + ema(ema(v2, len), len) // Triple Exponential v8 = wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len))) // Hull ema1 = ema(src, len) ema2 = ema(ema1, len) v10 = ema1+(ema1-ema2) // Zero Lag Exponential v11 = sma(sma(src,len),len) // Trianglular // return variant, defaults to SMA if input invalid. type=="EMA"?v2 : type=="WMA"?v3 : type=="VWMA"?v4 : type=="SMMA"?v5 : type=="DEMA"?v6 : type=="TEMA"?v7 : type=="HullMA"?v8 : type=="ZEMA"?v10 : type=="TMA"?v11 : v1 // Calculate selected MA and get direction of trend from it. zlema= variant(matype,src,malength) col = zlema > zlema[1] ? green : red up = zlema > zlema[1] ? 1 : 0 down = zlema < zlema[1] ? 1 : 0 //plot(zlema,color=col, style=line, linewidth=4, transp=0) // Find all Fractals. // This section based on [RS]Fractal Levels by RicardoSantos hidefractals = input(false) hidelevels = input(false) topfractal = high[2] > high[1] and high[2] > high and high[2] > high[3] and high[2] > high[4] botfractal = low[2] < low[1] and low[2] < low and low[2] < low[3] and low[2] < low[4] //plotshape(hidefractals ? na : topfractal, color=green, transp=0, style=shape.triangleup, location=location.abovebar, offset=-2, size=size.tiny) //plotshape(hidefractals ? na : botfractal, color=red, transp=0, style=shape.triangledown, location=location.belowbar, offset=-2, size=size.tiny) topfractals = topfractal ? high[2] : topfractals[1] botfractals = botfractal ? low[2] : botfractals[1] topfcolor = topfractals != topfractals[1] ? na : green botfcolor = botfractals != botfractals[1] ? na : red //plot(hidelevels ? na : topfractals, color=topfcolor, transp=0, linewidth=2) //plot(hidelevels ? na : botfractals, color=botfcolor, transp=0, linewidth=2) // // This section based on Candlestick Patterns With EMA by rmwaddelljr // ufb = input(false, title="Use Fractal S/R Cross Patterns") udc = input(true, title="Use Dark Cloud Cover Patterns" ) upl = input(true, title="Use Piecing Line Patterns" ) ube = input(true, title="Use Engulfing Candle Patterns" ) ubh = input(true, title="Use Harami Candle Patterns" ) upb = input(true, title="Use Defined PinBar Patterns") pctP = input(66, minval=1, maxval=99, title="Directional PBars, % of Range of Candle the Long Wick Has To Be") // This section based on CM_Price-Action-Bars by ChrisMoody // Change the pin bar calculation, so can be used for market direction. urpb= input(false, title="Use CM Price Action Reversal Pin Bars") usb = input(false, title="Use CM Price Action Shaved Bars") uob = input(false, title="Use CM Price Action Outside Bars") uib = input(false, title="Use CM Price Action Inside Bars") pctRP = input(72, minval=1, maxval=99, title="CM Reversal PBars, % of Range of Candle the Long Wick Has To Be") pctS = input(5, minval=1, maxval=99, title="CM Shaved Bars, % of Range it Has To Close On The Lows or Highs") pblb =input(6,minval=1,title="CM Reversal Pin Bar Lookback Length") // stnd = input(true, title="Alert Only Patterns Following Trend") // // Get MACD for Alert Filtering umacd = input(true,title="Alert Only Patterns Confirmed by MACD") fastMA = input(title="MACD Fast MA Length", defval = 12, minval = 2) slowMA = input(title="MACD Slow MA Length", defval = 26, minval = 7) signal = input(title="MACD Signal Length",defval=9,minval=1) // sgb = input(false, title="Check Box To Turn Bars Gray") salc = input(true, title="Show Alert condition Dot") // [currMacd,_,_] = macd(close[0], fastMA, slowMA, signal) [prevMacd,_,_] = macd(close[1], fastMA, slowMA, signal) plotColor = currMacd > 0 ? currMacd > prevMacd ? green : red : currMacd < prevMacd ? red : green // Show alert on this bar? sbarUp = (not umacd or plotColor == green) and (not stnd or up) sbarDn = (not umacd or plotColor == red) and (not stnd or down) //PBar Percentages pctCp = pctP * .01 //Shaved Bars Percentages pctCs = pctS * .01 pctSPO = pctCs //ma50 = sma(close,50) range = high - low ///Reversal PinBars pctCRp = pctRP * .01 pctCRPO = 1 - pctCRp // //pBarRUp= upb and open<close and open > high - (range * pctCRPO) and close > high - (range * pctCRPO) and low <= lowest(pblb) ? 1 : 0 //pBarRDn = upb and open>close and open < high - (range * pctCRp) and close < high-(range * pctCRp) and high >= highest(pblb) ? 1 : 0 pBarRUp = urpb and open > high - (range * pctCRPO) and close > high - (range * pctCRPO) and low <= lowest(pblb) ? 1 : 0 pBarRDn = urpb and open < high - (range * pctCRp) and close < high-(range * pctCRp) and high >= highest(pblb) ? 1 : 0 //Shaved Bars filter to the MA50 line sBarUp = usb and (close >= (high - (range * pctCs))) // and close>ma50 sBarDown = usb and (close <= (low + (range * pctCs))) // and close<ma50 //Inside Bars insideBarUp = uib and (high < high[1] and low > low[1]) insideBarDn = uib and (high < high[1] and low > low[1]) outsideBarUp= uob and (high > high[1] and low < low[1]) outsideBarDn= uob and (high > high[1] and low < low[1]) // PinBars representing possible change in trend direction barcolor(pBarRUp ? green : na) barcolor(pBarRDn ? red : na) //Shaved Bars barcolor(sBarDown ? fuchsia : na) barcolor(sBarUp ? aqua : na) //Inside and Outside Bars barcolor((insideBarUp or insideBarDn)? yellow : na ) barcolor((outsideBarUp or outsideBarDn) ? orange : na ) //Long shadow PinBars supporting market direction ///PinBars Long Upper Shadow represent selling pressure pBarDn = upb and open < high - (range * pctCp) and close < high - (range * pctCp) //plotshape(pBarDn and (not pBarRUp and not pBarRDn), title= "Bearish Pin Bar", color=red, style=shape.arrowdown, text="Bearish\nPinBar") ///PinBars with Long Lower Shadow represent buying pressure pBarUp = upb and open > low + (range * pctCp) and close > low + (range * pctCp) //plotshape(pBarUp and (not pBarRUp and not pBarRDn), title= "Bullish Pin Bar", location=location.belowbar, color=green, style=shape.arrowup, text="Bullish\nPinBar") dcc = udc and (close[1]>open[1] and abs(close[1]-open[1])/range[1]>=0.7 and close<open and abs(close-open)/range>=0.7 and open>=close[1] and close>open[1] and close<((open[1]+close[1])/2)) //plotshape(dcc, title="Dark Cloud Cover",text='DarkCloud\nCover',color=red, style=shape.arrowdown,location=location.abovebar) ts = timestamp(2021,8,1,8,18) pln= upl and (close[1]<open[1] and abs(open[1]-close[1])/range[1]>=0.7 and close>open and abs(close-open)/range>=0.7 and open<=close[1] and close<open[1] and close>((open[1]+close[1])/2)) //plotshape(pln, title="Piercieng Line",text="Piercing\nLine",color=green, style=shape.arrowup,location=location.belowbar) beh = ubh and (close[1] > open[1] and open > close and open <= close[1] and low >= open[1] and open - close < close[1] - open[1] and (high < high[1] and low > low[1])) //plotshape(beh and not dcc, title= "Bearish Harami", color=red, style=shape.arrowdown, text="Bear\nHarami") blh = ubh and (open[1] > close[1] and close > open and close <= open[1] and high <= open[1] and close - open < open[1] - close[1] and (high < high[1] and low > low[1])) //plotshape(blh and not pln, title= "Bullish Harami", location=location.belowbar, color=green, style=shape.arrowup, text="Bull\nHarami") bee = ube and (close[1] > open[1] and close < open and close<=low[1] and open>= close[1]) //plotshape(bee, title= "Bearish Engulfing", color=red, style=shape.arrowdown, text="Bearish\nEngulf") ble = ube and (close[1] < open[1] and close > open and close >= high[1] and open<=close[1]) //plotshape(ble, title= "Bullish Engulfing", location=location.belowbar, color=green, style=shape.arrowup, text="Bullish\nEngulf") blfr = ufb and crossover(close,topfractals) //plotshape(blfr and not ble and not blh and not sBarUp, title= "Bullish Fractal Cross", location=location.belowbar, color=green, style=shape.arrowup, text="Fractal\nCross") befr = ufb and crossunder(close,botfractals) //plotshape(befr and not bee and not beh and not sBarDown, title= "Bearish Fractal Cross", color=red, style=shape.arrowdown, text="Fractal\nCross") // // bcolorDn = sbarDn and not(pBarRDn or pBarRUp or sBarDown or insideBarDn or outsideBarDn) and (beh or bee or dcc or befr or pBarDn) bcolorUp = sbarUp and not(pBarRDn or pBarRUp or sBarUp or insideBarUp or outsideBarUp) and (blh or ble or pln or blfr or pBarUp) barcolor(bcolorDn ? maroon : na) barcolor(bcolorUp ? lime : na) // barcolor(sgb and close ? gray : na) bullcnd = pBarUp or pln or blh or ble or blfr bearcnd = pBarDn or dcc or beh or bee or befr if(true ) longCondition = crossover(out2,out1) if(longCondition or close > out1 and bullcnd and strategy.position_size == 0) strategy.entry("long", strategy.long) //if (pBarRUp) // and bullcnd) //and strategy.position_size == 0) // strategy.entry("long", strategy.long) shortCondition = crossunder(out2,out1) if (shortCondition or close < out1 and bearcnd and strategy.position_size == 0) strategy.entry("short", strategy.short) // barAlertDn = (sbarDn and (befr or bee or beh or pBarDn or dcc)) or (sbarDn and (insideBarDn or outsideBarDn or sBarDown)) or pBarRDn barAlertUp = (sbarUp and (blfr or ble or blh or pBarUp or pln)) or (sbarUp and (insideBarUp or outsideBarUp or sBarUp)) or pBarRUp barAlert = barAlertDn or barAlertUp alertcondition(barAlert,title="CDLTRD Alert", message="CDLTRD Bar Alert") // show only when alert condition is met and bar closed. //plotshape(salc and barAlert[1],title= "Alert Indicator Closed", location=location.bottom, color=barAlertDn[1]?red:green, transp=0, style=shape.circle,offset=-1) //EOF //if (pBarRDn) //and bearcnd//and strategy.position_size == 0) // strategy.entry("short", strategy.short) //strategy.close("long", when = exit) //strategy.close("short", when = exit2) //exit3 = sqzOn and sqzOn[1] and sqzOn[2] and sqzOn[3] and sqzOn[4] and sqzOn[5] and sqzOn[6] //strategy.close("long", when = exit3) //strategy.close("short", when = exit3) //else // alertcondition(condition = time > t, message = "Time exceeded")