یہ مضمون موم بتیوں کی گنتی پر مبنی رجحان کی پیروی کرنے والی حکمت عملی متعارف کراتا ہے۔ یہ موم بتیوں کی سمت گن کر رجحان کی سمت کا فیصلہ کرتا ہے اور موم بتیوں کی ایک مقررہ تعداد کے بعد داخل ہوتا ہے۔
اسٹریٹیجی کی بنیاد مندرجہ ذیل ہے:
مارکیٹ کے تعصب کا تعین کرنے کے لئے موم بتیوں کی سمتوں کی گنتی۔ جب N لگاتار موم بتیاں ایک ہی سمت میں جاتی ہیں تو ، ایک رجحان کی نشاندہی کی جاتی ہے۔
اپ ٹرینڈز میں ، N مسلسل bearish موم بتیوں کے بعد طویل چلیں۔ ڈاؤن ٹرینڈز میں ، N مسلسل bullish موم بتیوں کے بعد مختصر چلیں۔
چھوٹے N اقدار تیزی سے رجحانات کو پکڑنے لیکن whipsaws کے لئے زیادہ حساس ہیں.
منافع اور سٹاپ نقصان کے فکسڈ پوائنٹس منافع اور کنٹرول خطرے میں مقفل.
بند پوزیشنوں جب ریورس موم بتیاں ظاہر.
اس حکمت عملی کے فوائد:
براہ راست رجحان کا فیصلہ کرنے کے لئے سادہ موم بتیوں کی گنتی۔ لاگو کرنا آسان ہے۔
رجحان کے ساتھ اندراجات رجحان کو اچھی طرح سے منتقل کرتی ہیں.
فکسڈ اسٹاپ مؤثر طریقے سے خطرے کا انتظام کرتے ہیں۔
ایڈجسٹ پیرامیٹرز مختلف مارکیٹ کے ماحول کے مطابق ہیں.
سادہ منطق اصلاح کو آسان بناتی ہے۔
مندرجہ ذیل خطرات پر بھی غور کیا جانا چاہئے:
گنتی مختلف مارکیٹوں میں گمراہ کن ہوسکتی ہے.
فکسڈ اسٹاپ منافع کی صلاحیت کو محدود کرسکتے ہیں۔
ناقص الٹ فیصلے سے قبل روکنے کے.
پیرامیٹرز اور سائز کو مناسب طریقے سے ایڈجسٹ کریں.
گنتی کے پیرامیٹرز کا جائزہ احتیاط سے لیا جانا چاہئے.
یہ حکمت عملی موم بتیوں کی گنتی اور رجحان کی پیروی کو جوڑتی ہے۔ مناسب موافقت کے ساتھ ، یہ مہذب نتائج پیدا کرسکتا ہے۔ لیکن تاجروں کو مارکیٹوں کا محتاط اندازہ لگانا چاہئے اور طویل مدتی منافع کے لئے پیرامیٹرز کو ایڈجسٹ کرنا چاہئے۔
/*backtest start: 2023-08-16 00:00:00 end: 2023-09-15 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //@author=Daveatt StrategyName = "BEST Candle Meter Strategy" ShortStrategyName = "BEST Candle Meter Strategy" // strategy(title=StrategyName, shorttitle=ShortStrategyName, overlay=true, // pyramiding=0, default_qty_value=100, precision=7, currency=currency.USD, // commission_value=0.2,commission_type=strategy.commission.percent, initial_capital=10000) /////////////////////////////////////////////////////////////////////////////// ///////////////////////////////// INPUTS /////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// // TD Sequential approach would be setting bar_counter == 9 bar_counter = input(5, "Bar Counter",minval=1, step=1) // if based on same candle GreenCandle = close > open RedCandle = close < open // if based on previous candle open GreenPrevCandle = close > open[1] RedPrevCandle = close < open[1] // conditons barUP = GreenCandle barDN = RedCandle /////////////////////////////////////////////////////////////////////////////// ////////////////////////////// COUNTERS /////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// var barsFromUp = 0 var barsFromDn = 0 barsFromUp := barUP ? barsFromUp + 1 : 0 barsFromDn := barDN ? barsFromDn + 1 : 0 /////////////////////////////////////////////////////////////////////////////// ///////////////////////////////// PLOTS /////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// plot_color = barsFromUp > 0 ? color.lime : color.red //plot(barsFromUp, title="UP Histogram", color=plot_color, style=plot.style_histogram, linewidth=4) //plot(barsFromDn, title="DN Histogram", color=plot_color, style=plot.style_histogram, linewidth=4) /////////////////////////////////////////////////////////////////////////////// ///////////////////////////////// HLINE /////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// //hline(9, '9 TD Sequential Line', linestyle=hline.style_solid, linewidth=2, color=color.black) //hline(13, '12 TD Sequential Line', linestyle=hline.style_solid, linewidth=3, color=color.purple) /////////////////////////////////////////////////////////////////////////////// /////////////////////////////// PLOTCHAR ////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// // var _lbl_UP = label(na) // if barsFromUp > 0 // _lbl_UP := label.new(bar_index, close, tostring(barsFromUp, '#'), textcolor=color.green, style=label.style_none, yloc=yloc.price, xloc=xloc.bar_index, size=size.normal) // var _lbl_DN = label(na) // if barsFromDn > 0 // _lbl_DN := label.new(bar_index, close, tostring(barsFromDn, '#'), textcolor=color.red, style=label.style_none, yloc=yloc.price, xloc=xloc.bar_index, size=size.normal) //plotshape(barsFromUp > 0, "", shape.arrowup, location.abovebar, color.green, text="A") /////////////////////////////////////////////////////////////////////////////// /////////////////////////////// ALERTS //////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// // alertcondition(barsFromUp == 9, title='🔔Sell 9 Alert🔔', message="Sell 9 Alert") // alertcondition(barsFromDn == 9, title='🔔Buy 9 Alert🔔', message='Buy 9 Alert') // alertcondition(barsFromUp > 9, title='🔔Sell > 9 Alert🔔', message="Sell > 9 Alert") // alertcondition(barsFromDn > 9, title='🔔Buy > 9 Alert🔔', message='Buy > 9 Alert') /////////////////////////////////////////////// //* Backtesting Period Selector | Component *// /////////////////////////////////////////////// StartYear = input(2017, "Backtest Start Year",minval=1980) StartMonth = input(1, "Backtest Start Month",minval=1,maxval=12) StartDay = input(1, "Backtest Start Day",minval=1,maxval=31) testPeriodStart = timestamp(StartYear,StartMonth,StartDay,0,0) StopYear = input(2020, "Backtest Stop Year",minval=1980) StopMonth = input(12, "Backtest Stop Month",minval=1,maxval=12) StopDay = input(31, "Backtest Stop Day",minval=1,maxval=31) testPeriodStop = timestamp(StopYear,StopMonth,StopDay,0,0) testPeriod() => true isLong = barsFromUp == bar_counter isShort = barsFromDn == bar_counter long_entry_price = valuewhen(isLong, close, 0) short_entry_price = valuewhen(isShort, close, 0) sinceNUP = barssince(isLong) sinceNDN = barssince(isShort) buy_trend = sinceNDN > sinceNUP sell_trend = sinceNDN < sinceNUP ////////////////////////// //* Profit Component *// ////////////////////////// //////////////////////////// MinTick /////////////////////////// fx_pips_value = syminfo.type == "forex" ? syminfo.mintick*10 : 1 input_tp_pips = input(60, "Backtest Profit Goal (in USD)",minval=0)*fx_pips_value input_sl_pips = input(30, "Backtest STOP Goal (in USD)",minval=0)*fx_pips_value tp = buy_trend? long_entry_price + input_tp_pips : short_entry_price - input_tp_pips sl = buy_trend? long_entry_price - input_sl_pips : short_entry_price + input_sl_pips plot_tp = buy_trend and high[1] <= tp ? tp : sell_trend and low[1] <= tp ? tp : na plot_sl = buy_trend and low[1] >= sl ? sl : sell_trend and high[1] >= sl ? sl : na plot(plot_tp, title="TP", style=plot.style_circles, linewidth=3, color=color.blue) plot(plot_sl, title="SL", style=plot.style_circles, linewidth=3, color=color.red) longClose = isShort shortClose = isLong if testPeriod() strategy.entry("Long", 1, when=isLong) strategy.close("Long", when=longClose ) strategy.exit("XL","Long", limit=tp, when=buy_trend, stop=sl) if testPeriod() strategy.entry("Short", 0, when=isShort) strategy.close("Short", when=shortClose ) strategy.exit("XS","Short", when=sell_trend, limit=tp, stop=sl)