ملٹی فیکٹر کاؤنٹر ٹرینڈ ٹریڈنگ حکمت عملی ایک نفیس الگورتھمک ٹریڈنگ سسٹم ہے جو مارکیٹ میں لگاتار قیمتوں میں اضافے یا گرنے کے بعد ممکنہ الٹ پوائنٹس کی نشاندہی کرنے کے لئے ڈیزائن کیا گیا ہے۔ حکمت عملی حجم کی تصدیق اور چینل بینڈ (بولنگر بینڈ یا کیلنر چینلز) کے ساتھ مل کر قیمتوں کی نقل و حرکت کا تجزیہ کرتی ہے تاکہ زیادہ خریدنے یا زیادہ فروخت کی حالت میں الٹ جانے کے مواقع کو حاصل کیا جاسکے۔ اس کی بنیادی طاقت سگنل کی وشوسنییتا اور درستگی کو بڑھانے کے لئے اس کے کثیر عنصر کے نقطہ نظر میں ہے۔
حکمت عملی تین بنیادی عناصر پر مبنی تجارتی سگنل پیدا کرتی ہے:
ٹریڈ سگنل اس وقت ٹرگر ہوتے ہیں جب مقررہ شرائط پوری ہوجاتی ہیں۔ سسٹم مثلث کے مارکر کو پلاٹ کرتا ہے اور بار کی تصدیق کے بعد اسی طرح کی لمبی / مختصر پوزیشنز کو انجام دیتا ہے۔ حکمت عملی پوزیشن سائزنگ کے لئے اکاؤنٹ کے 80٪ ایکویٹی کا استعمال کرتی ہے اور 0.01٪ ٹریڈنگ کمیشن میں عوامل رکھتی ہے۔
ملٹی فیکٹر کاؤنٹر ٹرینڈ ٹریڈنگ حکمت عملی قیمت کے نمونوں ، حجم کی تبدیلیوں اور چینل بریک آؤٹس کے جامع تجزیے کے ذریعے الٹ ٹریڈنگ کے لئے ایک منظم نقطہ نظر فراہم کرتی ہے۔ اگرچہ حکمت عملی اپنی لچکدار ترتیب اور کثیر جہتی سگنل کی تصدیق میں نمایاں ہے ، لیکن مارکیٹ کے ماحول میں موافقت اور رسک کنٹرول پر بھی توجہ دی جانی چاہئے۔ تجویز کردہ اصلاح کی سمتیں رواں تجارت کی کارکردگی میں ممکنہ بہتری کی پیش کش کرتی ہیں۔
/*backtest start: 2024-12-03 00:00:00 end: 2024-12-10 00:00:00 period: 10m basePeriod: 10m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="The Bar Counter Trend Reversal Strategy [TradeDots]", overlay=true, initial_capital = 10000, default_qty_type = strategy.percent_of_equity, default_qty_value = 80, commission_type = strategy.commission.percent, commission_value = 0.01) // Initialize variables var bool rise_triangle_ready = false var bool fall_triangle_ready = false var bool rise_triangle_plotted = false var bool fall_triangle_plotted = false //Strategy condition setup noOfRises = input.int(3, "No. of Rises", minval=1, group="STRATEGY") noOfFalls = input.int(3, "No. of Falls", minval=1, group="STRATEGY") volume_confirm = input.bool(false, "Volume Confirmation", group="STRATEGY") channel_confirm = input.bool(true, "", inline="CHANNEL", group="STRATEGY") channel_type = input.string("KC", "", inline="CHANNEL", options=["BB", "KC"],group="STRATEGY") channel_source = input(close, "", inline="CHANNEL", group="STRATEGY") channel_length = input.int(20, "", inline="CHANNEL", minval=1,group="STRATEGY") channel_mult = input.int(2, "", inline="CHANNEL", minval=1,group="STRATEGY") //Get channel line information [_, upper, lower] = if channel_type == "KC" ta.kc(channel_source, channel_length,channel_mult) else ta.bb(channel_source, channel_length,channel_mult) //Entry Condition Check if channel_confirm and volume_confirm rise_triangle_ready := ta.falling(close, noOfFalls) and ta.rising(volume, noOfFalls) and high > upper fall_triangle_ready := ta.rising(close, noOfRises) and ta.rising(volume, noOfRises) and low < lower else if channel_confirm rise_triangle_ready := ta.falling(close, noOfFalls) and low < lower fall_triangle_ready := ta.rising(close, noOfRises) and high > upper else if volume_confirm rise_triangle_ready := ta.falling(close, noOfFalls) and ta.rising(volume, noOfFalls) fall_triangle_ready := ta.rising(close, noOfRises) and ta.rising(volume, noOfRises) else rise_triangle_ready := ta.falling(close, noOfFalls) fall_triangle_ready := ta.rising(close, noOfRises) // Check if trend is reversed if close > close[1] rise_triangle_plotted := false // Reset triangle plotted flag if close < close[1] fall_triangle_plotted := false //Wait for bar close and enter trades if barstate.isconfirmed // Plot triangle when ready and counts exceed threshold if rise_triangle_ready and not rise_triangle_plotted label.new(bar_index, low, yloc = yloc.belowbar, style=label.style_triangleup, color=color.new(#9CFF87,10)) strategy.entry("Long", strategy.long) rise_triangle_plotted := true rise_triangle_ready := false // Prevent plotting again until reset if fall_triangle_ready and not fall_triangle_plotted label.new(bar_index, low, yloc = yloc.abovebar, style=label.style_triangledown, color=color.new(#F9396A,10)) strategy.entry("Short", strategy.short) fall_triangle_plotted := true fall_triangle_ready := false // plot channel bands plot(upper, color = color.new(#56CBF9, 70), linewidth = 3, title = "Upper Channel Line") plot(lower, color = color.new(#56CBF9, 70), linewidth = 3, title = "Lower Channel Line")