یہ حکمت عملی لکیری رجعت چینل کے اوپری اور نچلے بینڈ کا استعمال کرتی ہے ، جس میں دوہری معیاری انحراف کے ساتھ مل کر بریک آؤٹ خرید اور فروخت کے سگنل مرتب کیے جاتے ہیں ، جب قیمتیں توڑ جاتی ہیں تو پوزیشنیں قائم کی جاتی ہیں۔ یہ منافع میں مقفل کرنے کے لئے چینل کی وسط لائن کے کراس اوور کا بھی استعمال کرتا ہے۔
اس حکمت عملی کا بنیادی منطق لکیری رجسٹریشن چینل کے اوپری بینڈ ، نچلے بینڈ اور درمیانی لائن پر مبنی ہے۔ مخصوص حساب کتاب کا عمل مندرجہ ذیل ہے۔
قیمتوں کی لائنری رجریشن ویلیو کا حساب لگائیں، اور اگلی مدت
linreg پر مبنی لکیری رجعت لائن کے ڈھلوان ڈھلوان اور انٹرسیپٹ انٹرسیپٹ کا حساب لگائیں
ریگریشن لائن کے سلسلے میں قیمتوں کے انحراف کے انحراف کا حساب لگائیں
اوپری اور نچلی بینڈ کے آفسیٹ حاصل کرنے کے لئے انحراف کے کئی گنا dev مقرر کریں
جب قیمت نچلے بینڈ سے اوپر کی طرف سے توڑتا ہے، سیٹ خریدنے سگنل خریدنے
جب قیمت اوپری بینڈ سے نیچے کی طرف سے توڑتا ہے، سیٹ فروخت سگنل فروخت
جب قیمت چینل کے وسط لائن سے الٹ جاتا ہے، سیٹ منافع لے سگنل باہر نکلیں
خرید، فروخت اور باہر نکلنے کے سگنل پر مبنی ٹریڈنگ منطق قائم کریں
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ یہ لکیری رجعت چینل کی طرف سے عکاسی درمیانے اور طویل مدتی رجحان کا استعمال کرتا ہے. خاص طور پر:
اوپری اور نچلی بینڈ قیمتوں میں اتار چڑھاؤ کی معمول کی حد کو مؤثر طریقے سے ظاہر کرسکتے ہیں۔ تجارتی سگنل قائم کرنے کے لئے ان کا استعمال غلط سگنل کو کم کرسکتا ہے۔
مڈل لائن کراس اوور بطور منافع لینے کا سگنل منافع کو زیادہ سے زیادہ کرسکتا ہے اور منافع کمانے کے بعد الٹ جانے سے ہونے والے نقصانات سے بچ سکتا ہے۔
لکیری رجسٹریشن چینل میں کچھ تاخیر ہوتی ہے، جو مؤثر طریقے سے قلیل مدتی مارکیٹ شور کو فلٹر کر سکتی ہے اور تجارتی سگنل کو زیادہ قابل اعتماد بنا سکتی ہے۔
اس حکمت عملی میں چند پیرامیٹرز ہیں اور اسے لاگو کرنا آسان ہے ، جو الگورتھم ٹریڈنگ کے لئے موزوں ہے۔
اس حکمت عملی کے کچھ خطرات ہیں:
لکیری رجسٹریشن چینل کی تاخیر شدید قلیل مدتی تبدیلیوں کے بعد رجحانات کو یاد کر سکتی ہے۔ اصلاح کے لئے مدت کو مختصر کیا جاسکتا ہے۔
انحراف کے ضارب کی غلط ترتیب سے غلط سگنل بھی پیدا ہوسکتے ہیں۔ پیرامیٹرز کو بیک ٹسٹنگ کے ذریعے بہتر بنایا جاسکتا ہے۔
صرف بریک آؤٹ سگنلز پر انحصار کرنے سے وِپسا نقصانات ہوسکتے ہیں۔ سگنل فلٹرنگ کے لئے دوسرے اشارے استعمال کیے جاسکتے ہیں۔
منحنی خطوط کو فٹ کرنے کے کچھ خطرات ہیں۔ دوسرے چینل اشارے کے ساتھ مل کر یا مختلف ڈیٹا ذرائع کی جانچ کرنا مددگار ثابت ہوسکتا ہے۔
اس حکمت عملی کے لئے اصلاح کی اہم سمتیں:
تاخیر اور حساسیت کو متوازن کرنے کے لئے لکیری رجسٹریشن چینل کی لمبائی کو بہتر بنائیں.
خطرہ کنٹرول کو زیادہ سے زیادہ کرتے ہوئے سگنل کی کیفیت کو بہتر بنانے کے لئے انحراف ضرب کو بہتر بنائیں.
جیت کی شرح کو بہتر بنانے کے لئے سگنل فلٹرنگ کے لئے دیگر اشارے شامل کریں، مثال کے طور پر EMA، KDJ وغیرہ.
سٹاپ نقصان کے طریقہ کار جیسے اے ٹی آر ٹریلنگ سٹاپ نقصان شامل کریں.
حکمت عملی پر مختلف اعداد و شمار کے ذرائع کے اثرات کا تجربہ کریں، مثال کے طور پر ایڈجسٹ بند، انڈیکس ڈیٹا وغیرہ.
مارکیٹ کے حالات کی بنیاد پر پیرامیٹرز یا سگنل وزن کو متحرک طور پر ایڈجسٹ کریں.
خلاصہ یہ ہے کہ ، یہ ایک بریکآؤٹ سسٹم ہے جس میں لائنر رجسٹریشن چینل کو سگنل اشارے کے طور پر استعمال کیا جاتا ہے۔ حکمت عملی کا منطق واضح اور سمجھنے میں آسان ہے ، جس میں کچھ پیرامیٹرز ہیں ، جس سے براہ راست تجارت کو لاگو کرنا نسبتا easy آسان ہے۔ تاہم ، مارکیٹ کے بدلتے ہوئے حالات کی بنیاد پر پیرامیٹرز کو متحرک طور پر بہتر بنانے اور سگنل فلٹرنگ کے لئے دوسرے اشارے کو یکجا کرنے کا طریقہ اس حکمت عملی کی کامیابی کی کلید ہے۔ مسلسل جانچ اور اصلاح کے ذریعے ، یہ حکمت عملی ایک مستحکم منافع بخش مقداری نظام بن سکتی ہے۔
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Robotrading //@version=4 strategy("robotrading linreg", "linreg", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, commission_value = 0.1) //Settings source = input(close) length = input(100, minval=1) offset = input(0, minval=0) dev = input(2.0, "Deviation") smoothing = input(1, minval=1) mtf_val = input("", "Resolution", input.resolution) signals = input("Recent", "Signals Display", options=["Recent", "All"]) goto = input(0, "End At Bar Index") //Lin.reg. cc(x) => x=="Red"?color.red:x=="Lime"?color.lime:x=="Orange"?color.orange:x=="Teal"?color.teal:x=="Yellow"?color.yellow:x=="Black"?color.black:color.white data(x) => sma(security(syminfo.tickerid, mtf_val!="" ? mtf_val : timeframe.period, x), smoothing) linreg = data(linreg(source, length, offset)) linreg_p = data(linreg(source, length, offset+1)) //Deviation x = bar_index slope = linreg - linreg_p intercept = linreg - x*slope deviationSum = 0.0 for i = 0 to length-1 deviationSum:= deviationSum + pow(source[i]-(slope*(x-i)+intercept), 2) deviation = sqrt(deviationSum/(length)) x1 = x-length x2 = x y1 = slope*(x-length)+intercept y2 = linreg //Cross dm_current = -deviation*dev + y2 dp_current = deviation*dev + y2 ex_current = (dm_current + dp_current) / 2 buy = crossunder(close, dm_current) sell = crossover(close, dp_current) exit = crossover(close, ex_current) or crossunder(close, ex_current) //Channel updating = goto <= 0 or x < goto // if updating // line b = line.new(x1, y1, x2, y2, xloc.bar_index, extend.right, color.aqua, width = 3) // line.delete(b[1]) // line dp = line.new(x1, deviation*dev + y1, x2, deviation*dev + y2, xloc.bar_index, extend.right, color.red, width = 3) // line.delete(dp[1]) // line dm = line.new(x1, -deviation*dev + y1, x2, -deviation*dev + y2, xloc.bar_index, extend.right, color.lime, width = 3) // line.delete(dm[1]) //Lines plot(dm_current, color = color.lime) plot(dp_current, color = color.red) plot(ex_current) //Trading if ex_current > 0 strategy.entry("Long", strategy.long, na, limit = dm_current) strategy.entry("Short", strategy.short, na, limit = dp_current) strategy.exit("ExitLong", "Long", limit = ex_current) strategy.exit("ExitShort", "Short", limit = ex_current)