بولنگر بینڈز اور کینڈل سٹک پیٹرن پر مبنی متحرک اتار چڑھاؤ کی تجارتی حکمت عملی

BB SMA ATR RSI ROC MTF
تخلیق کی تاریخ: 2024-11-29 16:29:01 آخر میں ترمیم کریں: 2024-11-29 16:29:01
کاپی: 0 کلکس کی تعداد: 497
1
پر توجہ دیں
1617
پیروکار

بولنگر بینڈز اور کینڈل سٹک پیٹرن پر مبنی متحرک اتار چڑھاؤ کی تجارتی حکمت عملی

جائزہ

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

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

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

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

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

اسٹریٹجک رسک

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-11-29 00:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
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")