तीन चलती औसत दोलन रेंज उत्क्रमण रणनीति


निर्माण तिथि: 2024-02-18 11:18:51 अंत में संशोधित करें: 2024-02-18 11:18:51
कॉपी: 0 क्लिक्स: 649
1
ध्यान केंद्रित करना
1617
समर्थक

तीन चलती औसत दोलन रेंज उत्क्रमण रणनीति

अवलोकन

यह रणनीति 3 दिन की तेजी से चलती औसत, 10 दिन की धीमी गति से चलती औसत और 16 दिन की सिग्नल चिकनी चलती औसत का उपयोग करके MACD संकेतक का निर्माण करती है, जो RSI संकेतक और लेन-देन की मात्रा की विशेषता के साथ है, बहु-आयामी K-लाइन विशेषता को निर्धारित करती है, जो यह मानती है कि बाजार अत्यधिक बंधा हुआ है, जो कि बांडल में उतार-चढ़ाव की प्रवृत्ति का गठन करता है, ताकि प्रविष्टियों को मुनाफा हो सके।

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

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

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

इस नीति में कुल 3 प्रविष्टि संकेत दिए गए हैंः

  1. जब लेन-देन की मात्रा में खरीद की मात्रा का लाभ नहीं है, आरएसआई 41 से कम है और ऊपर है, और एमएसीडी संकेत स्पष्ट विचलन नहीं है, तो अधिक करें;

  2. जब लेन-देन की मात्रा में खरीद की मात्रा का लाभ होता है, तो आरएसआई 45-55 के बीच होता है और ऊपर जाता है, और जब एमएसीडी और सिग्नल लाइन एक साथ ऊपर जाती है, तो अधिक करें;

  3. जब MACD सेट थ्रेशोल्ड से ऊपर और ऊपर जाता है, तो खाली करें।

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

Exit को स्टॉप लॉस और स्टॉप रोल के रूप में सेट करें, नियंत्रण वापस लें और मुनाफा कमाएं।

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

इस रणनीति में कई संकेतकों को शामिल किया गया है, जो आघात की सीमा और ओवरबॉय ओवरसेलिंग की घटना का आकलन करते हैं। लाभप्रदता की अवधारणा स्पष्ट है। लेन-देन की मात्रा का विश्लेषण अधिक गहराई से किया जाता है, जिससे संचालन का आधार बढ़ जाता है। स्टॉप लॉस स्टॉप की सेटिंग भी अधिक सावधानी से की जाती है, जिससे अत्यधिक पीछा करने से बचा जा सकता है।

विशेष रूप से, इसके कुछ फायदे हैंः

  1. एक मात्रात्मक मूल्य परीक्षण सूचक के रूप में एमएसीडी, कीमतों और लेनदेन की मात्रा के बीच संबंधों को समझने के लिए, एकल तकनीकी विश्लेषण के व्यक्तिपरक दृष्टिकोण से बचने के लिए;

  2. एयरोस्पेस के अनुसार, यह “प्रवेशों की पुष्टि” के लिए है।

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

  4. स्टॉप लॉस स्टॉप सेटिंग्स अत्यधिक नुकसान को रोकने के लिए और लाभ के कुछ हिस्सों को लॉक करने के लिए

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

हालांकि इस रणनीति का समग्र उपयोग कई मापदंडों के साथ किया जाता है, जो जीत की दर को बढ़ाता है, लेकिन किसी भी रणनीति के लिए कुछ जोखिम हैं, मुख्य समस्या यह है किः

  1. संकेतक के झूठे संकेतों की संभावना, जैसे कि एक पलटाव के बाद प्रवृत्ति जारी रखना;

  2. स्टॉप लॉस स्टॉप को गलत तरीके से सेट किया गया है, बहुत अधिक निकासी की संभावना है और लाभ अच्छी तरह से लॉक नहीं किया जा सकता है;

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

इन सभी जोखिमों को और अधिक अनुकूलन द्वारा कम किया जा सकता है।

अनुकूलन दिशा

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

  1. विभिन्न सम-रेखा पैरामीटर सेटिंग्स का परीक्षण करें और इष्टतम संयोजन ढूंढें;

  2. आरएसआई पैरामीटर सेटिंग्स का परीक्षण करें ताकि एक अधिक उपयुक्त चक्र निर्धारित किया जा सके जो ओवरबॉट और ओवरसोल्ड का आकलन करता है;

  3. अधिकतम निकासी और मुनाफे को लॉक करने के बीच संतुलन खोजने के लिए स्टॉपलॉस को अनुकूलित करें;

  4. मशीन लर्निंग मॉडल को शामिल करना, अधिक डेटा का उपयोग करना, गलतफहमी की संभावना को कम करना और जीत की दर को बढ़ाना।

इन अनुकूलन के साधनों को अधिक व्यवस्थित प्रतिक्रिया के माध्यम से प्राप्त किया जा सकता है। जैसे-जैसे पैरामीटर स्पेस टेस्टिंग का विस्तार होता है और नमूने की मात्रा बढ़ती है, रणनीति की सफलता दर और लाभप्रदता में वृद्धि होती है।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("3 1 Oscillator Profile Flagging", shorttitle="3 1 Oscillator Profile Flagging", overlay=false)

signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.7)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=6)
takeProfit = input( title="Take Profit", defval=2)
stopLoss = input( title="Stop Loss", defval=0.7)

fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)

buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
plot(macd, color=color.blue, title="Total Volume")
plot(signal, color=color.orange, title="Total Volume")
plot(macdSlope, color=color.green, title="MACD Slope")
plot(signalSlope, color=color.red, title="Signal Slope")
intrabarRange = high - low
rsi = ta.rsi(close, 14)
rsiSlope = rsi - rsi[1]
plot(rsiSlope, color=color.black, title="RSI Slope")

getRSISlopeChange(lookBack) =>
    j = 0
    for i = 0 to lookBack
        if ( rsi[i] - rsi[ i + 1 ] ) > -5
            j += 1
    j

getBuyerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if buyVolume[i] > sellVolume[i]
            j += 1
    j

getSellerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if sellVolume[i] > buyVolume[i]
            j += 1
    j

getVolBias(lookBack) =>
    float b = 0.0
    float s = 0.0
    for i = 1 to lookBack
        b += buyVolume[i]
        s += sellVolume[i]
    b > s

getSignalBuyerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] > signalBiasValue
            j += 1
    j

getSignalSellerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < ( 0.0 - signalBiasValue )
            j += 1
    j

getSignalNoBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < signalBiasValue and signal[i] > ( 0.0 - signalBiasValue )
            j += 1
    j

getPriceRising(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] > close[i + 1]
            j += 1
    j


getPriceFalling(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] < close[i + 1] 
            j += 1
    j

getRangeNarrowing(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] < intrabarRange[i + 1] 
            j+= 1
    j

getRangeBroadening(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] > intrabarRange[i + 1] 
            j+= 1
    j

bool isNegativeSignalReversal = signalSlope < 0.0 and signalSlope[1] > 0.0
bool isNegativeMacdReversal = macdSlope < 0.0 and macdSlope[1] > 0.0

bool isPositiveSignalReversal = signalSlope > 0.0 and signalSlope[1] < 0.0
bool isPositiveMacdReversal = macdSlope > 0.0 and macdSlope[1] < 0.0

bool hasBearInversion = signalSlope > 0.0 and macdSlope < 0.0
bool hasBullInversion = signalSlope < 0.0 and macdSlope > 0.0

bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0.0 - signalBiasValue )

bool hasSignalBuyerBias = hasSignalBias and signal > 0.0
bool hasSignalSellerBias = hasSignalBias and signal < 0.0

bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0.0 - macdBiasValue )

bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)

bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )


// 202.30 Profit 55.29% 5m
if ( ( getVolBias(longLookBack) == false ) and rsi <= 41 and math.abs(rsi - rsi[shortLookBack]) > 1 and hasNoSignalBias and rsiSlope > 1.5 and close > open)
    strategy.entry("5C1", strategy.long, qty=1)
strategy.exit("TPS", "5C1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)

// 171.70 Profit 50.22% 5m
if ( getVolBias(longLookBack) == true and rsi > 45 and rsi < 55 and macdSlope > 0 and signalSlope > 0)
    strategy.entry("5C2", strategy.long, qty=1)
strategy.exit("TPS", "5C2", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)

// 309.50 Profit 30.8% 5m 2 tp .7 sl 289 trades
if ( macd > macdBiasValue and macdSlope > 0)
    strategy.entry("5P1", strategy.short, qty=1)
strategy.exit("TPS", "5P1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)