बहु-अवधि मूविंग औसत चैनल प्रवृत्ति अनुसरण रणनीति


निर्माण तिथि: 2024-02-20 13:45:42 अंत में संशोधित करें: 2024-02-20 13:45:42
कॉपी: 2 क्लिक्स: 607
1
ध्यान केंद्रित करना
1617
समर्थक

बहु-अवधि मूविंग औसत चैनल प्रवृत्ति अनुसरण रणनीति

अवलोकन

यह रणनीति एक स्विंग रणनीति है जो क्रिप्टोकरेंसी और स्टॉक जैसे ट्रेंडिंग बाजारों में लागू होती है, जो 8 घंटे जैसे बड़े समय के फ्रेम का उपयोग करती है। यह रणनीति SMA, EMA, VWMA, ALMA, SMMA, LSMA और VWMA सहित कई प्रकार के चलती औसत का उपयोग करती है, जो दो औसत चैनल बनाने के लिए उच्च और निम्न स्थानों पर लागू होती है।

जब समापन मूल्य उच्च बिंदु पर लागू औसत से अधिक हो तो अधिक करें; जब समापन मूल्य निम्न बिंदु पर लागू औसत से कम हो तो शून्य करें।

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

इस रणनीति में 7 अलग-अलग चलती औसत संकेतकों का उपयोग किया जाता है, जिनमें SMA, EMA, VWMA, ALMA, SMMA, LSMA और VWMA शामिल हैं। ये चलती औसत क्रमशः K लाइन के उच्चतम और निम्नतम मूल्य पर लागू होते हैं, जिससे दो औसत उत्पन्न होते हैं।

उच्चतम मूल्य पर लागू औसत को avg_high कहा जाता है और निम्नतम मूल्य पर लागू औसत को avg_low कहा जाता है। ये दोनों औसत एक चैनल बनाते हैं।

जब समापन मूल्य Avg_high से अधिक हो, तो अधिक करें; जब समापन मूल्य Avg_low से कम हो, तो खाली करें।

जब आप अधिक करते हैं, तो स्टॉप लॉस avg_low है और स्टॉप लॉस ओपन प्राइस है(1+tp_long); स्टॉप लॉन्ग के लिए avg_high और स्टॉप लॉन्ग के लिए ओपनिंग प्राइस(1-tp_short)。

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

इस रणनीति का सबसे बड़ा लाभ यह है कि यह लाभ की संभावना को बढ़ाने के लिए कई प्रकार के चलती औसत संकेतकों का उपयोग करता है। अलग-अलग चक्रों और गणना विधियों के साथ चलती औसत संकेतकों की कीमतों पर प्रतिक्रिया की गति अलग-अलग होती है, और संयोजन में अधिक विश्वसनीय ट्रेडिंग सिग्नल का गठन किया जा सकता है।

एक और लाभ यह है कि यह चैनल ट्रेडिंग का उपयोग करता है। ऊपर और नीचे चैनल स्टॉप लॉस को सीमित करता है, जोखिम को कम करता है और स्विंग रणनीतियों के लिए अधिक उपयुक्त है।

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

इस रणनीति में दो प्रमुख जोखिम हैंः

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

  2. इस रणनीति के परिणामस्वरूप घाटे के संकेत मिल सकते हैं और कई बार अक्षम ट्रेडिंग सिग्नल मिल सकते हैं।

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

अनुकूलन दिशा

इस रणनीति में निम्नलिखित पहलुओं में सुधार की आवश्यकता है:

  1. अधिक प्रकार के चलती औसत का परीक्षण करें और बेहतर संयोजनों की तलाश करें। एसएमए, ईएमए, कामा, टेमा आदि पर विचार करें।

  2. चलती औसत की लंबाई और चैनल की चौड़ाई के लिए पैरामीटर अनुकूलन, इष्टतम पैरामीटर सेटिंग खोजने के लिए।

  3. विभिन्न स्टॉप-स्टॉप-लॉस सेटिंग्स का परीक्षण करना। ट्रेलिंग स्टॉप या डायनामिक स्टॉप-लॉस जैसे तरीकों पर विचार किया जा सकता है।

  4. प्रवृत्ति को समझने वाले संकेतकों के साथ, बिना स्पष्ट प्रवृत्ति वाले बाजारों में बार-बार व्यापार करने से बचें। जैसे कि एडीएक्स, एटीआर आदि।

  5. प्रविष्टि और निकास तर्क का अनुकूलन करें, अतिरिक्त फ़िल्टर शर्तें सेट करें और अमान्य लेनदेन को कम करें।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
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/
// © exlux99

//@version=4

strategy(title="High/Low channel swing", shorttitle="Multi MA swing", overlay=true)


fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

//////
length_ma= input(defval=12, title="Length Moving averages", minval=1)

////////////////////////////////SETUP///////////////////////////////////////////

sma_high   = sma(high, length_ma)
ema_high   = ema(high, length_ma)
wma_high   = wma(high, length_ma)
alma_high  = alma(high,length_ma, 0.85, 6)
smma_high = rma(high,length_ma)
lsma_high = linreg(high, length_ma, 0)
vwma_high = vwma(high,length_ma)



avg_high = (sma_high+ema_high+wma_high+alma_high+smma_high+lsma_high+vwma_high)/7

///////////////////////////////////////////

sma_low   = sma(low, length_ma)
ema_low   = ema(low, length_ma)
wma_low   = wma(low, length_ma)
alma_low  = alma(low,length_ma, 0.85, 6)
smma_low = rma(low,length_ma)
lsma_low = linreg(low, length_ma, 0)
vwma_low = vwma(low,length_ma)



avg_low = (sma_low+ema_low+wma_low+alma_low+smma_low+lsma_low+vwma_low)/7

////////////////////////////PLOTTING////////////////////////////////////////////


plot(avg_high , title="avg", color=color.green, linewidth = 4)
plot(avg_low , title="avg", color=color.red, linewidth = 4)

long= close > avg_high
short = close < avg_low

tplong=input(0.06, title="TP Long", step=0.01)
sllong=input(0.05, title="SL Long", step=0.01)

tpshort=input(0.045, title="TP Short", step=0.01)
slshort=input(0.05, title="SL Short", step=0.01)

if(time_cond)
    strategy.entry("long",1,when=long)
    strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong")
    strategy.close("long", when=crossunder(low,avg_low))
    
    
    strategy.entry("short",0,when=short)
    strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort")
    strategy.close("short",when=crossover(high,avg_high))