
یہ حکمت عملی ایک پی سگنل اشارے کی پیمائش کی حکمت عملی ہے جو قیمت میں تبدیلی کی پیمائش کرنے کے لئے گاسس کی خرابی کے فنکشن پر مبنی ہے۔ یہ پی سگنل اشارے کا استعمال قیمت کے رجحانات اور نقطہ نظر کا تعین کرنے کے لئے کرتا ہے ، اور اس کے ذریعہ داخلے اور باہر نکلنے کا وقت طے کرتا ہے۔
اس حکمت عملی کا بنیادی اشارے پی سگنل ہے۔ پی سگنل کا حساب کتاب مندرجہ ذیل ہے:
fPSignal(ser, int) =>
nStDev = stdev(ser, int)
nSma = sma(ser, int)
fErf(nStDev > 0 ? nSma/nStDev/sqrt(2) : 1.0)
یہاں ser قیمتوں کی ترتیب کی نمائندگی کرتا ہے، int پیرامیٹرز nPoints کی نمائندگی کرتا ہے، یعنی یہ دیکھنا ہے کہ کتنے روٹ K لائن ہیں۔ یہ فارمولا تین حصوں پر مشتمل ہے:
اس پورے فارمولے کا مطلب یہ ہے کہ قیمتوں کے متحرک اوسط کو قیمتوں کے معیاری فرق سے تقسیم کیا جائے ، پھر اس کو اسکوائرٹ ((2) سے تقسیم کیا جائے ، اور پھر اس کی نقشہ سازی کی جائے گیس کی خرابی کے فنکشن کے ذریعہ ((-1 ، 1) کی حد تک۔ یعنی اگر قیمتوں میں اتار چڑھاؤ اوسط سے زیادہ ہے تو ، پی سگنل قریب ہے۔ اگر قیمتوں میں اتار چڑھاؤ اوسط سے کم ہے تو ، پی سگنل قریب ہے۔
حکمت عملی P-Signal کی تعداد اور اس کی تبدیلیوں کے نشانات کو استعمال کرتی ہے تاکہ داخلہ اور باہر نکلنے کا فیصلہ کیا جاسکے:
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.