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

درست منافع اور سٹاپ نقصان کی حکمت عملی کے ساتھ متحرک رجحان کے بعد

مصنف:چاؤ ژانگ، تاریخ: 2024-07-31 14:27:55
ٹیگز:ای ایم اےاے ٹی آرٹی پیSL

img

جائزہ

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

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

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

  2. انٹری سگنل: یہ حکمت عملی تین لگاتار موم بتیوں کی قیمت کی کارروائی کا تجزیہ کرکے انٹری ٹائمنگ کا تعین کرتی ہے۔ خاص طور پر یہ مندرجہ ذیل نمونوں کی تلاش کرتی ہے۔

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

  4. متحرک ٹیک منافع: اندراج کے بعد ، حکمت عملی حالیہ اعلی (لانگ کے لئے) یا کم (شارٹس کے لئے) کی بنیاد پر منافع حاصل کرنے کے اہداف طے کرتی ہے۔ یہ طریقہ مضبوط رجحانات میں زیادہ منافع حاصل کرنے کی اجازت دیتا ہے۔

  5. موافقت پذیر سٹاپ نقصان: سٹاپ نقصان کی پوزیشنیں حالیہ کم (لانگ کے لئے) یا اعلی (شارٹس کے لئے) پر مقرر کی جاتی ہیں ، جو مارکیٹ کی ساخت پر مبنی متحرک تحفظ فراہم کرتی ہیں۔

  6. ریئل ٹائم ایگزیکشن: حکمت عملی ہر موم بتی کے اختتام پر مارکیٹ کے حالات کا اندازہ کرتی ہے ، اس بات کو یقینی بناتی ہے کہ فیصلے تازہ ترین مارکیٹ کے اعداد و شمار پر مبنی ہوں۔

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

  1. رجحان کی سیدھ: ای ایم اے فلٹر اس بات کو یقینی بناتا ہے کہ تجارت کی سمت اہم رجحان کے مطابق ہے، منافع بخش تجارت کا امکان بڑھاتا ہے.

  2. درست اندراجات: داخلے کے سخت شرائط (تسلسل میں قیمتوں کی رفتار اور اتار چڑھاؤ کی تصدیق) جھوٹے سگنل کو کم کرنے اور تجارت کے معیار کو بہتر بنانے میں مدد کرتی ہیں۔

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

  4. اتار چڑھاؤ کا استعمال: اے ٹی آر متغیر صرف اس وقت اندراج کو یقینی بناتا ہے جب مارکیٹ میں کافی تجارتی مواقع موجود ہوں ، کم اتار چڑھاؤ کے ادوار کے دوران زیادہ تجارت سے گریز کریں۔

  5. ملٹی ٹائم فریم موافقت: حکمت عملی کے پیرامیٹرز کو مختلف تجارتی آلات اور ٹائم فریم کے لئے ایڈجسٹ کیا جاسکتا ہے ، جس سے درخواست کے وسیع امکانات پیدا ہوتے ہیں۔

  6. بصری آراء: واضح چارٹ مارکر (بشمول خرید / فروخت سگنل ، منافع لینے اور اسٹاپ نقصان کے ٹرگرز) تاجروں کو مارکیٹ کی بدیہی بصیرت فراہم کرتے ہیں۔

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

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

  2. پھسلنے کا اثر: تیزی سے چلنے والے بازاروں میں ، اصل عملدرآمد کی قیمتیں سگنل کی تخلیق سے نمایاں طور پر مختلف ہوسکتی ہیں۔

  3. اوور ٹریڈنگ: اعلی اتار چڑھاؤ کے ادوار کے دوران ، حکمت عملی سے زیادہ سگنل پیدا ہوسکتے ہیں ، جس سے تجارتی اخراجات میں اضافہ ہوتا ہے۔

  4. رجحان کی تبدیلی میں تاخیر: ای ایم اے پر انحصار کرنے سے رجحان کی تبدیلی کے ابتدائی مراحل میں مواقع ضائع یا غیر ضروری نقصانات ہوسکتے ہیں۔

  5. پیرامیٹر حساسیت: حکمت عملی کی کارکردگی ان پٹ پیرامیٹرز (جیسے ای ایم اے مدت ، اے ٹی آر ضرب) کے لئے انتہائی حساس ہوسکتی ہے ، جس میں محتاط اصلاح کی ضرورت ہوتی ہے۔

ان خطرات کو کم کرنے کے لیے درج ذیل اقدامات پر غور کریں:

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

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

  1. ملٹی ٹائم فریم تجزیہ: اعلی ٹائم فریم سے ٹرینڈ کی معلومات کو مربوط کرنے سے انٹری فیصلے کی درستگی میں بہتری آسکتی ہے۔ مثال کے طور پر ، روزانہ ای ایم اے کو اضافی ٹرینڈ فلٹر کے طور پر شامل کرنا۔

  2. بہتر رجحان کی نشاندہی: زیادہ درست رجحان کی نشاندہی کے لئے زیادہ نفیس رجحان اشارے جیسے ڈائریکشنل موومنٹ انڈیکس (ڈی ایم آئی) یا پیرابولک SAR کا استعمال کرنے پر غور کریں۔

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

  4. داخلہ کے بہتر حالات: قیمت کی رفتار کو درست کرنے اور جھوٹے اشاروں کو کم کرنے کے لئے حجم کی تصدیق یا دیگر تکنیکی اشارے (جیسے آر ایس آئی یا ایم اے سی ڈی) شامل کریں۔

  5. رسک مینجمنٹ کو بہتر بنانا: اکاؤنٹ کے سائز کی بنیاد پر پوزیشن سائزنگ ایڈجسٹمنٹ کو نافذ کریں تاکہ ہر تجارت کے لئے مستقل خطرہ کو یقینی بنایا جاسکے۔ تجارتی فیصلوں کو بہتر بنانے کے لئے ہدف کے رسک - انعام کے تناسب کا استعمال کرنے پر غور کریں۔

  6. مارکیٹ کے ماحول میں موافقت: مارکیٹ کے ماحول کی درجہ بندی کا نظام تیار کریں (جیسے ، رجحان ، حد ، اعلی / کم اتار چڑھاؤ) اور مختلف مارکیٹ کی حالتوں کی بنیاد پر حکمت عملی کے پیرامیٹرز کو ایڈجسٹ کریں۔

  7. مشین لرننگ انٹیگریشن: پیرامیٹرز کے انتخاب کو بہتر بنانے یا انٹری / آؤٹ پٹ کے بہترین اوقات کی پیش گوئی کرنے کے لئے مشین لرننگ الگورتھم کا استعمال کریں ، حکمت عملی کی موافقت کو بڑھائیں۔

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

نتیجہ

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

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

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

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


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

//@version=5
strategy("Scalp Slayer (i)", overlay=true)

// Input Parameters
filterNumber = input.float(1.5, "Filter Number", minval=1.0, maxval=10.0, tooltip="Higher = More aggressive Filter, Lower = Less aggressive")
emaTrendPeriod = input.int(50, "EMA Trend Period", minval=1, tooltip="Period for the EMA used for trend filtering")
lookbackPeriod = input.int(20, "Lookback Period for Highs/Lows", minval=1, tooltip="Period for determining recent highs/lows")
colorTP = input.color(title='Take Profit Color', defval=color.orange)
colorSL = input.color(title='Stop Loss Color', defval=color.red)  // Added color for Stop Loss

// Inputs for visibility
showBuyLabels = input.bool(true, title="Show Buy Labels")
showSellLabels = input.bool(true, title="Show Sell Labels")
showStrategy = input.bool(true, title="Show Strategy", tooltip="Enable for strategy testing")

// Calculations
tr = high - low
ema = filterNumber * ta.ema(tr, 50)
trendEma = ta.ema(close, emaTrendPeriod)  // Calculate the EMA for the trend filter

// Ensure calculations are based on historical data only
recentHigh = ta.highest(high, lookbackPeriod)
recentLow = ta.lowest(low, lookbackPeriod)

// Variables to track the entry prices for profit target and stop-loss
var float entryPriceLong = na
var float entryPriceShort = na
var float targetPriceLong = na
var float targetPriceShort = na
var float stopLossLong = na
var float stopLossShort = na

// Buy and Sell Conditions with Trend Filter
buy = close > trendEma and  // Buy only if above the trend EMA
      close[2] > open[2] and close[1] > open[1] and close > open and 
      (math.abs(close[2] - open[2]) > math.abs(close[1] - open[1])) and 
      (math.abs(close - open) > math.abs(close[1] - open[1])) and 
      close > close[1] and close[1] > close[2] and tr > ema

sell = close < trendEma and  // Sell only if below the trend EMA
       close[2] < open[2] and close[1] < open[1] and close < open and 
       (math.abs(close[2] - open[2]) > math.abs(close[1] - open[1])) and 
       (math.abs(close - open) > math.abs(close[1] - open[1])) and 
       close < close[1] and close[1] < close[2] and tr > ema

// Entry Rules
if (buy and barstate.isconfirmed)  // Check for buy condition on candle close
    if (showStrategy)
        strategy.entry("Buy", strategy.long, comment="Buy at Close")
    entryPriceLong := close  // Track entry price for long position
    targetPriceLong := recentHigh  // Set take profit target to recent high
    stopLossLong := recentLow  // Set stop-loss to recent low

if (sell and barstate.isconfirmed)  // Check for sell condition on candle close
    if (showStrategy)
        strategy.entry("Sell", strategy.short, comment="Sell at Close")
    entryPriceShort := close  // Track entry price for short position
    targetPriceShort := recentLow  // Set take profit target to recent low
    stopLossShort := recentHigh  // Set stop-loss to recent high

// Take Profit and Stop Loss Logic
signalBuyTPPrint = (not na(entryPriceLong) and close >= targetPriceLong)
signalSellTPPrint = (not na(entryPriceShort) and close <= targetPriceShort)

signalBuySLPrint = (not na(entryPriceLong) and close <= stopLossLong)
signalSellSLPrint = (not na(entryPriceShort) and close >= stopLossShort)

if (signalBuyTPPrint)
    if (showStrategy)
        strategy.close("Buy", comment="Close Buy at Profit Target")
    entryPriceLong := na  // Reset entry price for long position
    targetPriceLong := na  // Reset target price for long position
    stopLossLong := na  // Reset stop-loss for long position

if (signalSellTPPrint)
    if (showStrategy)
        strategy.close("Sell", comment="Close Sell at Profit Target")
    entryPriceShort := na  // Reset entry price for short position
    targetPriceShort := na  // Reset target price for short position
    stopLossShort := na  // Reset stop-loss for short position

if (signalBuySLPrint)
    if (showStrategy)
        strategy.close("Buy", comment="Close Buy at Stop Loss")
    entryPriceLong := na  // Reset entry price for long position
    targetPriceLong := na  // Reset target price for long position
    stopLossLong := na  // Reset stop-loss for long position

if (signalSellSLPrint)
    if (showStrategy)
        strategy.close("Sell", comment="Close Sell at Stop Loss")
    entryPriceShort := na  // Reset entry price for short position
    targetPriceShort := na  // Reset target price for short position
    stopLossShort := na  // Reset stop-loss for short position

// Plot Buy and Sell Labels with Visibility Conditions
plotshape(showBuyLabels and buy, "Buy", shape.labelup, location=location.belowbar, color=color.green, text="BUY", textcolor=color.white, size=size.tiny, offset=1)
plotshape(showSellLabels and sell, "Sell", shape.labeldown, location=location.abovebar, color=color.red, text="SELL", textcolor=color.white, size=size.tiny, offset=1)

// Plot Take Profit Flags
plotshape(showBuyLabels and signalBuyTPPrint, title="Take Profit (buys)", text="TP", style=shape.flag, location=location.abovebar, color=colorTP, textcolor=color.white, size=size.tiny)
plotshape(showSellLabels and signalSellTPPrint, title="Take Profit (sells)", text="TP", style=shape.flag, location=location.belowbar, color=colorTP, textcolor=color.white, size=size.tiny)

// Plot Stop Loss "X" Marker
plotshape(showBuyLabels and signalBuySLPrint, title="Stop Loss (buys)", text="X", style=shape.xcross, location=location.belowbar, color=colorSL, textcolor=color.white, size=size.tiny)
plotshape(showSellLabels and signalSellSLPrint, title="Stop Loss (sells)", text="X", style=shape.xcross, location=location.abovebar, color=colorSL, textcolor=color.white, size=size.tiny)

// Plot Trend EMA for reference
plot(showStrategy ? trendEma : na, title="Trend EMA", color=color.purple, linewidth=2)

// Plot recent high and low for debugging and validation
plot(showStrategy ? recentHigh : na, title="Recent High", color=color.green, linewidth=1)
plot(showStrategy ? recentLow : na, title="Recent Low", color=color.red, linewidth=1)

// Debugging: Plot bar index to verify real-time behavior
plot(showStrategy ? bar_index : na, title="Bar Index", color=color.blue)

// Debugging: Print the take profit and stop loss conditions
//label.new(bar_index, high, text="TP Buy: " + tostring(signalBuyTPPrint) + "\nSL Buy: " + tostring(signalBuySLPrint) + "\nTP Sell: " + tostring(signalSellTPPrint) + "\nSL Sell: " + tostring(signalSellSLPrint), color=color.blue, textcolor=color.white, size=size.small, style=label.style_label_down)


متعلقہ

مزید