مومنٹم بریک آؤٹ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-17 13:58:19
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

اس حکمت عملی کا بنیادی اشارے قیمت کی رفتار ہے۔ رفتار کا حساب اس طرح کیا جاتا ہے:

momentum = close - close[n] 

جہاں n رفتار کے دورانیے کی لمبائی کی نمائندگی کرتا ہے۔ جب رفتار > 0 ، اس کا مطلب یہ ہے کہ موجودہ مدت کے دوران قیمت بڑھ رہی ہے۔ جب رفتار < 0 ، اس کا مطلب یہ ہے کہ موجودہ مدت کے دوران قیمت گر رہی ہے۔

حکمت عملی سب سے پہلے ایک confirmBars پیرامیٹر طے کرتی ہے ، جو تجارت کو انجام دینے سے پہلے رجحان کے فیصلے کے لئے درکار موم بتیوں کی تعداد کی نمائندگی کرتی ہے۔ بیک ٹیسٹ رینج کے اندر ، اگر confirmBars موم بتیوں کے لئے رفتار > 0 برقرار رہتی ہے تو ، ایک لمبا اندراج کیا جاتا ہے۔ اگر confirmBars موم بتیوں کے لئے رفتار < 0 برقرار رہتی ہے تو ، ایک مختصر اندراج کیا جاتا ہے۔

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

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

یہ ایک نسبتا سادہ رجحان ہے جس میں مندرجہ ذیل فوائد ہیں:

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

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

اس حکمت عملی میں کچھ خطرات بھی ہیں:

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

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

حکمت عملی کو کئی پہلوؤں میں بہتر بنایا جا سکتا ہے:

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

خلاصہ

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


/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Momentum Strategy [TS Trader]", overlay=true)

confirmBars = input(1)
momentumLength = input(14, title="Momentum Length")

price = close
momentum = close - close[momentumLength]

// === INPUT BACKTEST RANGE ===
fromYear = input.int(2019, title="Backtest Start Year")
fromMonth = input.int(1, title="Backtest Start Month", minval=1, maxval=12)
fromDay = input.int(1, title="Backtest Start Day", minval=1, maxval=31)
toYear = input.int(2023, title="Backtest End Year")
toMonth = input.int(12, title="Backtest End Month", minval=1, maxval=12)
toDay = input.int(31, title="Backtest End Day", minval=1, maxval=31)

startTimestamp = timestamp(fromYear, fromMonth, fromDay, 00, 00)
endTimestamp = timestamp(toYear, toMonth, toDay, 23, 59)

inBacktestRange = true

// === STRATEGY LOGIC ===
bcond = momentum > 0
bcount = 0
bcount := bcond ? nz(bcount[1]) + 1 : 0
if (bcount == confirmBars and inBacktestRange)
    strategy.entry("Buy", strategy.long, comment="Long")

scond = momentum < 0
scount = 0
scount := scond ? nz(scount[1]) + 1 : 0
if (scount == confirmBars and inBacktestRange)
    strategy.entry("Sell", strategy.short, comment="Short")

// Plotting Momentum
plot(momentum, title="Momentum", color=color.purple)


مزید