
اندرونی قیمتوں کی طاقت کا رجحان الٹ ٹریڈنگ سسٹم ایک دن کی لائن کی سطح پر ٹریڈنگ کی حکمت عملی ہے جو اندرونی قیمتوں کی طاقت (IBS) اشارے پر مبنی ہے۔ اس حکمت عملی کا بنیادی مقصد مارکیٹ کے ممکنہ الٹ پوائنٹس کی نشاندہی کرنا ہے ، اور اس سے پہلے کی لائن کے اختتامی قیمت کے اس کی اعلی اور کم حد کی حد کے درمیان نسبتا position پوزیشن کی نگرانی کرکے مارکیٹ کی اوور بیئر اور اوور سیل کی حیثیت کا فیصلہ کرنا ہے۔ یہ حکمت عملی خاص طور پر اسٹاک اور امریکی انڈیکس ٹریڈنگ کے لئے موزوں ہے ، اور اس کے بنیادی اشاریہ جات جیسے SPY / SPX اور NDQ / QQQ کے لئے ڈیفالٹ پیرامیٹرز کو بہتر بنایا گیا ہے۔
اس حکمت عملی کا مرکز اندرونی قیمت کی طاقت (IBS) کے اشارے کے حساب اور استعمال میں ہے۔ آئی بی ایس اشارے کا حساب مندرجہ ذیل فارمولے کے ذریعہ کیا جاتا ہے:
IBS = (前一日收盘价 - 前一日最低价) / (前一日最高价 - 前一日最低价)
IBS کی قیمت ہمیشہ 0 سے 1 کے درمیان ہوتی ہے:
اس حکمت عملی کے لئے تجارتی قواعد درج ذیل ہیں:
ایک سے زیادہ داخلے کی شرائط
اس کے علاوہ، وہ اس کے لئے بھی تیار ہیں:
اس کے علاوہ ، حکمت عملی میں “کم سے کم نئے اندراج کا فاصلہ فیصد” پیرامیٹرز متعارف کرایا گیا ہے تاکہ یہ یقینی بنایا جاسکے کہ نئی پوزیشنیں صرف اس وقت کھولی جائیں جب قیمت میں کافی حد تک واپسی ہو ، واپسی کے خطرے کو مؤثر طریقے سے کم کیا جائے اور فنڈ مینجمنٹ کو بہتر بنایا جائے۔
مارکیٹ ٹائمنگ کی درستگی: IBS اشارے کا استعمال کرتے ہوئے مارکیٹ میں اوور بیئر اور اوور سیل کی حالت کو درست طریقے سے پکڑ سکتا ہے ، جس سے داخلے اور باہر نکلنے کے لئے معروضی ریاضی کی بنیاد فراہم کی جاسکتی ہے ، جس سے ذہنی فیصلے سے پیدا ہونے والے انحراف کو کم کیا جاسکتا ہے۔
رجحان فلٹرنگ میکانزم: ای ایم اے کے ذریعہ رجحان فلٹر کے طور پر ، اس بات کو یقینی بنائیں کہ تجارت کی سمت اہم رجحانات کے ساتھ مطابقت رکھتی ہے ، اس طرح منفی تجارت کے خطرے سے بچنے میں مدد ملتی ہے۔ حکمت عملی ای ایم اے کی مدت کو مارکیٹ کی مختلف خصوصیات کے مطابق ایڈجسٹ کرسکتی ہے ، یا اس شرط کو مکمل طور پر غیر فعال کرسکتی ہے۔
لچکدار پوزیشن مینجمنٹ: اسٹریٹجی نے پرامڈ اسٹاک میں اضافے کی حمایت کی ((زیادہ سے زیادہ 2 بار) ، اور “کم سے کم نئے اندراج کا فاصلہ فیصد” پیرامیٹر متعارف کرایا ، اس سے زیادہ ذہین بیچ اسٹاک کی تعمیر کا طریقہ کار حاصل کیا گیا ، جس سے قیمتوں میں واپسی کے وقت اوسط پوزیشن رکھنے کی لاگت کو مؤثر طریقے سے کم کیا جاسکتا ہے۔
خودکار خطرے کا کنٹرول: حکمت عملی میں زیادہ سے زیادہ پوزیشن رکھنے کی مدت کی حد مقرر کی گئی ہے ، یہاں تک کہ اگر مارکیٹ میں باقاعدگی سے باہر نکلنے کا اشارہ نہیں ہوتا ہے تو ، وہ پہلے سے طے شدہ زیادہ سے زیادہ تجارتی دورانیے کے بعد خود بخود پوزیشن کو صاف کردے گا ، جس سے انفرادی تجارت کے خطرے کی نمائش کا وقت مؤثر طریقے سے کنٹرول ہوجائے گا۔
پیرامیٹرز کی اصلاح: پہلے سے طے شدہ پیرامیٹرز کو ایس پی وائی اور کیو کیو کیو / این ڈی کیو جیسے اہم مارکیٹ انڈیکس کے لئے بہتر بنایا گیا ہے ، اور صارف تجویز کردہ ترتیبات کو براہ راست لاگو کرسکتا ہے:
مکمل ٹریڈنگ موڈ: صرف زیادہ ، صرف فاریکس یا دو طرفہ ٹریڈنگ موڈ کی حمایت کرتا ہے ، جو مختلف مارکیٹ کے حالات اور ٹریڈنگ کے انداز کے مطابق ہے۔
پیرامیٹرز کی حساسیت: آئی بی ایس میں داخلے اور باہر نکلنے کی قیمتوں کا تعین حکمت عملی کی کارکردگی پر بہت زیادہ اثر ڈالتا ہے۔ پیرامیٹرز کی غلط ترتیب سے زیادہ تجارت یا اہم تجارتی مواقع سے محروم ہوجانے کا خدشہ ہوسکتا ہے۔
جھٹکا دینے والی مارکیٹ کا خطرہ: غیر واضح رجحان کے ساتھ جھٹکے والی مارکیٹ میں ، IBS سگنل اکثر سامنے آسکتے ہیں ، جس سے زیادہ تجارت اور غیر ضروری تجارت کے اخراجات میں اضافہ ہوتا ہے۔ اس کا حل فلٹرنگ کی شرائط میں اضافہ کرنا ہے ، جیسے کہ مارکیٹ میں اتار چڑھاؤ کا فیصلہ کرنے کے لئے متعدد متواتر IBS سگنل کی تصدیق یا دوسرے اشارے (جیسے اے ٹی آر) کے ساتھ مل کر۔
تیزی سے رجحان کی تبدیلی کی تاخیر: جب مارکیٹ میں تیزی سے رجحان کی تبدیلی ہوتی ہے تو ، آئی بی ایس کے اشارے جو پچھلے دن کے اعداد و شمار پر مبنی ہوتے ہیں وہ تاخیر سے رد عمل ظاہر کرسکتے ہیں ، جس کے نتیجے میں داخلے یا باہر نکلنے کا وقت مناسب نہیں ہوتا ہے۔ اعلی اتار چڑھاؤ کی مدت کے دوران آئی بی ایس کی حد کو مناسب طریقے سے ایڈجسٹ کرنے یا زیادہ سے زیادہ پوزیشن کی مدت کو کم کرنے کی سفارش کی جاتی ہے۔
فنڈ مینجمنٹ رسک: ڈیفالٹ اکاؤنٹ میں 50٪ فنڈز کا استعمال کرتے ہوئے تجارت کریں ، جو متعدد بار جمع کرنے کی صورت میں خطرے سے زیادہ نمائش کا سبب بن سکتا ہے۔ صارفین کو مشورہ دیا جاتا ہے کہ وہ اپنے خطرے کی برداشت کی صلاحیت کے مطابق پوزیشن کا سائز اور جمع کرنے کے پیرامیٹرز کو ایڈجسٹ کریں۔
تکنیکی عملدرآمد کی حد: حکمت عملی اختتامی قیمت پر مبنی تجارت پر عملدرآمد کرتی ہے ، جس میں عملی طور پر سلائڈ پوائنٹس اور قیمتوں میں فرق کا سامنا کرنا پڑ سکتا ہے۔ اس طرح کے خطرات کو کم کرنے کے لئے ، اختتامی قیمت کے بجائے محدود قیمت کی فہرست کا استعمال کرتے ہوئے یا مارکیٹ کی قیمت کی بجائے ایک مقررہ وقت سے پہلے آرڈر دینے پر غور کیا جاسکتا ہے۔
متحرک حد کی ایڈجسٹمنٹ: موجودہ حکمت عملی میں آئی بی ایس کے داخلے اور باہر نکلنے کی مقررہ حدیں استعمال کی جاتی ہیں ، ان حدوں کو مارکیٹ میں اتار چڑھاؤ کی بنیاد پر ایڈجسٹ کرنے پر غور کیا جاسکتا ہے۔ مثال کے طور پر ، اعلی اتار چڑھاؤ کے اوقات میں داخلے کی حد کو مناسب طریقے سے بڑھانا اور جھوٹے اشارے کو کم کرنے کے لئے باہر نکلنے کی حد کو کم کرنا۔ کم اتار چڑھاؤ کے اوقات میں ، زیادہ شدت پسند ترتیبات کو اپنایا جاسکتا ہے۔
ملٹی ٹائم سائیکل کی تصدیق: ملٹی ٹائم سائیکل تجزیہ فریم ورک متعارف کرایا گیا ہے جس میں مختصر اور درمیانی مدت کے آئی بی ایس سگنل کی ایک ساتھ تصدیق کرنے کی ضرورت ہوتی ہے تاکہ تجارت کو انجام دیا جاسکے۔ مثال کے طور پر ، ڈیلی لائن آئی بی ایس سگنل کے علاوہ ، گھڑی لائن یا 4 گھنٹے لائن کی آئی بی ایس قیمت بھی شمار کی جاسکتی ہے ، صرف اس وقت داخل ہوتی ہے جب ایک سے زیادہ ٹائم سائیکل اوورلوڈ یا اوور سیل کی حیثیت ظاہر کرتے ہیں ، جس سے سگنل کے معیار میں نمایاں اضافہ ہوتا ہے۔
اسمارٹ اسٹاپ میکانزم: موجودہ حکمت عملی صرف آئی بی ایس آؤٹ سگنل اور زیادہ سے زیادہ پوزیشن وقت کے خطرے کو کنٹرول کرنے پر انحصار کرتی ہے۔ اس سے زیادہ ذہین اسٹاپ میکانزم متعارف کرایا جاسکتا ہے۔ مثال کے طور پر ، اے ٹی آر پر مبنی متحرک اسٹاپ ، ٹریکنگ اسٹاپ یا سپورٹ / مزاحمت کی بنیاد پر اسٹاپ حکمت عملی ، منافع کو بہتر طور پر محفوظ کرنے اور ایک ہی تجارت کے خطرے کو کنٹرول کرنے کے لئے۔
مارکیٹ کی حالت خود کو اپنانا: مارکیٹ کی حالت کی شناخت کا طریقہ کار متعارف کرایا گیا ، مختلف مارکیٹ کے حالات کے تحت مختلف پیرامیٹرز کی ترتیبات کا استعمال کریں۔ مارکیٹ کی حالت کی شناخت ADX (اوسط سمت اشارے) یا دوسرے رجحان کی طاقت کے اشارے کے ذریعہ کی جاسکتی ہے ، مضبوط رجحانات کے ماحول میں IBS شرائط کو نرم کرنا ، اتار چڑھاؤ کے بازاروں میں سخت IBS کی حد کو اپنانا۔
مشین لرننگ آپٹیمائزیشن: مشین لرننگ ٹکنالوجی کا استعمال کرتے ہوئے آئی بی ایس سگنل کو بہتر بنانے اور فلٹر کرنے کے لئے۔ ٹریننگ ماڈل کی مدد سے شناخت کریں کہ کون سے آئی بی ایس سگنل زیادہ منافع بخش تجارت پیدا کرنے کا امکان رکھتے ہیں ، اور مارکیٹ کی خصوصیات کے مطابق پیرامیٹرز کو خود بخود ایڈجسٹ کریں ، تاکہ حکمت عملی کی خود کار طریقے سے کارکردگی ہو۔ یہ طریقہ حکمت عملی کی استحکام اور موافقت کو نمایاں طور پر بڑھا سکتا ہے ، خاص طور پر جب مارکیٹ کے مختلف حالات اور تجارت کی اقسام کا سامنا کرنا پڑتا ہے۔
اندرونی قیمتوں کی طاقت کا رجحان الٹ ٹریڈنگ سسٹم ایک دن کی لائن کی سطح کی تجارت کی حکمت عملی ہے جو اندرونی قیمتوں کی طاقت (IBS) اشارے اور اشاریہ منتقل اوسط (EMA) کو جوڑتا ہے۔ یہ حکمت عملی ممکنہ مارکیٹ کے الٹ پوائنٹس کی نشاندہی کرکے اور طویل مدتی رجحانات کی پیروی کرکے تجارتی فیصلوں کو بہتر بناتی ہے ، خاص طور پر اسٹاک اور امریکی انڈیکس ٹریڈنگ کے لئے موزوں ہے۔ اس کا بنیادی فائدہ اس کے معروضی ریاضیاتی ماڈل ، لچکدار پوزیشن مینجمنٹ اور بلٹ ان رسک کنٹرول میکانزم میں ہے۔
حکمت عملی SPY / SPX اور NDQ / QQQ جیسے اہم مارکیٹ انڈیکس کے لئے پیرامیٹرز کو بہتر بناتی ہے ، اور صارفین کو براہ راست سفارش کی ترتیبات پر تجارت کرنے کی اجازت دیتی ہے۔ تاہم ، کسی بھی تجارتی حکمت عملی میں خطرات موجود ہیں ، بشمول پیرامیٹرز کی حساسیت ، مارکیٹ میں ہلچل کا خطرہ ، اور تیزی سے رجحانات میں تبدیلی کے تحت پیچھے رہنا۔
مستقبل میں اصلاح کی سمت میں متحرک کمی کی ایڈجسٹمنٹ ، کثیر وقت کی مدت کی تصدیق ، ذہین اسٹاپ نقصان کا طریقہ کار ، مارکیٹ کی حالت کی خود کار طریقے سے موافقت اور مشین لرننگ کی اصلاح شامل ہیں۔ یہ بہتری حکمت عملی کی موافقت اور استحکام کو مزید بڑھا سکتی ہے ، جس سے وہ مختلف مارکیٹ کے ماحول میں اچھی کارکردگی کا مظاہرہ کرسکتی ہے۔
ایک مقدار کی تجارت کی حکمت عملی کے طور پر، اندرونی قیمت کی طاقت رجحان الٹ ٹریڈنگ سسٹم تاجروں کو ایک اصول کی بنیاد پر، مقصد ٹریڈنگ طریقہ فراہم کرتا ہے، ٹریڈنگ فیصلوں پر جذباتی عوامل کے اثر کو کم کرتا ہے، اور زیادہ مسلسل اور پیش گوئی ٹریڈنگ کے نتائج کو حاصل کرنے میں مدد ملتی ہے.
/*backtest
start: 2024-03-05 00:00:00
end: 2025-03-03 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//Implementation by AlgoTradeKit
//v.0.5
//The IBS Trading Strategy is a daily bars long-only trading system, based on the concept of Internal Bar Strength (IBS).
//The strategy aims to identify potential reversals by monitoring how the previous bar’s close positions itself within its high-low range.
//It is suitable for stock and US indices. The default parameters are optimized for SPY/SPX and NDQ/QQQ
//Setting for QQQ: 0.09, 0.985, 220, 0, 14
//Setting for SPY: 0.11, 0.995, 200, 0, 12
//@version=6
strategy("IBS (Internal Bar Strength) Trading Strategy for SPY and NDQ", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=50, pyramiding = 2, currency = currency.USD, process_orders_on_close=false)
// ***** INPUTS *****
// IBS thresholds
ibsEntryThreshold = input.float(0.09, title="IBS Entry Threshold", step=0.01, tooltip="IBS = (Previous Close - Previous Low) / (Previous High - Previous Low), and IBS value below 0.2 is typically interpreted as an oversold condition, while a value above 0.9 suggests an overbought state.")
ibsExitThreshold = input.float(0.985, title="IBS Exit Threshold", step=0.01, tooltip="IBS = (Previous Close - Previous Low) / (Previous High - Previous Low), and IBS value below 0.2 is typically interpreted as an oversold condition, while a value above 0.9 suggests an overbought state.")
// EMA period (set to 0 to disable the EMA condition)
emaPeriod = input.int(220, title="EMA Period (0 to disable)", minval=0, maxval=5000, step=1, tooltip="Exponential Moving Average Filter Period (0 to disable)")
// Minimum percentage drop required for a new entry (for dollar-cost averaging)
minEntryPct = input.float(0, title="Minimum Distance for New Entry (%)", step=0.05, minval=0.0, maxval=100, tooltip = "Distance in Price from Last Opened Position, in Percentage Terms (%)")
maxTradeDuration = input.int(title="Maximum Trade Duration (days)", defval=14, minval=1, step=1, maxval=1000, tooltip = "Exit at close if maximum trade duration is reached.")
// Persistent variable to record the bar index when the trade is entered.
var int entryBarIndex = na
// ***** EMA CALCULATION *****
// Calculate the EMA globally if the period is greater than 0, otherwise leave as na.
emaValue = emaPeriod > 0 ? ta.ema(close, emaPeriod) : na
// ***** IBS CALCULATION *****
// Calculate IBS using the previous bar’s values.
// Guard against division by zero: if previous high equals previous low, default IBS to 0.5.
prevHigh = high[1]
prevLow = low[1]
prevClose = close[1]
ibs = (prevHigh != prevLow) ? (prevClose - prevLow) / (prevHigh - prevLow) : 0.5
// ***** ENTRY AND EXIT CONDITIONS *****
// Define the EMA condition: if emaPeriod is 0, bypass the EMA check.
emaConditionLong = emaPeriod == 0 or (close > emaValue)
emaConditionShort = emaPeriod == 0 or (close < emaValue)
// Entry: IBS is below the entry threshold and the EMA condition holds.
enterLong = (ibs < ibsEntryThreshold) and emaConditionLong
enterShort = (ibs > ibsExitThreshold) and emaConditionShort
// Exit: IBS is above the exit threshold.
exitLong = ibs > ibsExitThreshold
exitShort = ibs < ibsEntryThreshold
// ***** DOLLAR-COST AVERAGING CONDITION IN PERCENTAGE *****
// Track the last entry price. Reset when there is no open position.
var float lastEntryPrice = na
if strategy.position_size == 0
lastEntryPrice := na
// If there is no previous entry, the condition is met.
// Otherwise, allow a new entry only if the current price is lower than the last entry price
// by at least the predefined percentage (converted to a fraction).
dcaCondition = na(lastEntryPrice) or ((close < lastEntryPrice) and (((lastEntryPrice - close) / lastEntryPrice) >= (minEntryPct / 100)))
dcaConditionShort = na(lastEntryPrice) or ((close > lastEntryPrice) and (((close - lastEntryPrice) / lastEntryPrice) >= (minEntryPct / 100)))
// ***** STRATEGY ORDERS *****
// Enter a long position only if both the entry condition and the DCA condition are met.
if enterLong and dcaCondition
strategy.entry("Long", strategy.long)
lastEntryPrice := close // update the last entry price
entryBarIndex := bar_index
if enterShort and dcaConditionShort
strategy.entry("Short", strategy.short)
lastEntryPrice := close // update the last entry price
entryBarIndex := bar_index
// Compute trade duration in days using the absolute difference
tradeDuration = not na(entryBarIndex) ? math.abs(bar_index - entryBarIndex) : 0
// Exit the long position when the exit condition is met or if the trade duration reaches maxTradeDuration days.
if exitLong or (tradeDuration >= maxTradeDuration)
strategy.close("Long")
// Exit the long position when the exit condition is met or if the trade duration reaches maxTradeDuration days.
if exitShort or (tradeDuration >= maxTradeDuration)
strategy.close("Short")
// ***** PLOTTING *****
// Plot IBS for reference, along with horizontal lines for the entry and exit thresholds.
//plot(ibs, title="IBS", color=color.blue, linewidth=2)
//hline(ibsEntryThreshold, title="IBS Entry Threshold", color=color.green)
//hline(ibsExitThreshold, title="IBS Exit Threshold", color=color.red)