یہ حکمت عملی قیمتوں میں ہونے والی تبدیلیوں کی پیمائش کے لئے گوسین غلطی فنکشن کے ذریعہ شمار کردہ پی سگنل اشارے پر مبنی ایک مقداری تجارتی حکمت عملی ہے۔ یہ قیمتوں کے رجحان اور اندراجات اور باہر نکلنے کے لئے موڑ کے مقامات کا تعین کرنے کے لئے پی سگنل کا استعمال کرتا ہے۔
اس حکمت عملی کا بنیادی اشارے پی سگنل ہے۔ پی سگنل کا حساب کتاب کا فارمولا یہ ہے:
fPSignal(ser, int) =>
nStDev = stdev(ser, int)
nSma = sma(ser, int)
fErf(nStDev > 0 ? nSma/nStDev/sqrt(2) : 1.0)
یہاں ser قیمت سیریز کی نمائندگی کرتا ہے ، int پیرامیٹر nPoints کی نمائندگی کرتا ہے ، جو پیچھے دیکھنے کے لئے باروں کی تعداد ہے۔ اس فارمولے میں تین حصے شامل ہیں:
پورے فارمولے کا مطلب یہ ہے کہ قیمت کے چلتے ہوئے اوسط کو قیمت کے معیاری انحراف سے تقسیم کیا جائے ، پھر معیاری کاری کے لئے مربع تقسیم کیا جائے ، اور آخر میں گوسین غلطی فنکشن کے ذریعہ (-1 ، 1) رینج میں نقشہ بنایا جائے۔ یعنی ، اگر قیمت میں اتار چڑھاؤ اوسط سے زیادہ ہے تو ، پی سگنل 1 کے قریب ہے۔ اگر قیمت میں اتار چڑھاؤ اوسط سے کم ہے تو ، پی سگنل -1 کے قریب ہے۔
حکمت عملی میں P سگنل کی قیمت اور اس کے تبدیلی کے نشان کا استعمال داخلہ اور باہر نکلنے کا تعین کرنے کے لئے کیا جاتا ہے:
strategy.entry("long", strategy.long, 1, when = nPSignal < 0 and ndPSignal > 0)
strategy.close("long", when = nPSignal > 0 and ndPSignal < 0)
جب P-Signal 0 سے کم ہو اور مثبت میں تبدیل ہو تو یہ طویل ہوجاتا ہے۔ جب P-Signal 0 سے زیادہ ہو اور منفی میں تبدیل ہو تو یہ پوزیشن بند ہوجاتا ہے۔
اس حکمت عملی کے فوائد میں شامل ہیں:
اس حکمت عملی کے ساتھ کچھ خطرات بھی ہیں:
ان خطرات کو کم کرنے کے لئے ، کچھ اقدامات پر غور کیا جاسکتا ہے: تجارتی تعدد کو کم کرنے کے لئے فلٹرز کا اضافہ کرنا۔ پیرامیٹرز کے مجموعے کو بہتر بنانا اور لین دین کی لاگت کا تعین کرنا۔ براہ راست ٹیسٹنگ اور مناسب مصنوعات کا انتخاب کرنا۔
مزید بہتری کی گنجائش ہے:
اختتام کے طور پر ، اس حکمت عملی کا بنیادی خیال جدید ، گیوسین فنکشن کے ساتھ قیمت کی تقسیم کو فٹ کرنا اور پیرامیٹرز کو خود بخود ایڈجسٹ کرنا ہے۔ لیکن اعلی تعدد ٹریڈنگ کی حکمت عملی کے طور پر ، براہ راست تجارت میں مستحکم منافع بخش ہونے سے پہلے ، خاص طور پر اعلی تعدد ٹریڈنگ کی حکمت عملی کے طور پر ، اسے رسک کنٹرول اور پیرامیٹر ٹوننگ پر مزید جانچ اور اصلاح کی ضرورت ہے۔
/*backtest start: 2023-01-12 00:00:00 end: 2024-01-18 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/ // P-Signal Strategy © Kharevsky // @version=4 // ********************************************************************************************************** strategy("P-Signal Strategy", precision = 3) // Parameters and const of P-Signal. nPoints = input(title = "Number of Bars", type = input.integer, defval = 9, minval = 4, maxval = 100, group = "Parameters of observation.") int nIntr = nPoints - 1 // Horner's method for the error (Gauss) & P-Signal functions. fErf(x) => nT = 1.0/(1.0 + 0.5*abs(x)) nAns = 1.0 - nT*exp(-x*x - 1.26551223 + nT*( 1.00002368 + nT*( 0.37409196 + nT*( 0.09678418 + nT*(-0.18628806 + nT*( 0.27886807 + nT*(-1.13520398 + nT*( 1.48851587 + nT*(-0.82215223 + nT*( 0.17087277 )))))))))) x >= 0 ? nAns : -nAns fPSignal(ser, int) => nStDev = stdev(ser, int) nSma = sma(ser, int) fErf(nStDev > 0 ? nSma/nStDev/sqrt(2) : 1.0) // Strat. float nPSignal = sma(fPSignal(change(ohlc4), nIntr), nIntr) float ndPSignal = sign(nPSignal[0] - nPSignal[1]) strategy.entry("long", strategy.long, 1, when = nPSignal < 0 and ndPSignal > 0) strategy.close("long", when = nPSignal > 0 and ndPSignal < 0) // Plotting. hline(+1.0, color = color.new(color.orange,70), linestyle = hline.style_dotted) hline(-1.0, color = color.new(color.orange,70), linestyle = hline.style_dotted) plot(nPSignal, color = color.blue, style = plot.style_line) plot(strategy.position_size, color = color.white, style = plot.style_cross) // Alerts. if(strategy.position_size[0] > strategy.position_size[1]) alert("P-Signal strategy opened the long position: " + syminfo.tickerid + " " + timeframe.period, alert.freq_once_per_bar) if(strategy.position_size[0] < strategy.position_size[1]) alert("P-Signal strategy closed the long position: " + syminfo.tickerid + " " + timeframe.period, alert.freq_once_per_bar) // The end.