بولنگر بینڈز اور کینڈل سٹک پیٹرن پر مبنی ایڈوانس ٹرینڈ ٹریڈنگ حکمت عملی

BB ATR RR PSR MA SD WBR
تخلیق کی تاریخ: 2024-11-27 14:18:33 آخر میں ترمیم کریں: 2024-11-27 14:18:33
کاپی: 1 کلکس کی تعداد: 413
1
پر توجہ دیں
1617
پیروکار

بولنگر بینڈز اور کینڈل سٹک پیٹرن پر مبنی ایڈوانس ٹرینڈ ٹریڈنگ حکمت عملی

جائزہ

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

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

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

اسٹریٹجک فوائد

  1. خطرے پر قابو پانے کی اہمیت: فکسڈ تناسب خطرے کے انتظام کے ماڈل کا استعمال کرتے ہوئے ، اس بات کو یقینی بنائیں کہ ہر تجارت کے لئے خطرے کی نالی قابل کنٹرول حدود میں ہے
  2. پوائنٹ ٹو پوائنٹ لچک: مختلف ٹریڈنگ سٹائلز کے مطابق مختلف پوائنٹ ٹو قیمتوں کے اختیارات
  3. تکنیکی اشارے کا امتزاج: بولنگ بینڈ کو گرافک شکل تجزیہ کے ساتھ جوڑ کر سگنل کی وشوسنییتا میں اضافہ
  4. معقول اسٹاپ نقصان کی ترتیب: مارکیٹ کے قوانین کے مطابق کلیدی معاونت مزاحمت کی جگہ کی ترتیب کے ذریعہ اسٹاپ نقصان
  5. ٹرانزیکشن مینجمنٹ میں بہتری: آرڈر کی میعاد ختم ہونے کا طریقہ کار شامل ہے تاکہ میعاد ختم ہونے والے سگنل سے متعلق غلط کارروائیوں سے بچا جاسکے

اسٹریٹجک رسک

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

حکمت عملی کی اصلاح کی سمت

  1. ٹرانزیکشن اشارے متعارف کرانے: سگنل کی تصدیق کے وقت ٹرانزیکشن تجزیہ کو بڑھا کر سگنل کی وشوسنییتا میں اضافہ کیا جاسکتا ہے
  2. نقصان کو روکنے کے طریقہ کار کو بہتر بنائیں: متحرک روکنے کو متعارف کرانے پر غور کریں ، جو مارکیٹ میں اتار چڑھاؤ کے مطابق خود بخود روکنے کے فاصلے کو ایڈجسٹ کرے
  3. مارکیٹ کے حالات کو فلٹر کریں: رجحان کی طاقت کے اشارے شامل کریں ، مختلف مارکیٹ کے حالات میں حکمت عملی کے پیرامیٹرز کو ایڈجسٹ کریں
  4. پوزیشن مینجمنٹ کو بہتر بنائیں: متحرک پوزیشن مینجمنٹ میکانزم متعارف کرانے پر غور کریں ، مارکیٹ میں اتار چڑھاؤ کے مطابق خطرے کے دروازے کو ایڈجسٹ کریں
  5. وقت کا فلٹر شامل کریں: مارکیٹ میں زیادہ اتار چڑھاؤ کے اوقات میں تجارت سے بچنے کے لئے وقت کا فلٹر شامل کیا جاسکتا ہے

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-01 00:00:00
end: 2024-11-26 00:00:00
period: 12h
basePeriod: 12h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trade Entry Detector, based on Wick to Body Ratio when price tests Bollinger Bands", overlay=true, default_qty_type=strategy.fixed)

// Input for primary analysis time frame
timeFrame = "D"  // Daily time frame

// Bollinger Band settings
length = input.int(20, title="Bollinger Band Length", minval=1)
mult = input.float(2.0, title="Standard Deviation Multiplier", minval=0.1)
source = input(close, title="Source")

// Entry ratio settings
wickToBodyRatio = input.float(1.0, title="Minimum Wick-to-Body Ratio", minval=0)

// Order Fill Timing Option
fillOption = input.string("Daily Close", title="Order Fill Timing", options=["Daily Close", "Daily Open", "HOD", "LOD"])

// Account and risk settings
accountBalance = 100000  // Account balance in dollars
riskPercentage = 1.0     // Risk percentage per trade
riskAmount = (riskPercentage / 100) * accountBalance // Fixed 1% risk amount

// Request daily data for calculations
dailyHigh = request.security(syminfo.tickerid, timeFrame, high)
dailyLow = request.security(syminfo.tickerid, timeFrame, low)
dailyClose = request.security(syminfo.tickerid, timeFrame, close)
dailyOpen = request.security(syminfo.tickerid, timeFrame, open)

// Calculate Bollinger Bands on the daily time frame
dailyBasis = request.security(syminfo.tickerid, timeFrame, ta.sma(source, length))
dailyDev = mult * request.security(syminfo.tickerid, timeFrame, ta.stdev(source, length))
dailyUpperBand = dailyBasis + dailyDev
dailyLowerBand = dailyBasis - dailyDev

// Calculate the body and wick sizes on the daily time frame
dailyBodySize = math.abs(dailyOpen - dailyClose)
dailyUpperWickSize = dailyHigh - math.max(dailyOpen, dailyClose)
dailyLowerWickSize = math.min(dailyOpen, dailyClose) - dailyLow

// Conditions for a candle with an upper wick or lower wick that touches the Bollinger Bands
upperWickCondition = (dailyUpperWickSize / dailyBodySize >= wickToBodyRatio) and (dailyHigh > dailyUpperBand)
lowerWickCondition = (dailyLowerWickSize / dailyBodySize >= wickToBodyRatio) and (dailyLow < dailyLowerBand)

// Define the swing high and swing low for stop loss placement
var float swingLow = na
var float swingHigh = na

if (ta.pivothigh(dailyHigh, 5, 5))
    swingHigh := dailyHigh[5]

if (ta.pivotlow(dailyLow, 5, 5))
    swingLow := dailyLow[5]

// Determine entry price based on chosen fill option
var float longEntryPrice = na
var float shortEntryPrice = na

if lowerWickCondition
    longEntryPrice := fillOption == "Daily Close" ? dailyClose :
                      fillOption == "Daily Open" ? dailyOpen :
                      fillOption == "HOD" ? dailyHigh : dailyLow

if upperWickCondition
    shortEntryPrice := fillOption == "Daily Close" ? dailyClose :
                       fillOption == "Daily Open" ? dailyOpen :
                       fillOption == "HOD" ? dailyHigh : dailyLow

// Execute the long and short entries with expiration
var int longOrderExpiry = na
var int shortOrderExpiry = na

if not na(longEntryPrice)
    longOrderExpiry := bar_index + 2  // Order expires after 2 days

if not na(shortEntryPrice)
    shortOrderExpiry := bar_index + 2  // Order expires after 2 days

// Check expiration and execute orders
if (longEntryPrice and bar_index <= longOrderExpiry and high >= longEntryPrice)
    longStopDistance = close - nz(swingLow, close)
    longPositionSize = longStopDistance > 0 ? riskAmount / longStopDistance : na
    if (not na(longPositionSize))
        strategy.entry("Long", strategy.long, qty=longPositionSize)
    longEntryPrice := na  // Reset after entry

if (shortEntryPrice and bar_index <= shortOrderExpiry and low <= shortEntryPrice)
    shortStopDistance = nz(swingHigh, close) - close
    shortPositionSize = shortStopDistance > 0 ? riskAmount / shortStopDistance : na
    if (not na(shortPositionSize))
        strategy.entry("Short", strategy.short, qty=shortPositionSize)
    shortEntryPrice := na  // Reset after entry

// Exit logic: hit the opposing Bollinger Band
if (strategy.position_size > 0) // Long position
    strategy.exit("Exit Long", "Long", limit=dailyUpperBand)
else if (strategy.position_size < 0) // Short position
    strategy.exit("Exit Short", "Short", limit=dailyLowerBand)

if (strategy.position_size > 0) // Long position
    strategy.exit("Stop Loss Long", "Long", stop=swingLow)
else if (strategy.position_size < 0) // Short position
    strategy.exit("Stop Loss Short", "Short", stop=swingHigh)

// Plot daily Bollinger Bands and levels on the chosen time frame
plot(dailyUpperBand, color=color.blue, linewidth=1, title="Daily Upper Bollinger Band")
plot(dailyLowerBand, color=color.blue, linewidth=1, title="Daily Lower Bollinger Band")
plot(dailyBasis, color=color.gray, linewidth=1, title="Daily Middle Bollinger Band")