
ایک ملٹی فیکٹر الٹ ٹرینڈ ٹریڈنگ حکمت عملی ایک خاص طور پر ڈیزائن کیا گیا پروگرام ٹریڈنگ سسٹم ہے جس میں مارکیٹ میں لگاتار اضافے یا کمی کے بعد ممکنہ الٹ پوائنٹس کی نشاندہی کی جاتی ہے۔ یہ حکمت عملی متعدد تکنیکی اشارے جیسے قیمتوں کے رجحانات کا تجزیہ کرتے ہوئے ، ٹرانزیکشن کی تصدیق اور چینل بینڈ (برن بینڈ یا کینٹینر چینل) کو جوڑتی ہے تاکہ مارکیٹ میں زیادہ خرید یا زیادہ فروخت کی حالت میں الٹ کے مواقع کو پکڑ سکے۔ حکمت عملی کا بنیادی مقصد متعدد عوامل کے مجموعی فیصلے کے ذریعہ تجارتی سگنل کی وشوسنییتا اور درستگی کو بہتر بنانا ہے۔
حکمت عملی بنیادی طور پر تین بنیادی عناصر پر مبنی ہے جو ٹریڈنگ سگنل پیدا کرتی ہے:
ٹریڈنگ سگنل کو متحرک کرنے کے لئے ضروری ہے کہ سیٹ کردہ شرائط کا ایک مجموعہ پورا کیا جائے۔ جب K لائن بند ہونے کی تصدیق ہوجائے تو سسٹم کو اہل مقام پر مثلث کے نشانات کھینچنے اور اس کے مطابق کثیر خلائی کارروائی انجام دینے کی ضرورت ہے۔ حکمت عملی میں 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")