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

لکیری رجسٹریشن چلتی اوسط ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-25 10:58:02
ٹیگز:

img

جائزہ

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

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

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

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

خاص طور پر، حکمت عملی تجارتی سگنل کا تعین کرنے کے لئے مندرجہ ذیل اقدامات پر عمل کرتی ہے:

  1. قیمتوں کی n دن لکیری رجسٹریشن لائن کا حساب لگائیں lrLine

  2. lrLine کے m-دن سادہ چلتی اوسط حساب کریں lrMA کہا جاتا ہے

  3. قیمتوں کا ایکسپونینشل چلتا ہوا اوسط حساب کریں جسے ای ایم اے کہا جاتا ہے

  4. جب ای ایم اے آئی آر ایم اے کے اوپر عبور کرتا ہے تو ، خریدنے کا سگنل طویل مدت تک پیدا ہوتا ہے

  5. جب ای ایم اے آئی آر ایم اے سے نیچے گزرتا ہے تو ، فروخت کا سگنل تیار کریں

  6. صرف خریدنے کے سگنل پر غور کریں جب مارکیٹ تیزی سے ہے

  7. سگنلز کی بنیاد پر تجارت انجام دیں

اندراجات کا تعین کرنے کے لئے رجعت اور چلتی اوسط کے درمیان کراس اوور کا استعمال کرتے ہوئے ، حکمت عملی غلط توڑ کو مؤثر طریقے سے فلٹر کرسکتی ہے اور کم خریدنے اور اعلی فروخت کے لئے الٹ کی نشاندہی کرسکتی ہے۔

فوائد

  • درست سگنل کی نشاندہی کے لئے رجحان اور رجعت تجزیہ کو یکجا کرتا ہے
  • رجعت لائن حساب اور لاگو کرنے کے لئے آسان ہے
  • غیر سازگار تجارت سے بچنے کے لئے مارکیٹ فلٹرنگ کا استعمال کرتا ہے
  • حکمت عملی کو ایڈجسٹ کرنے کے لئے حسب ضرورت پیرامیٹرز
  • کم خریدنے اور منافع کے لئے اعلی فروخت کرنے کے لئے حاصل

خطرات

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

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

بہتری

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

  1. مختلف اقسام کے ایم اے کی جانچ کے ذریعے اوسط اصلاح

  2. حساب کی مدت کو ایڈجسٹ کرکے رجعت لائن کی اصلاح

  3. مختلف اشارے کی جانچ کے ذریعے مارکیٹ فلٹر کی اصلاح

  4. سخت بیک ٹسٹنگ کے ذریعے پیرامیٹر کی اصلاح

  5. مختلف سٹاپ نقصان منطق کی جانچ کی طرف سے سٹاپ نقصان کی اصلاح

  6. اخراجات کی بنیاد پر تجارت کی تعدد کو ایڈجسٹ کرکے لاگت کو بہتر بنانا

یہ اصلاحات حکمت عملی کے استحکام اور منافع کو مزید بہتر بنا سکتی ہیں۔

نتیجہ

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


/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © lazy_capitalist

//@version=5
strategy('Linear Regression MA', overlay=true, initial_capital=10000)
datesGroup = "Date Info"
startMonth = input.int(defval = 1,    title = "Start Month",  minval = 1, maxval = 12,  group=datesGroup)
startDay   = input.int(defval = 1,    title = "Start Day",    minval = 1, maxval = 31,  group=datesGroup)
startYear  = input.int(defval = 2022, title = "Start Year",   minval = 1970,            group=datesGroup)

averagesGroup = "Averages"
lrLineInput     = input.int(title="Linear Regression Line",   defval=55, minval = 1, group=averagesGroup)
lrMAInput       = input.int(title="Linear Regression MA",     defval=55, minval = 1, group=averagesGroup)
emaInput        = input.int(title="EMA Length",               defval=55, minval = 1, group=averagesGroup)


tradesGroup = "Execute Trades"
executeLongInput    = input.bool(title="Execute Long Trades",       defval=true)
executeShortInput   = input.bool(title="Execute Short Trades",      defval=true)
executeStopLoss     = input.bool(title="Execute Stop Loss",         defval=true)

fourHrSMAExpr       = ta.sma(close, 200)
fourHrMA            = request.security(symbol=syminfo.tickerid, timeframe="240", expression=fourHrSMAExpr)

bullish             = close > fourHrMA ? true : false


maxProfitInput              = input.float(  title="Max Profit (%)",         defval=10.0,    minval=0.0)   * 0.01
stopLossPercentageInput     = input.float(  title="Stop Loss (%)",          defval=1.75,    minval=0.0)   * 0.01

start       = timestamp(startYear, startMonth, startDay, 00, 00)            // backtest start  window
window()    => time >= start ? true : false                              // create function "within window of time"
showDate    = input(defval = true, title = "Show Date Range")

lrLine = ta.linreg(close, lrLineInput, 0)
lrMA   = ta.sma(lrLine, lrMAInput)
ema     = ta.ema(close, emaInput)

longEntry   = ema   < lrMA
longExit    = lrMA  < ema

shortEntry  = lrMA  < ema
shortExit   = ema   < lrMA


maxProfitLong   = strategy.opentrades.entry_price(0) * (1 + maxProfitInput)
maxProfitShort  = strategy.opentrades.entry_price(0) * (1 - maxProfitInput)

stopLossPriceShort  = strategy.position_avg_price * (1 + stopLossPercentageInput)
stopLossPriceLong   = strategy.position_avg_price * (1 - stopLossPercentageInput)

if(executeLongInput and bullish)
    strategy.entry( id="long_entry", direction=strategy.long,   when=longEntry and window(),    qty=10,  comment="long_entry")
    strategy.close( id="long_entry", when=longExit,     comment="long_exit")
    // strategy.close( id="long_entry", when=maxProfitLong <= close, comment="long_exit_mp")
    
if(executeShortInput and not bullish)
    strategy.entry( id="short_entry", direction=strategy.short,   when=shortEntry and window(),    qty=10,  comment="short_entry")
    strategy.close( id="short_entry", when=shortExit,     comment="short_exit")
    // strategy.close( id="short_entry", when=maxProfitShort <= close, comment="short_exit_mp")

if(strategy.position_size > 0 and executeStopLoss)
    strategy.exit(  id="long_entry",        stop=stopLossPriceLong,             comment="exit_long_SL")
    strategy.exit(  id="short_entry",       stop=stopLossPriceShort,            comment="exit_short_SL")
    
// plot(series=lrLine,     color=color.green)
plot(series=lrMA,       color=color.red)
plot(series=ema,        color=color.blue)


مزید