पी-सिग्नल रिवर्सल रणनीति


निर्माण तिथि: 2024-01-29 14:44:56 अंत में संशोधित करें: 2024-01-29 14:44:56
कॉपी: 0 क्लिक्स: 663
1
ध्यान केंद्रित करना
1617
समर्थक

पी-सिग्नल रिवर्सल रणनीति

अवलोकन

पी-सिग्नल रिवर्स रणनीति एक परिमाणात्मक ट्रेडिंग रणनीति है जो सांख्यिकीय मापदंडों और त्रुटि कार्यों के आधार पर निर्मित संभाव्य स्थानिक संकेतों पर आधारित है। यह बाजार के रिवर्स बिंदुओं को पकड़ने के लिए K-लाइनों की एक श्रृंखला में चरम मूल्य वितरण के मापदंडों को ट्रैक करके गतिशील रूप से ट्रेडिंग सिग्नल प्राप्त करता है।

रणनीति सिद्धांत

इस रणनीति का मुख्य संकेत P-सिग्नल है, जो चलती औसत और मानक विचलन के सांख्यिकीय मापदंडों को जोड़ता है, जो कि Gaussian त्रुटि फ़ंक्शन द्वारा -1 और 1 के बीच मैप किया जाता है, जिससे एक मात्रात्मक निर्णय सूचक बनता है। जब P-सिग्नल शून्य होता है तो यह सकारात्मक से नकारात्मक में बदल जाता है, और जब यह नकारात्मक से सकारात्मक में बदल जाता है तो यह अधिक होता है, जिससे एक उलटा रणनीति तर्क बनता है।

रणनीति पैरामीटर में कार्डिनैलिटी, ΔErf और अवलोकन समय शामिल हैं। कार्डिनैलिटी नमूने की संख्या को नियंत्रित करती है, ΔErf त्रुटि फ़ंक्शन के मृत क्षेत्र को नियंत्रित करती है, लेनदेन की आवृत्ति को कम करती है। अवलोकन समय रणनीति शुरू होने का समय नियंत्रित करता है।

श्रेष्ठता विश्लेषण

पी-सिग्नल रिवर्स रणनीति का सबसे बड़ा लाभ यह है कि यह सांख्यिकीय मापदंडों की संभावनाओं के वितरण पर आधारित है, जो बाजार की विशेषताओं को प्रभावी ढंग से निर्धारित करने और रिवर्स अवसरों को पकड़ने में सक्षम है। यह एक एकल तकनीकी संकेतक की तुलना में अधिक बाजार की जानकारी के साथ जुड़ा हुआ है, जो अधिक व्यापक और विश्वसनीय है।

इसके अलावा, इस नीति के पैरामीटर डिजाइन विनिर्देश, उपयोगकर्ता अपनी आवश्यकताओं के अनुसार, पैरामीटर अंतरिक्ष को समायोजित करने के लिए सबसे अच्छा संयोजन खोजने के लिए कर सकते हैं. यह अनुकूलन और रणनीति की लचीलापन की गारंटी देता है.

जोखिम विश्लेषण

पी-सिग्नल रिवर्स रणनीति का मुख्य जोखिम यह है कि यह संभावना वितरण के मापदंडों पर बहुत अधिक निर्भर करता है और असामान्य डेटा के प्रभाव से गलत निर्णय लेने के लिए अतिसंवेदनशील होता है। इसके अलावा, रिवर्स रणनीतियों में आम तौर पर कम लाभप्रदता होती है और एकल मुनाफा सीमित होता है।

Cardinality पैरामीटर को बढ़ाकर और नमूना मात्रा को बढ़ाकर डेटा असामान्यताओं के प्रभाव को कम किया जा सकता है। Δ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.