दोहरी संकेत प्रवृत्ति ट्रैकिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-02 17:02:06
टैगः

img

अवलोकन

यह रणनीति ट्रेंड की पहचान करने और ट्रैक करने के लिए दोहरे ईएमए और भयानक ऑसिलेटर संकेतकों को जोड़ती है। ईएमए जल्दी से अल्पकालिक प्रवृत्ति दिशा का न्याय करता है जबकि भयानक ऑसिलेटर झूठे ब्रेकआउट को फ़िल्टर करता है और प्रवेश समय प्रदान करता है। रणनीति का नाम डुअल सिग्नल ट्रेंड ट्रैकिंग रणनीति इसकी मुख्य कार्यक्षमता को सटीक रूप से सारांशित करता है।

रणनीति तर्क

यह रणनीति मुख्य रूप से दो तकनीकी संकेतकों, दोहरे ईएमए और भयानक ऑसिलेटर का उपयोग निम्नलिखित तर्क के साथ संकेतों को फ़िल्टर करने के लिए करती हैः

  1. 2-अवधि और 20-अवधि ईएमए की गणना करें। जब 2-अवधि ईएमए 20-अवधि ईएमए को ऊपर की ओर तोड़ता है, तो यह एक अपट्रेंड का संकेत देता है। जब 2-अवधि ईएमए 20-अवधि ईएमए को नीचे की ओर तोड़ता है, तो यह एक डाउनट्रेंड का संकेत देता है।

  2. Awesome Oscillator की गणना कीजिए, जो कि MACD हिस्टोग्राम है, जिसे तेज EMA से घटाकर धीमा EMA द्वारा समतल किया गया है। जब AO हिस्टोग्राम लाल से नीले रंग में बदलता है, तो यह एक खरीद संकेत है। जब यह नीले रंग से लाल रंग में बदलता है, तो यह एक बिक्री संकेत है।

  3. केवल जब ईएमए अपट्रेंड और एओ एक ही समय में एक खरीद संकेत दिखाता है, तो एक अंतिम खरीद संकेत उत्पन्न होता है। केवल जब ईएमए डाउनट्रेंड दिखाता है और एओ एक बिक्री संकेत दिखाता है, तो एक अंतिम बिक्री संकेत उत्पन्न होता है।

  4. इस दोहरी संकेत फ़िल्टरिंग तंत्र के माध्यम से, झूठे ब्रेकआउट को कम किया जा सकता है और मध्यम अवधि के रुझानों को ट्रैक किया जा सकता है।

लाभ विश्लेषण

इस रणनीति के लाभ इस प्रकार हैंः

  1. दोहरी लाइन फ़िल्टरिंग त्रुटियों के कारण होने वाले शोर वाले ट्रेडों को कम करती है। ईएमए समग्र प्रवृत्ति का न्याय करता है जबकि एओ प्रवेश समय को फ़िल्टर करता है। दोनों को मिलाकर सिग्नल विश्वसनीयता में सुधार होता है।

  2. अति तेज प्रतिक्रिया संवेदनशीलता जल्दी से अल्पकालिक उलटफेर को पकड़ती है। 2-अवधि ईएमए ब्रेकआउट के लिए बहुत संवेदनशील है और यह जल्दी से निर्धारित कर सकता है कि हालिया रुझान बदल गए हैं या नहीं।

  3. अप्रतिम ऑसिलेटर प्रभावी रूप से रुझानों में झूठे ब्रेकआउट की पहचान करने और अनावश्यक रिवर्स ट्रेडों से बचने के लिए एमएसीडी को फ़िल्टर करता है।

  4. इस रणनीति में मध्यम अवधि के रुझानों को ट्रैक करने के लिए एक स्पष्ट दिशा है। ईएमए बुनियादी रुझान को निर्धारित करता है जबकि एओ समग्र रुझानों के साथ व्यापार सुनिश्चित करने के लिए संकेतों को फ़िल्टर करता है।

  5. तर्कसंगत पैरामीटर चयन। 2-अवधि और 20-अवधि ईएमए विभिन्न समय सीमाओं पर मूल्य परिवर्तन को पकड़ता है। एओ पैरामीटर 5 और 34 को अल्पकालिक पैटर्न की पहचान करने के लिए अनुकूलित किया गया है।

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

कुछ जोखिम भी मौजूद हैंः

  1. ईएमए और एओ से अधिक गलत संकेत उत्पन्न हो सकते हैं, जिससे अनावश्यक शॉर्ट ट्रेड हो सकते हैं। ईएमए अवधि को समायोजित करने से त्रुटियों को कम किया जा सकता है।

  2. एओ कभी-कभी ईएमए में देरी कर सकता है, जिससे सिग्नल समय में देरी होती है। एओ मापदंडों को तेजी से प्रतिक्रिया के लिए अनुकूलित किया जा सकता है।

  3. ईएमए और एओ को कम और मध्यम अवधि के लक्षणों के लिए गुणवत्ता डेटा और कंप्यूटिंग शक्ति की आवश्यकता होती है। पैरामीटर को विभिन्न उत्पादों के लिए समायोजित किया जाना चाहिए।

  4. लगातार ट्रेडिंग करने से अधिक कमीशन और स्लिप-अप लागत आती है। होल्डिंग पीरियड्स को बढ़ाने के लिए बाहर निकलने के मानदंडों में ढील दी जा सकती है।

  5. रणनीति में दीर्घकालिक रुझानों और प्रमुख समर्थन/प्रतिरोध स्तरों पर विचार नहीं किया गया है। सही व्यापार दिशा सुनिश्चित करने के लिए अधिक कारकों को मिलाया जाना चाहिए।

अनुकूलन दिशाएँ

इस रणनीति को कई पहलुओं के माध्यम से अनुकूलित किया जा सकता हैः

  1. ईएमए को समग्र रुझान निर्धारित करने में सहायता के लिए चलती औसत रिबन और एटीआर जैसे रुझान संकेतक पेश करें।

  2. प्रमुख समर्थन/प्रतिरोध का पता लगाने जैसे फिबोनाची रिट्रेसमेंट जोड़ें, खराब प्रवेश पदों से बचने के लिए केवल प्रमुख स्तरों के आसपास संकेत उत्पन्न करें।

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

  4. स्टॉप लॉस एक्जिट जोड़ें. एकल ट्रेड हानि को नियंत्रित करने के लिए हालिया स्विंग हाई/लो को तोड़ने पर एक्जिट करें.

  5. रणनीतिक प्रदर्शन का आकलन करने के लिए ऐतिहासिक आंकड़ों पर बैकटेस्ट करें, जांचें कि स्थिर लाभप्रदता अपेक्षाओं को पूरा करती है या नहीं।

  6. कागज व्यापार पैरामीटर को धीरे-धीरे समायोजित करने और लाइव प्रदर्शन में सुधार करने के लिए। बेहतर स्थिर पैरामीटर सेट खोजने के लिए पैरामीटर की मजबूती का परीक्षण करें।

निष्कर्ष

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


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/04/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
//    This indicator plots the oscillator as a histogram where blue denotes 
//    periods suited for buying and red . for selling. If the current value 
//    of AO (Awesome Oscillator) is above previous, the period is considered 
//    suited for buying and the period is marked blue. If the AO value is not 
//    above previous, the period is considered suited for selling and the 
//    indicator marks it as red.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos


AC(nLengthSlow,nLengthFast,nLengthMA,nLengthEMA,nLengthWMA,bShowWMA,bShowMA,bShowEMA) =>
    pos = 0.0
    xSMA1_hl2 = ta.sma(hl2, nLengthFast)
    xSMA2_hl2 = ta.sma(hl2, nLengthSlow)
    xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
    xSMA_hl2 = ta.sma(xSMA1_SMA2, nLengthFast)
    nRes =  xSMA1_SMA2 - xSMA_hl2
    xResWMA = ta.wma(nRes, nLengthWMA)
    xResMA = ta.sma(nRes, nLengthMA)
    xResEMA = ta.ema(nRes, nLengthEMA)
    xSignalSeries = bShowWMA ? xResWMA :
                     bShowMA ? xResMA : 
                      bShowEMA ? xResEMA : na
    pos :=  xSignalSeries[2] < 0 and xSignalSeries[1] > 0? 1:
    	     xSignalSeries[2] > 0 and xSignalSeries[1] < 0 ? -1 : nz(pos[1], 0)
    pos

strategy(title='Combo 2/20 EMA & Bill  Awesome Oscillator (AC)', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════  Awesome Oscillator (AC) ═════●'
nLengthSlow = input.int(34, minval=1, title="Length Slow", group=I2)
nLengthFast = input.int(5, minval=1, title="Length Fast", group=I2)
nLengthMA = input.int(15, minval=1, title="MA", group=I2)
nLengthEMA = input.int(15, minval=1, title="EMA", group=I2)
nLengthWMA = input.int(15, minval=1, title="WMA", group=I2)
bShowWMA = input.bool( defval=true, title="trading WMA", group=I2)
bShowMA = input.bool( defval=false, title="trading MA", group=I2)
bShowEMA = input.bool( defval=false, title="trading EMA", group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosAC = AC(nLengthSlow,nLengthFast,nLengthMA,nLengthEMA,nLengthWMA,bShowWMA,bShowMA,bShowEMA)
iff_1 = posEMA20 == -1 and prePosAC == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosAC == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
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)

अधिक