उच्च समय सीमा भारित चलती औसत अंतराल सफलता मात्रात्मक व्यापार रणनीति

WMA HTF TP/SL Zone Trading Breakout Strategy risk management
निर्माण तिथि: 2025-05-26 14:50:17 अंत में संशोधित करें: 2025-05-26 14:50:17
कॉपी: 0 क्लिक्स: 249
2
ध्यान केंद्रित करना
319
समर्थक

उच्च समय सीमा भारित चलती औसत अंतराल सफलता मात्रात्मक व्यापार रणनीति उच्च समय सीमा भारित चलती औसत अंतराल सफलता मात्रात्मक व्यापार रणनीति

अवलोकन

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

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

इस रणनीति का मूल सिद्धांत उच्च समय सीमा के भारित चलती औसत का उपयोग करके मूल्य गतिविधि की अवधि का निर्माण करना है। इसके लिए निम्नलिखित चरणों का पालन करना होगाः

  1. सबसे पहले, रणनीति की गणना की जाती है एक भारित चलती औसत (डब्ल्यूएमए) के रूप में खुलने की कीमत, उच्चतम मूल्य, न्यूनतम मूल्य और समापन मूल्य, जो उपयोगकर्ता द्वारा निर्धारित न्यूनतम चक्र पैरामीटर पर आधारित है (डिफ़ॉल्ट 60).
  2. फिर, रणनीति इन WMA मानों को उच्चतर समय-सीमा से (डिफ़ॉल्ट रूप से चंद्र रेखा) वर्तमान ट्रेडिंग समय-सीमा में परिवर्तित करती है।
  3. केंद्र मूल्य के रूप में उच्च या निम्न भारित चलती औसत के मध्य बिंदु की गणना करें।
  4. केंद्र मूल्य और उपयोगकर्ता द्वारा परिभाषित प्रतिशत के आधार पर ((0.1 या 10% डिफ़ॉल्ट), निर्माण अपरकेल ((प्रतिरोध बिट्स) और डाउनरेल ((समर्थन बिट्स)) ।
  5. जब कीमत ऊपर की ओर उछलती है, तो एक मल्टी सिग्नल ट्रिगर करें; जब कीमत नीचे की ओर उछलती है, तो एक रिक्त सिग्नल ट्रिगर करें।
  6. रणनीति में दो स्टॉप-स्टॉप लक्ष्य निर्धारित किए गए हैं (डिफ़ॉल्ट रूप से 10% और 20%), प्रत्येक लक्ष्य में कुछ स्थानों को खाली करना है (डिफ़ॉल्ट रूप से 50%) ।
  7. इसके अलावा, संभावित नुकसान को सीमित करने के लिए स्टॉप (डिफ़ॉल्ट 5%) सेट करें।

रणनीति पृष्ठभूमि रंग परिवर्तन, कस्टम फ़्रेम और प्रवेश / निकास चिह्न जैसे दृश्य तत्वों का उपयोग करती है, जिससे व्यापारी को व्यापार की अवधि और वर्तमान बाजार की स्थिति को सहज रूप से पहचानने में सक्षम बनाता है। इसके अलावा, रणनीति वर्तमान स्थिति के प्रतिशत परिवर्तन को दिखाती है और मूल्य परिवर्तन को उजागर करने के लिए गुणांक कारक ((डिफ़ॉल्ट 20) को लागू करती है) ।

रणनीतिक लाभ

इस रणनीति के कोड का गहराई से विश्लेषण करते हुए, हम निम्नलिखित प्रमुख लाभ पा सकते हैंः

  1. उच्च समय फ़िल्टरउच्चतर समय-सीमा के भारित चलती औसत का उपयोग करके, रणनीति प्रभावी रूप से अल्पकालिक बाजार के शोर को छानने में सक्षम है, अधिक सार्थक मूल्य आंदोलनों को पकड़ती है और झूठे संकेतों को कम करती है।

  2. गतिशील व्यापार क्षेत्ररणनीतियाँः मूल्य के मध्य बिंदु और प्रतिशत के आधार पर गतिशील रूप से व्यापार क्षेत्र का निर्माण करने की रणनीति, जो विभिन्न बाजार स्थितियों और अस्थिरता के लिए अनुकूल है, और निश्चित समर्थन / प्रतिरोध बिंदुओं की सीमाओं से बचता है।

  3. स्पष्ट प्रवेश और निकास नियम: रणनीति स्पष्ट प्रवेश संकेत प्रदान करती है ((ब्रिज अप / डाउन ट्रैक) और बाहर निकलने के नियम ((स्टॉप और स्टॉप लॉस को अलग-अलग करें), व्यापारिक निर्णयों में व्यक्तिपरकता को समाप्त करता है।

  4. जोखिम प्रबंधन एकीकरणएक पूर्ण ट्रेडिंग प्रणाली के रूप में अंतर्निहित स्टॉप लॉस और बैच स्टॉप मेकेनिज्म पूंजी की रक्षा करने और मुनाफे को लॉक करने में मदद करता है।

  5. दृश्य प्रतिक्रियारणनीतियाँः रणनीतियाँ बहुत सारे दृश्य तत्व प्रदान करती हैं, जिसमें ट्रेडिंग फ़्रेम पृष्ठभूमि रंग, प्रतिशत परिवर्तन टैग और प्रवेश/निर्गमन मार्कर शामिल हैं, जो व्यापारियों को बाजार की स्थिति का त्वरित आकलन करने में मदद करते हैं।

  6. लचीला पैरामीटर सेटिंग: उपयोगकर्ता व्यक्तिगत वरीयताओं और विभिन्न बाजार स्थितियों के आधार पर कई मापदंडों को समायोजित कर सकता है, जिसमें समय सीमा, चलती औसत अवधि, अनुपात प्रतिशत, स्टॉप / स्टॉप लेवल और दृश्य तत्व शामिल हैं।

  7. बहु-समय फ्रेम समन्वयरणनीतिः उच्च समय सीमा सिग्नल गुणवत्ता और वर्तमान समय सीमा निष्पादन सटीकता को जोड़ती है, जिससे बहु-समय सीमा समन्वय प्राप्त होता है।

रणनीतिक जोखिम

इस रणनीति के कई फायदे हैं, लेकिन इसके साथ कुछ संभावित जोखिम भी हैं:

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

  2. उच्च अस्थिरता वाले बाजारों के लिए उपयुक्त नहीं: अत्यधिक अस्थिरता वाले बाजारों में, कीमतों में बार-बार सीमाओं को तोड़ने की संभावना होती है, जिससे अत्यधिक लेनदेन और संभावित नुकसान होता है। इस मामले में, सीमा अनुपात बढ़ाया जा सकता है या उच्च समय सीमा पर स्विच किया जा सकता है।

  3. फिक्स्ड प्रतिशत स्टॉप लॉस/स्टॉप स्टॉप फ्लेक्सिबल नहीं: बाजार की अस्थिरता समय के साथ बदलती है, और एक निश्चित प्रतिशत स्टॉप / स्टॉप हमेशा इष्टतम नहीं हो सकता है। अस्थिरता के संकेतकों (जैसे एटीआर) के आधार पर स्टॉप / स्टॉप स्तर को गतिशील रूप से समायोजित करने पर विचार किया जा सकता है।

  4. पैरामीटर संवेदनशीलता: रणनीति का प्रदर्शन पैरामीटर सेटिंग्स के लिए अत्यधिक संवेदनशील हो सकता है, जैसे कि डब्ल्यूएमए चक्र, अंतराल अनुपात और स्टॉप/स्टॉप लॉस प्रतिशत। पर्याप्त ऐतिहासिक पुनर्विचार और पैरामीटर अनुकूलन आवश्यक है।

  5. अति-अनुकूलन जोखिम: किसी विशेष ऐतिहासिक आंकड़े को अत्यधिक अनुकूलित करने से भविष्य में खराब प्रदर्शन हो सकता है। कई बाजारों और समय अवधि के लिए रिटर्न्स की सिफारिश की जाती है, और पैरामीटर को अपेक्षाकृत स्थिर रखा जाता है।

  6. बाजार के रुझान में परिवर्तन के लिए अनुकूलनशीलता: यह रणनीति अपने बैंड को नए बाजार रुझानों के अनुसार बैंड ब्रीच के बाद समायोजित नहीं करती है, जिससे मजबूत ट्रेंडिंग बाजारों में गलत सिग्नल हो सकते हैं। रुझान फ़िल्टर या गतिशील समायोजन बैंड जोड़ने पर विचार किया जा सकता है।

रणनीति अनुकूलन दिशा

कोड के गहन विश्लेषण के आधार पर, इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः

  1. एक ब्रेकआउट पुष्टिकरण जोड़ेंझूठे ब्रेकडाउन को कम करने के लिए, अतिरिक्त पुष्टि की शर्तें जोड़ी जा सकती हैं, जैसे कि ब्रेकडाउन के बाद समापन मूल्य की आवश्यकता, लेन-देन की मात्रा की पुष्टि या अन्य तकनीकी संकेतकों (जैसे आरएसआई, एमएसीडी) का उपयोग करके क्रॉस-कन्फर्मेशन।

  2. गतिशील रोक नुकसान सेटिंगस्थिर प्रतिशत स्टॉप को बाजार की अस्थिरता पर आधारित गतिशील स्टॉप के साथ बदलें, जैसे कि एटीआर (औसत वास्तविक सीमा) के गुणक का उपयोग करके स्टॉप स्तर सेट करना, ताकि रणनीति को विभिन्न बाजार स्थितियों के लिए बेहतर रूप से अनुकूलित किया जा सके।

  3. ट्रेंड फ़िल्टर जोड़ें: प्रवृत्ति की पहचान करने वाले घटकों को जोड़ना, जैसे कि दीर्घकालिक चलती औसत या एडीएक्स संकेतक, मजबूत प्रवृत्ति वाले बाजारों में व्यापार व्यवहार को समायोजित करने के लिए, जैसे कि केवल अधिक ट्रेडिंग करना और केवल डाउनट्रेंड करना।

  4. प्रवेश का समय अनुकूलित करें: वर्तमान रणनीति में, जब कीमतें ब्लॉक की सीमाओं को तोड़ती हैं, तो तुरंत प्रवेश करें, और प्रवेश के समय की गुणवत्ता में सुधार करने के लिए एक रिडंडेंट या एक विशिष्ट पैटर्न की पुष्टि के लिए प्रतीक्षा करें।

  5. धन प्रबंधन मॉड्यूल जोड़ें: अधिक जटिल स्थिति आकार गणना को सक्षम करने के लिए, स्थिर स्थिति के बजाय खाता आकार, बाजार की अस्थिरता और वर्तमान व्यापार जोखिम के आधार पर स्थिति आकार को गतिशील रूप से समायोजित करें।

  6. बाजार स्थिति फ़िल्टर जोड़ें: बाजार की स्थिति की पहचान करें (जैसे रुझान, आवृत्ति या उच्च उतार-चढ़ाव) और विभिन्न बाजार स्थितियों के अनुसार रणनीति पैरामीटर को समायोजित करें या व्यापार को रोकें।

  7. अनुकूली मापदंडों का कार्यान्वयनयह रणनीति की अनुकूलनशीलता को बढ़ाने के लिए महत्वपूर्ण मापदंडों को स्वचालित रूप से समायोजित करने की अनुमति देता है जैसे कि अंतराल अनुपात, डब्ल्यूएमए चक्र आदि, जो ऐतिहासिक उतार-चढ़ाव या अन्य बाजार विशेषताओं के आधार पर होता है।

  8. बहु-समय फ्रेम सिग्नल को एकीकृत करना: न केवल उच्च समय फ्रेम के WMA का उपयोग करके अंतराल का निर्माण किया जा सकता है, बल्कि अधिक व्यापक बाजार विश्लेषण और व्यापारिक निर्णयों के लिए कई समय फ्रेम के मूल्य व्यवहार और संकेतकों का विश्लेषण किया जा सकता है।

संक्षेप

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

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

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

रणनीति स्रोत कोड
/*backtest
start: 2025-01-01 00:00:00
end: 2025-05-25 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy('ZONE FLOW', overlay=true)

// Input parameters
src = close
src1 = open
src2 = low
src3 = high
Min = input(60, title='Minimum Period')
len = timeframe.isintraday and timeframe.multiplier >= 1 ? Min / timeframe.multiplier * 7 : timeframe.isintraday and timeframe.multiplier < 60 ? 60 / timeframe.multiplier * 24 * 7 : 7

c1 = ta.wma(src, len)
o1 = ta.wma(src1, len)
l1 = ta.wma(src2, len)
h1 = ta.wma(src3, len)

HTF = input.timeframe('M', title='Higher Time Frame')
ti = ta.change(time(HTF)) != 0
c = fixnan(ti ? c1 : na)
o = fixnan(ti ? o1 : na)
h = fixnan(ti ? h1 : na)
l = fixnan(ti ? l1 : na)

// Calculating mid-point
m = (h + l) / 2

// Calculating ratio lines
ratio = input.float(0.1, title='% ratio', minval=0.001, maxval=10)
r1 = m * ratio
u = m + r1
d = m - r1

// Take profit settings
takeProfitPercentage1 = input.float(10.0, title='Take Profit 1 (%)', minval=0.1, maxval=100.0) / 100
takeProfitQuantity1 = input.float(50.0, title='Take Profit 1 Quantity (%)', minval=0.1, maxval=100.0) / 100
takeProfitPercentage2 = input.float(20.0, title='Take Profit 2 (%)', minval=0.1, maxval=100.0) / 100
takeProfitQuantity2 = input.float(50.0, title='Take Profit 2 Quantity (%)', minval=0.1, maxval=100.0) / 100

// Stop loss settings
stopLossPercentage = input.float(5.0, title='Stop Loss (%)', minval=0.1, maxval=100.0) / 100

// Number of bars to extend lines
extensionBars = input.int(5, title='Number of Bars to Extend Lines', minval=1)

// Number of bars to offset the percentage label
percentOffsetBars = input.int(25, title='Number of Bars to Offset Percentage Label', minval=1)

// Input for multiplying the percentage change
multiplierFactor = input.int(20, title='Multiplier for Percentage Change', minval=1)

// Input for background colors
bgColor1 = input(color.new(color.blue, 90), title='Background Color 1')
bgColor2 = input(color.new(color.orange, 90), title='Background Color 2')

// Plot high, low, and ratio lines
ppo = plot(u, color=color.new(color.blue, 0), title='Upper Line (Resistance)', style=plot.style_stepline)
ppc = plot(d, color=color.new(color.orange, 0), title='Lower Line (Support)', style=plot.style_stepline)

plot(u, color=color.new(color.blue, 0), title='Upper Line (Resistance)', style=plot.style_circles, linewidth=2)
plot(d, color=color.new(color.orange, 0), title='Lower Line (Support)', style=plot.style_circles, linewidth=2)

// Fill the background between ratio lines with two different colors
fill(ppo, ppc, color=bgColor1)

// Calculate mid-point for background color switching
midPoint = (u + d) / 2
bgColorSwitch = close >= midPoint ? bgColor1 : bgColor2
fill(ppo, ppc, color=bgColorSwitch, transp=90)

// Initialize variables for lines and labels
var line tp1Line = na
var line tp2Line = na
var line stopLossLine = na
var line entryLine = na
var label tp1Label = na
var label tp2Label = na
var label stopLossLabel = na
var label entryLabel = na
var label percentLabel = na

// Variable to store the entry bar index
var int entryBarIndexLong = na
var int entryBarIndexShort = na

// Function to delete old labels and lines
deleteOldLinesAndLabels() =>
    if not na(tp1Line)
        line.delete(tp1Line)
    if not na(tp2Line)
        line.delete(tp2Line)
    if not na(stopLossLine)
        line.delete(stopLossLine)
    if not na(entryLine)
        line.delete(entryLine)
    if not na(tp1Label)
        label.delete(tp1Label)
    if not na(tp2Label)
        label.delete(tp2Label)
    if not na(stopLossLabel)
        label.delete(stopLossLabel)
    if not na(entryLabel)
        label.delete(entryLabel)
    if not na(percentLabel)
        label.delete(percentLabel)

// Strategy logic
longCondition = ta.crossover(close, u)
shortCondition = ta.crossunder(close, d)

if longCondition
    strategy.entry('Long', strategy.long)
    entryBarIndexLong := bar_index
    entryBarIndexLong

if shortCondition
    strategy.entry('Short', strategy.short)
    entryBarIndexShort := bar_index
    entryBarIndexShort

// Calculate take profit and stop loss levels for long positions
if strategy.position_size > 0  // Check if there's an open long position
    takeProfitLevelLong1 = strategy.position_avg_price * (1 + takeProfitPercentage1)
    takeProfitLevelLong2 = strategy.position_avg_price * (1 + takeProfitPercentage2)
    stopLossLevelLong = strategy.position_avg_price * (1 - stopLossPercentage)
    entryPrice = strategy.position_avg_price

    // Delete existing lines and labels if they exist
    deleteOldLinesAndLabels()


    // Exit a portion of the position at each take profit level
    strategy.exit('TP1', 'Long', limit=takeProfitLevelLong1, qty=strategy.position_size * takeProfitQuantity1)
    strategy.exit('TP2', 'Long', limit=takeProfitLevelLong2, qty=strategy.position_size * takeProfitQuantity2)
    strategy.exit('Stop Loss', 'Long', stop=stopLossLevelLong)

    // Display percentage change from entry price
    percentChange = (close - strategy.position_avg_price) / strategy.position_avg_price * 100
    percentMultiplied = percentChange * multiplierFactor
    percentColor = percentChange >= 0 ? color.green : color.red
    // Update label position to follow price line with larger text size
    percentLabel := label.new(x=bar_index + percentOffsetBars, y=close, text=str.tostring(percentMultiplied, format.percent) + '%', color=percentColor, textcolor=color.white, size=size.large, style=label.style_label_down)
    percentLabel

if strategy.position_size < 0  // Check if there's an open short position
    takeProfitLevelShort1 = strategy.position_avg_price * (1 - takeProfitPercentage1)
    takeProfitLevelShort2 = strategy.position_avg_price * (1 - takeProfitPercentage2)
    stopLossLevelShort = strategy.position_avg_price * (1 + stopLossPercentage)
    entryPrice = strategy.position_avg_price

    // Delete existing lines and labels if they exist
    deleteOldLinesAndLabels()


    // Exit a portion of the position at each take profit level
    strategy.exit('TP1', 'Short', limit=takeProfitLevelShort1, qty=strategy.position_size * takeProfitQuantity1)
    strategy.exit('TP2', 'Short', limit=takeProfitLevelShort2, qty=strategy.position_size * takeProfitQuantity2)
    strategy.exit('Stop Loss', 'Short', stop=stopLossLevelShort)

    // Display percentage change from entry price
    percentChange = (strategy.position_avg_price - close) / strategy.position_avg_price * 100
    percentMultiplied = percentChange * multiplierFactor
    percentColor = percentChange >= 0 ? color.green : color.red
    // Update label position to follow price line with larger text size
    percentLabel := label.new(x=bar_index + percentOffsetBars, y=close, text=str.tostring(percentMultiplied, format.percent) + '%', color=percentColor, textcolor=color.white, size=size.large, style=label.style_label_down)
    percentLabel

// Add buy and sell signals with shapes
plotshape(series=longCondition, title='Buy Signal', location=location.belowbar, color=color.new(color.green, 0), style=shape.labelup, text='.')
plotshape(series=shortCondition, title='Sell Signal', location=location.abovebar, color=color.new(color.red, 0), style=shape.labeldown, text='.')

// Remove old labels when they go out of scope
if bar_index % 50 == 0
    deleteOldLinesAndLabels()

// Define colors for candles based on background color
candleColorBull = bgColorSwitch  // Use background color for bullish candles
candleColorBear = bgColorSwitch  // Use background color for bearish candles
borderColorBull = color.black  // Border color for bullish candles
borderColorBear = color.black  // Border color for bearish candles

// Plot candles with custom colors
plotcandle(open, high, low, close, color=close >= open ? candleColorBull : candleColorBear, bordercolor=close >= open ? borderColorBull : borderColorBear, wickcolor=color.gray)