संसाधन लोड हो रहा है... लोड करना...

दोहरे कारक वाली क्वांट ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-07 15:11:37
टैगः

img

अवलोकन

यह रणनीति दोहरे कारकों द्वारा संचालित मात्रात्मक ट्रेडिंग को लागू करने के लिए 123 रिवर्सल और प्राइम नंबर ऑसिलेटर कारकों को जोड़ती है। अल्पकालिक रिवर्सल अवसरों को पकड़ते हुए, यह कम जोखिम वाले अतिरिक्त रिटर्न प्राप्त करने के लिए दीर्घकालिक रुझानों की भी पहचान करता है।

सिद्धांत

पहला भाग 123 रिवर्स रणनीति है। यह प्रवेश और निकास बिंदुओं को निर्धारित करने के लिए 2 दिनों में मूल्य उलट की सुविधा का उपयोग करता है। जब कीमतें 2 दिनों में लगातार बढ़ती हैं और धीमी स्टोकास्टिक 50 से नीचे होती है, तो इसे ओवरसोल्ड माना जाता है, जो खरीद संकेत का उत्पादन करता है। जब कीमतें 2 दिनों में लगातार गिरती हैं और तेज स्टोकास्टिक 50 से ऊपर होती है, तो इसे ओवरबोल्ड बूस्ट माना जाता है, जो बिक्री संकेत का उत्पादन करता है।

दूसरा भाग अभाज्य संख्या थरथरानवाला रणनीति है। यह संकेतक एक निर्दिष्ट सीमा पर वर्तमान मूल्य के ऊपर और नीचे निकटतम अभाज्य संख्या की गणना करता है, और वर्तमान मूल्य से अंतर आउटपुट करता है। एक सकारात्मक मूल्य का मतलब है कि वर्तमान मूल्य अभाज्य संख्या की छत के पास है, जबकि एक नकारात्मक मूल्य का मतलब है कि यह अभाज्य संख्या तल के पास है। प्रवृत्ति की दिशा अंतर मूल्य द्वारा आंका जाता है, जिसे अंतिम व्यापार संकेत उत्पन्न करने के लिए 123 उलट संकेतों के साथ जोड़ा जाता है।

सिग्नल मर्ज नियम यह हैः वास्तविक ट्रेडिंग सिग्नल तभी उत्पन्न होते हैं जब दो उप-रणनीतियां एक ही दिशा में संकेत देती हैं, अन्यथा सिग्नल संघर्ष करते समय कोई नई स्थिति नहीं खोली जाती है।

लाभ

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

एकल गति रणनीति की तुलना में, यह रणनीति अचानक मूल्य गिरावट के दौरान समय पर हानि को रोक सकती है या स्थिति को उलट सकती है, प्रतिगमन कारक का उपयोग करके प्रभावी रूप से इंट्राडे जोखिमों को नियंत्रित कर सकती है।

एक एकल रिवर्स रणनीति की तुलना में, ट्रेंड दिशा के लिए प्राइम नंबर ऑसिलेटर की शुरूआत से लगातार रिवर्स ट्रेडों से ओवरट्रेडिंग से बचा जा सकता है।

जोखिम

सबसे बड़ा जोखिम दो कारकों के बीच संकेत संघर्ष है। यदि 123 रिवर्सल ओवरबॉट/ओवरसोल्ड संकेत दिखाता है और रिवर्सल संकेत उत्पन्न करता है, जबकि प्राइम नंबर ऑसिलेटर दिखाता है कि यह अभी भी एक प्रवृत्ति में है, तो सीधे रिवर्सल ट्रेड लेने से नुकसान हो सकता है।

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

सुधार

  1. विशिष्ट उत्पादों के लिए बेहतर रिवर्स पैरामीटर सेट खोजने के लिए स्टोकैस्टिक मापदंडों का अनुकूलन

  2. शोर व्यापार को कम करने के लिए अभाज्य संख्या थरथरानवाला के सहिष्णुता प्रतिशत को अनुकूलित करें

  3. एकतरफा हानि के विस्तार को सीमित करने के लिए स्टॉप लॉस रणनीतियाँ जोड़ें

  4. विभिन्न बाजार वातावरणों के लिए पदों को समायोजित करने के लिए स्थिति आकार मॉड्यूल जोड़ें

  5. दो कारकों के बीच सिग्नल विश्वसनीयता का न्याय करने के लिए मशीन लर्निंग मॉडल जोड़ें, संघर्षों को कम करें

निष्कर्ष

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


/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/04/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Determining market trends has become a science even though a high number or people 
// still believe it’s a gambling game. Mathematicians, technicians, brokers and investors 
// have worked together in developing quite several indicators to help them better understand 
// and forecast market movements.
//
// Developed by Modulus Financial Engineering Inc., the prime number oscillator indicates the 
// nearest prime number, be it at the top or the bottom of the series, and outlines the 
// difference between that prime number and the respective series.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

PrimeNumberOscillator(price, percent) =>
    res = 0.0
    res1 = 0.0
    res2 = 0.0
    for j = price to price + (price * percent / 100)
        res1 := j
	    for i = 2 to sqrt(price)
        	res1 := iff(j % i == 0 , 0, j)
            if res1 == 0 
                break
		if res1 > 0 
		    break
    for j = price to price - (price * percent / 100)
        res2 := j
	    for i = 2 to sqrt(price)
        	res2 := iff(j % i == 0 , 0, j)
            if res2 == 0 
                break
		if res2 > 0 
		    break
    res := iff(res1 - price < price - res2,  res1 - price, res2 - price)
    res := iff(res == 0, res[1], res)
    res
    
PNO(percent) =>
    pos = 0.0
    xPNO = PrimeNumberOscillator(close, percent)
    pos:= iff(xPNO > 0, 1,
           iff(xPNO < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Prime Number Oscillator", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Prime Number Oscillator ----")
percent = input(5, minval=0.01, step = 0.01, title="Tolerance Percentage")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPNO = PNO(percent)
pos = iff(posReversal123 == 1 and posPNO == 1 , 1,
	   iff(posReversal123 == -1 and posPNO == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

अधिक