
ایکویٹی ریگریشن ٹریڈنگ حکمت عملی اسٹاک کی قیمت کی لکیری ریگریشن لائن اور ایکویٹی لائن کے کراسنگ کا حساب کرکے خرید و فروخت کے سگنل کا فیصلہ کرتی ہے۔ یہ حکمت عملی ایکویٹی ریگریشن اور لکیری ریگریشن تجزیہ کو یکجا کرتی ہے ، جس میں اسٹاک کی قیمت کے رجحانات اور اعدادوشمار کی خصوصیات دونوں کو مدنظر رکھا جاتا ہے۔
اس حکمت عملی میں سب سے پہلے n دن کی قیمتوں کے لئے لکیری واپسی لائن اور m دن کی اوسط لائن کا حساب لگایا جاتا ہے۔ لکیری واپسی لائن اسٹاک کی قیمتوں کے طویل مدتی اعدادوشمار کے رجحانات کی عکاسی کرتی ہے ، اور اوسط لائن اسٹاک کی قیمتوں میں قلیل مدتی حرکت کی عکاسی کرتی ہے۔
جب اوسط لائن پر لکیری واپسی کی لائن سے گزرتا ہے تو ، اس کا مطلب ہے کہ اسٹاک کی قیمت میں اضافے کی رفتار میں اضافہ ہوا ہے ، جس سے خریدنے کا اشارہ ملتا ہے۔ جب اوسط لائن کے نیچے لکیری واپسی کی لائن سے گزرتا ہے تو ، اس کا مطلب ہے کہ اسٹاک کی قیمت میں کمی ہے ، جس سے فروخت کا اشارہ ملتا ہے۔
یہ حکمت عملی مندرجہ ذیل اقدامات کے ذریعے ٹریڈنگ سگنل کا تعین کرتی ہے۔
n دن کی قیمت کی لکیری رجعت لائن کا حساب لگانا
لکیری رجعت لائن کے لئے m دن کی سادہ منتقل اوسط LRMA کا حساب لگائیں
اسٹاک کی قیمتوں کا حساب لگانے کے لئے ایم ڈے انڈیکس
جب ایما پر LRMA پہنتا ہے تو ، خریدنے کا سگنل پیدا ہوتا ہے
جب ایما LRMA کے نیچے سے گزرتا ہے تو ، ایک فروخت کا اشارہ پیدا ہوتا ہے
اس کے علاوہ ، بڑے بازاروں کے فیصلے کے ساتھ ، خریدنے کے اشارے پر صرف اس وقت غور کریں جب بڑے بازار بیل کا بازار ہو۔
سگنل پر عملدرآمد خرید و فروخت کے لین دین
اوسط اور واپسی لائنوں کے کراسنگ کے ذریعے خرید و فروخت کے وقت کا تعین ، جعلی توڑنے اور الٹ پوائنٹس کو پکڑنے کے لئے موثر فلٹرنگ ، کم خرید و فروخت کو کم کرنے کے لئے۔
پیرامیٹرز کی ایڈجسٹمنٹ پر توجہ دینے کی ضرورت ہے ، مناسب طریقے سے میڈین لائن اور ریگریشن لائن سائیکل پیرامیٹرز کو بڑھانا ، ٹریڈنگ کی تعدد کو کم کرنا۔ مناسب طریقے سے اسٹاپ نقصان کی حکمت عملی کا خطرہ کنٹرول کریں۔ بڑی پوزیشن کے فیصلے کے قواعد کو بہتر بنائیں ، درستگی کو بہتر بنائیں۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
اوسط اشارے کی اصلاح: مختلف اقسام کی اوسط ، جیسے وزن والی منتقل اوسط وغیرہ کو آزمائیں ، تاکہ اس اسٹاک کے لئے بہترین اوسط تلاش کریں۔
ریگریشن لائن کی اصلاح: ریگریشن لائن کے حساب کتاب کے دورانیے کو ایڈجسٹ کریں ، اس دورانیے کے پیرامیٹرز کو تلاش کریں جو اس اسٹاک کے طویل مدتی رجحان کو بہترین طور پر ظاہر کرے۔
بڑے پیمانے پر فیصلے کی اصلاح: مختلف بڑے پیمانے پر فیصلے کے اشارے کی جانچ کرنا تاکہ حکمت عملی کے لئے بہترین بڑے پیمانے پر سگنل تلاش کیا جاسکے۔
پیرامیٹرز کی اصلاح: مختلف پیرامیٹرز کے مجموعے کے ذریعے بار بار جانچ پڑتال ، بہترین پیرامیٹرز کی تشکیل تلاش کریں۔
اسٹاپ نقصان کی حکمت عملی کو بہتر بنائیں: مختلف اسٹاپ نقصان کے طریقوں کی جانچ کریں ، خطرے کو کنٹرول کرنے کے لئے بہترین اسٹاپ نقصان کی منطق مرتب کریں۔
ٹرانزیکشن لاگت کی اصلاح: مختلف ٹرانزیکشن فیس ماڈل کے مطابق ، ٹرانزیکشن کی لاگت کو کم کرنے کے لئے ٹرانزیکشن کی تعدد کو ایڈجسٹ کریں۔
مندرجہ بالا نکات کو بہتر بنانے سے حکمت عملی کی استحکام اور منافع کی شرح کو مزید بہتر بنایا جاسکتا ہے۔
اس میڈین ریگریشن ٹریڈنگ حکمت عملی میں میڈین تجزیہ اور لکیری ریگریشن تجزیہ کو مربوط کرنے کے فوائد ہیں۔ اس سے اسٹاک کی قیمتوں میں موڑ کی نشاندہی کی جاسکتی ہے ، جس سے کم خرید و فروخت کی رہنمائی کی جاسکتی ہے۔ حکمت عملی آسان اور قابل اعتماد ہے ، جو درمیانی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی لمبی
/*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)