پی سگنل الٹ کرنے کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-29 14:44:56
ٹیگز:

img

جائزہ

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

حکمت عملی کے اصول

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

حکمت عملی کے پیرامیٹرز میں کارڈینالٹی ، ΔErf اور مشاہدے کا وقت شامل ہے۔ کارڈینالٹی نمونہ کے سائز کو کنٹرول کرتی ہے ، ΔErf تجارتی تعدد کو کم کرنے کے لئے غلطی فنکشن کے مردہ بینڈ کو کنٹرول کرتی ہے۔ مشاہدے کا وقت حکمت عملی کے آغاز کے وقت کو کنٹرول کرتا ہے۔

فوائد کا تجزیہ

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

اس کے علاوہ ، حکمت عملی کا پیرامیٹر ڈیزائن اچھی طرح سے منظم ہے ، جس سے صارفین کو اپنی ضرورت کے مطابق پیرامیٹر اسپیس کو ایڈجسٹ کرنے کی اجازت ملتی ہے تاکہ بہترین امتزاج تلاش کیا جاسکے۔ اس سے حکمت عملی کی موافقت اور لچک کو یقینی بنایا جاسکتا ہے۔

خطرے کا تجزیہ

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

نمونہ کے سائز کو بڑھانے کے لئے کارڈینالٹی پیرامیٹر میں اضافہ ڈیٹا کی خرابیوں کے اثرات کو کم کرسکتا ہے۔ تجارتی تعدد کو کم کرنے کے لئے ΔErf رینج کو مناسب طریقے سے بڑھانا خطرات کو کنٹرول کرنے میں مدد ملتی ہے۔

اصلاح کی ہدایات

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

  1. غیر معمولی اشاروں کو فلٹر کرنے کے لئے دیگر اشارے شامل کریں، جیسے حجم میں تیزی سے اضافہ۔

  2. فیصلے کے استحکام کو بڑھانے کے لئے متعدد ٹائم فریموں میں سگنل کی توثیق کریں۔

  3. واحد نقصانات کو کم کرنے کے لئے سٹاپ نقصان کی حکمت عملی میں اضافہ کریں.

  4. بہترین مجموعہ تلاش کرنے اور منافع میں اضافہ کرنے کے لئے پیرامیٹرز کو بہتر بنائیں.

  5. متحرک پیرامیٹر ایڈجسٹمنٹ کے لیے مشین لرننگ کو شامل کریں۔

خلاصہ

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// **********************************************************************************************************
// 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 RVS © Kharevsky
// **********************************************************************************************************
strategy('P-Signal Strategy RVS.', precision=3, process_orders_on_close=true, pyramiding=0, 
     commission_type=strategy.commission.percent,
     commission_value=0.2)
// Parameters and const of P-Signal.
nPoints = input.int(title='Cardinality:', defval=4, minval=4, maxval=200, group='Parameters of strategy.')
ndErf = input.float(title='|ΔErf|:', defval=0, minval=0, maxval=1, step=0.01, group='Parameters of strategy.')
tStartDate = input(title='Start date:', defval=timestamp('30 Dec 1957 00:00 +0300'), group='Observation time.')
int nIntr = nPoints - 1
// Horner's method for the error (Gauss) & P-Signal functions.
fErf(x) =>
    nT = 1.0 / (1.0 + 0.5 * math.abs(x))
    nAns = 1.0 - nT * math.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 = ta.stdev(ser, int)
    nSma = ta.sma(ser, int)
    nStDev > 0 ? fErf(nSma / nStDev / math.sqrt(2)) : math.sign(nSma)
// Data.
float nPSignal = ta.sma(fPSignal(ta.change(ohlc4), nIntr), nIntr)
float ndPSignal = math.sign(nPSignal[0] - nPSignal[1])
bool isStartDate = true
// Reversal Strategy.
strategy.entry('short', strategy.short, when=isStartDate and nPSignal > ndErf and ndPSignal < 0)
strategy.entry('long', strategy.long, when=isStartDate and nPSignal < -ndErf and ndPSignal > 0)
// Plotting. 
hline(+1.0, color=color.new(color.orange, 70), linestyle=hline.style_dotted, editable=false)
hline(-1.0, color=color.new(color.orange, 70), linestyle=hline.style_dotted, editable=false)
hline(-ndErf, color=color.new(color.orange, 70), linestyle=hline.style_dotted, editable=false)
hline(ndErf, color=color.new(color.orange, 70), linestyle=hline.style_dotted, editable=false)
plot(nPSignal, color=color.new(color.blue, 0), style=plot.style_line)
// Table of state.
if barstate.isconfirmed
    var Table = table.new(position=position.bottom_right, columns=3, rows=1, 
     frame_color=color.new(color.orange, 70), frame_width=1, 
     border_color=color.new(color.orange, 70), border_width=1)
    table.cell(table_id=Table, column=0, row=0, 
     text=strategy.position_size > 0 ? 'Long: ' + str.tostring(strategy.position_size) : 'Short: ' + str.tostring(strategy.position_size), 
     text_color=strategy.position_size > 0 ? color.green : color.red)
    table.cell(table_id=Table, column=1, row=0, 
     text='Net P/L: ' + str.tostring(strategy.netprofit, '#.#'), 
     text_color=strategy.netprofit > 0 ? color.green : color.red)
    table.cell(table_id=Table, column=2, row=0, 
     text='Open P/L: ' + str.tostring(strategy.openprofit, '#.#'), 
     text_color=strategy.openprofit > 0 ? color.green : color.red)
// The end.



مزید