وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ای ایم اے کراس اوور کے ساتھ بولنگر بینڈ ڈبل انٹری حکمت عملی: ایک مقداری ٹریڈنگ سسٹم جس میں رجحان کی پیروی اور اتار چڑھاؤ کے وقفے کا امتزاج ہوتا ہے

مصنف:چاؤ ژانگ، تاریخ: 2024-07-29 17:14:32
ٹیگز:ای ایم اےبی بیاے ٹی آر

img

جائزہ

بولنگر بینڈ ڈبل انٹری حکمت عملی کے ساتھ ای ایم اے کراس اوور ایک مقداری تجارتی نظام ہے جو رجحان کی پیروی اور اتار چڑھاؤ بریک آؤٹ کے طریقہ کار کو جوڑتا ہے۔ یہ حکمت عملی بنیادی طور پر مارکیٹ کے رجحانات کا تعین کرنے کے لئے ایکسپونینشل موونگ ایوریج (ای ایم اے) کراس اوور کا استعمال کرتی ہے ، جبکہ ممکنہ بریک آؤٹ کے مواقع کی نشاندہی کرنے کے لئے بولنگر بینڈ (بی بی) کا استعمال کرتی ہے۔ اس نقطہ نظر کا مقصد مضبوط مارکیٹ کے رجحانات کو پکڑنا ہے جبکہ بولنگر بینڈ بریک آؤٹ کے ذریعہ اضافی اندراج پوائنٹس فراہم کرنا ہے ، اس طرح تجارتی مواقع میں اضافہ اور سرمایہ کاری کے انتظام کو بہتر بنانا ہے۔

حکمت عملی کے اصول

  1. ای ایم اے کراس اوور: یہ حکمت عملی رجحان کی سمت کا تعین کرنے کے لئے 12 مدت اور 26 مدت کے ای ایم اے کو استعمال کرتی ہے۔ جب تیز ای ایم اے (12 مدت) سست ای ایم اے (26 مدت) سے تجاوز کرتی ہے تو خرید کا اشارہ پیدا ہوتا ہے ، اور اس کے برعکس فروخت کے اشاروں کے لئے۔

  2. بولنگر بینڈ: یہ حکمت عملی 0.9 معیاری انحراف کے ساتھ 55 پیریڈ بولنگر بینڈ کا استعمال کرتی ہے۔ جب قیمت پہلے ہی اپ ٹرینڈ میں ہونے کے دوران اوپری بینڈ سے تجاوز کرتی ہے تو ، یہ ایک اضافی اندراج کا موقع فراہم کرتی ہے۔

  3. انٹری منطق:

    • بنیادی اندراج: ای ایم اے کراس اوور یا بالینجر بینڈ کے اوپری حصے سے اوپر کی قیمتوں کا وقفہ۔
    • اضافی اندراج: اگر آپ پہلے سے ہی ایک طویل پوزیشن میں ہیں تو بولنگر بینڈ کے بریک آؤٹ پر پوزیشن کا سائز بڑھانا۔
  4. باہر نکلنے کی منطق:

    • جب تیز رفتار EMA سست EMA سے نیچے گزر جائے تو باہر نکلیں.
    • جب قیمت بولنگر بینڈ کی وسط لائن سے نیچے بند ہو جاتی ہے تو اختیاری باہر نکلنا۔
  5. سٹاپ نقصان کی ترتیب:

    • 14 پیریڈ اوسط حقیقی رینج (ATR) کا استعمال کرتے ہوئے متحرک سٹاپ نقصان۔
    • غیر اختیاری طور پر گزشتہ 5 دنوں کی سب سے کم سطح کو سٹاپ نقصان کے طور پر استعمال کرنا۔
  6. خطرے کا انتظام:

    • ہر تجارت کے لئے 3٪ اکاؤنٹ کیپٹل کا ڈیفالٹ خطرہ (ایجسٹ ایبل) ۔
    • اے ٹی آر کا استعمال متحرک سٹاپ نقصان ایڈجسٹمنٹ کے لیے، جو مارکیٹ کی اتار چڑھاؤ کے مطابق ہے۔
    • جب قیمت بولنگر بینڈ کی وسط لائن سے نیچے ہوتی ہے تو ٹریڈنگ میں اختیاری توقف۔

حکمت عملی کے فوائد

  1. کثیر جہتی تجزیہ: ٹریڈنگ سگنل کی وشوسنییتا کو بڑھانے کے لئے رجحان کی پیروی (ای ایم اے) اور اتار چڑھاؤ کے وقفے (بولنگر بینڈ) کی حکمت عملی کو یکجا کرتا ہے۔

  2. لچکدار انٹری میکانزم: بنیادی ای ایم اے کراس اوور سگنلز کے علاوہ ، یہ اضافی انٹری مواقع کے لئے بولنگر بینڈ بریک آؤٹ کا استعمال کرتا ہے ، جس سے حکمت عملی کی موافقت پذیری میں اضافہ ہوتا ہے۔

  3. متحرک رسک مینجمنٹ: اے ٹی آر کا استعمال اسٹاپ نقصانات کو طے کرنے اور پوزیشن کے سائز کو ایڈجسٹ کرنے کے لئے کیا جاتا ہے، جس سے حکمت عملی کو مختلف مارکیٹ کے حالات میں اتار چڑھاؤ کے مطابق بہتر بنایا جاسکتا ہے۔

  4. مارکیٹ کے حالات سے آگاہی: مارکیٹ کے حالات کا اندازہ کرنے کے لئے بولنگر بینڈ کی وسط لائن کا استعمال کرتا ہے ، غیر سازگار حالات میں تجارت کو روکنے کے اختیار کے ساتھ ، خطرے کو کم کرتا ہے۔

  5. سرمایہ کا بہتر انتظام: فیصد پر مبنی رسک مینجمنٹ اور اے ٹی آر پر مبنی متحرک پوزیشن سائزنگ کے ذریعے زیادہ بہتر سرمایہ کنٹرول حاصل کرتا ہے۔

  6. اعلی حسب ضرورت: متعدد سایڈست پیرامیٹرز ، جیسے ای ایم اے کے ادوار ، بولنگر بینڈ کی ترتیبات ، اور اے ٹی آر ضرب ، حکمت عملی کو مختلف تجارتی آلات اور مارکیٹ کے ماحول کے مطابق ڈھالنے کی اجازت دیتے ہیں۔

حکمت عملی کے خطرات

  1. رجحان کی تبدیلی کا خطرہ: مضبوط رجحان کی مارکیٹوں میں اچھی کارکردگی کا مظاہرہ کرتا ہے لیکن رینج کے بازاروں میں اکثر غلط بریک آؤٹ سگنل پیدا کرسکتا ہے۔

  2. اوور ٹریڈنگ کا خطرہ: بولنگر بینڈ بریک آؤٹ سے تجارتی سگنل زیادہ ہو سکتے ہیں، جس سے لین دین کی لاگت میں اضافہ ہوتا ہے۔

  3. اسلیپج کا خطرہ: انتہائی اتار چڑھاؤ والی منڈیوں میں ، داخلہ اور باہر نکلنے کی قیمتیں توقعات سے نمایاں طور پر انحراف کرسکتی ہیں۔

  4. پیرامیٹر حساسیت: حکمت عملی کی کارکردگی EMA ادوار، بولنگر بینڈ کی ترتیبات وغیرہ میں تبدیلیوں کے لئے حساس ہوسکتی ہے، جس میں محتاط اصلاح اور بیک ٹسٹنگ کی ضرورت ہوتی ہے۔

  5. مارکیٹ ماحول پر انحصار: حکمت عملی کی کارکردگی مختلف مارکیٹ سائیکلوں اور اتار چڑھاؤ کے ماحول میں متضاد ہوسکتی ہے۔

  6. سرمائے کا انتظام: فیصد پر مبنی رسک مینجمنٹ کے استعمال کے باوجود، مسلسل نقصانات کی صورت میں اکاؤنٹ کو اب بھی اہم ڈرائنگ کا سامنا کرنا پڑ سکتا ہے۔

حکمت عملی کی اصلاح کی ہدایات

  1. ملٹی ٹائم فریم تجزیہ: جھوٹے سگنل کو کم کرنے کے لئے طویل مدتی رجحان کی تصدیق ، جیسے ہفتہ وار یا ماہانہ ای ایم اے متعارف کروائیں۔

  2. اتار چڑھاؤ فلٹرنگ: سائیڈ ویز مارکیٹوں میں اوور ٹریڈنگ سے بچنے کے لئے بولنگر بینڈ پیرامیٹرز کو ایڈجسٹ کریں یا کم اتار چڑھاؤ کے ماحول میں ٹریڈنگ کو روکیں۔

  3. رفتار اشارے شامل کریں: رجحان کی طاقت اور ممکنہ الٹ سگنل کی تصدیق کے لئے آر ایس آئی یا ایم اے سی ڈی شامل کریں۔

  4. باہر نکلنے کے طریقہ کار کو بہتر بنائیں: منافع کو بہتر طریقے سے مقفل کرنے کے لئے ٹرائلنگ اسٹاپ یا اے ٹی آر پر مبنی متحرک منافع کے اہداف کا استعمال کرنے پر غور کریں۔

  5. مارکیٹ اسٹیٹ کی درجہ بندی: مارکیٹ کے ماحول کی درجہ بندی کا نظام تیار کریں تاکہ مارکیٹ کی مختلف حالتوں میں مختلف پیرامیٹرز کی ترتیبات کا استعمال کیا جاسکے۔

  6. مشین لرننگ کی اصلاح: مشین لرننگ الگورتھم کا استعمال مختلف مارکیٹ کے حالات کو اپنانے کے لئے حکمت عملی کے پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرنے کے لئے کریں۔

  7. وابستگی کا تجزیہ: مجموعی طور پر پورٹ فولیو کے خطرے اور واپسی کی خصوصیات کو بہتر بنانے کے لئے متعدد اثاثوں کی تجارت کرتے وقت آلات کے مابین وابستگیوں پر غور کریں۔

  8. بنیادی عوامل کو شامل کریں: اسٹاک یا اجناس کے لئے ، انٹری سگنل کے معیار کو بہتر بنانے کے لئے متعلقہ بنیادی اشارے شامل کرنے پر غور کریں۔

نتیجہ

ای ایم اے کراس اوور کے ساتھ بولنگر بینڈ ڈبل انٹری حکمت عملی ایک مقداری تجارتی نظام ہے جو رجحان کی پیروی اور اتار چڑھاؤ بریک آؤٹ تصورات کو جوڑتا ہے۔ یہ ای ایم اے کراس اوور کے ذریعہ بڑے رجحانات کو پکڑتا ہے اور بولنگر بینڈ بریک آؤٹ کا استعمال کرتے ہوئے اضافی انٹری کے مواقع فراہم کرتا ہے ، جبکہ سرمایہ کے استعمال کو بہتر بنانے کے لئے متحرک رسک مینجمنٹ کے طریقے استعمال کرتا ہے۔ حکمت عملی کی طاقت اس کے کثیر جہتی تجزیہ کے نقطہ نظر اور لچکدار رسک مینجمنٹ میں ہے۔ لیکن اس میں رجحان کی تبدیلی اور اوور ٹریڈنگ جیسے خطرات کا بھی سامنا کرنا پڑتا ہے۔

کثیر ٹائم فریم تجزیہ ، اتار چڑھاؤ فلٹرنگ ، رفتار کے اشارے اور دیگر طریقوں کو شامل کرنے کے ذریعے اصلاح کے لئے کافی گنجائش ہے۔ خاص طور پر ، مشین لرننگ الگورتھم اور مارکیٹ کی حالت کی درجہ بندی کے نظام متعارف کرانے سے حکمت عملی کی موافقت اور استحکام میں نمایاں اضافہ ہوسکتا ہے۔ تاہم ، عملی درخواست میں ، جامع بیک ٹسٹنگ اور فارورڈ ٹیسٹنگ اب بھی ضروری ہے ، اور مخصوص تجارتی آلات اور مارکیٹ کے ماحول کی بنیاد پر پیرامیٹر کی محتاط ایڈجسٹمنٹ کی ضرورت ہے۔

مجموعی طور پر ، یہ ایک اچھی طرح سے ڈیزائن کیا گیا اور وعدہ کرنے والا مقداری تجارتی حکمت عملی کا فریم ورک ہے۔ مسلسل اصلاح اور محتاط انتظام کے ذریعے ، اس میں سرمایہ کاروں کے لئے موزوں ایک مضبوط تجارتی نظام بننے کی صلاحیت ہے جو خطرات پر قابو پانے کے ساتھ ساتھ رجحانات کو بھی پکڑنا چاہتے ہیں۔


/*backtest
start: 2023-07-23 00:00:00
end: 2024-07-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover with BB Double Entry", overlay=true, initial_capital=1000, default_qty_type=strategy.cash, default_qty_value=100)

// Input parameters
fastLength = input.int(12, "Fast EMA Length")
slowLength = input.int(26, "Slow EMA Length")
atrPeriod = input.int(14, "ATR Period")
atrMultiplier = input.float(1.0, "ATR Multiplier")
useATRStopLoss = input.bool(true, "Use ATR Stop Loss")
stopLossDays = input.int(5, "Number of days for stop loss", minval=1, maxval=50)
riskPerTrade = input.float(3.0, "Risk per trade (%)", minval=0.1, maxval=5, step=0.1)
bbRiskPerTrade = input.float(1.5, "Risk for BB breakout trade (%)", minval=0.1, maxval=5, step=0.1)

// Bollinger Bands parameters
bbLength = input.int(55, "BB Length")
bbMult = input.float(0.9, "BB Standard Deviation")
useBBPauseResume = input.bool(false, "Use BB for Pause/Resume trading")

// Backtesting dates
startDate = input(timestamp("2020-01-01"), "Start Date")
endDate = input(timestamp("9999-12-31"), "End Date")

// Calculate EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)

// Calculate ATR
atr = ta.atr(atrPeriod)

// Calculate Bollinger Bands
bbBasis = ta.sma(close, bbLength)
bbDev = bbMult * ta.stdev(close, bbLength)
bbUpper = bbBasis + bbDev
bbLower = bbBasis - bbDev

// Define trading conditions
longCondition = ta.crossover(fastEMA, slowEMA)
shortCondition = ta.crossunder(fastEMA, slowEMA)
bullish = fastEMA > slowEMA
bearish = fastEMA < slowEMA

// Bollinger Bands breakout
bbBreakout = close > bbUpper and close[1] <= bbUpper[1]

// Calculate lowest low for stop loss
lowestLow = ta.lowest(low, stopLossDays)

// Variables to store entry price and stop loss
var float entryPrice = na
var float stopLoss = na
var bool inPosition = false
var bool pauseTrading = false

// Entry logic
entryConditions = (longCondition or (bbBreakout and bullish)) and
                  (not useBBPauseResume or close > bbBasis) and
                  not pauseTrading

if entryConditions and not inPosition
    entryPrice := close
    atrStopLoss = close - (atr * atrMultiplier)
    lowStopLoss = lowestLow
    stopLoss := useATRStopLoss ? atrStopLoss : lowStopLoss
    
    riskAmount = strategy.equity * (riskPerTrade / 100)
    positionSize = riskAmount / (close - stopLoss)
    
    strategy.entry("Long", strategy.long, qty=positionSize)
    inPosition := true
    pauseTrading := false
    
    alert("BUY," + syminfo.ticker + ",EntryPrice=" + str.tostring(close) + ",StopLoss=" + str.tostring(stopLoss) + ",PositionSize=" + str.tostring(positionSize), alert.freq_once_per_bar_close)

// Additional entry on BB breakout
if inPosition and bbBreakout and bullish and (not useBBPauseResume or close > bbBasis)
    bbRiskAmount = strategy.equity * (bbRiskPerTrade / 100)
    bbPositionSize = bbRiskAmount / (close - stopLoss)
    
    strategy.entry("Long_BB", strategy.long, qty=bbPositionSize)
    
    alert("ADD," + syminfo.ticker + ",EntryPrice=" + str.tostring(close) + ",StopLoss=" + str.tostring(stopLoss) + ",PositionSize=" + str.tostring(bbPositionSize), alert.freq_once_per_bar_close)

// Exit logic
if shortCondition or (useBBPauseResume and inPosition and close < bbBasis)
    if shortCondition
        strategy.close_all(comment="EMA Crossdown")
        inPosition := false
        pauseTrading := false
        alert("SELL," + syminfo.ticker + ",Reason=EMA_Crossdown", alert.freq_once_per_bar_close)
    else if useBBPauseResume
        strategy.close_all(comment="Close under BB basic")
        pauseTrading := true
        alert("SELL," + syminfo.ticker + ",Reason=Below_BB_Basic", alert.freq_once_per_bar_close)
    
    entryPrice := na
    stopLoss := na

// Resume trading if price closes above BB basic
if useBBPauseResume and pauseTrading and close > bbBasis
    pauseTrading := false
    alert("RESUME," + syminfo.ticker, alert.freq_once_per_bar_close)

// Stop loss
if strategy.position_size > 0
    strategy.exit("Stop Loss", "Long", stop=stopLoss)
    strategy.exit("Stop Loss", "Long_BB", stop=stopLoss)
    if close <= stopLoss
        alert("SELL," + syminfo.ticker + ",Reason=Stop_Loss", alert.freq_once_per_bar_close)

// Plotting
plot(fastEMA, color=color.new(color.blue, 0), title="Fast EMA")
plot(slowEMA, color=color.new(color.red, 0), title="Slow EMA")
plot(bbUpper, color=color.new(color.green, 50), title="BB Upper")
plot(bbLower, color=color.new(color.green, 50), title="BB Lower")
plot(bbBasis, color=color.new(color.yellow, 50), title="BB Basic")
plot(strategy.position_size > 0 ? stopLoss : na, color=color.red, style=plot.style_cross, linewidth=2, title="Stop Loss")

// Alert conditions
alertcondition(entryConditions, title="Buy Alert", message="Buy {{ticker}}")
alertcondition(bbBreakout and inPosition and bullish and (not useBBPauseResume or close > bbBasis), title="Add Position Alert", message="Add Position {{ticker}}")
alertcondition(shortCondition, title="Sell Alert (EMA)", message="Sell {{ticker}} (EMA crossdown)")
alertcondition(useBBPauseResume and inPosition and close < bbBasis, title="Pause Alert", message="Pause trading {{ticker}} (Close under BB basic)")
alertcondition(useBBPauseResume and pauseTrading and close > bbBasis, title="Resume Alert", message="Resume trading {{ticker}} (Close above BB basic)")

متعلقہ

مزید