स्किलेटर प्रोफाइल रिवर्सल रणनीति बहु समय सीमा MACD शून्य क्रॉसिंग पर आधारित

लेखक:चाओझांग, दिनांकः 2024-02-18 15:27:21
टैगः

img

अवलोकन

3 10.0 ऑसिलेटर प्रोफाइल रिवर्स रणनीति विभिन्न समय सीमाओं में एमएसीडी संकेतकों की गणना करके संभावित मूल्य रिवर्स की पहचान करती है। यह उच्च पूंजी दक्षता का पीछा करने के लिए प्रवृत्ति-अनुसरण स्टॉप लॉस दृष्टिकोण को अपनाती है।

रणनीति तर्क

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

विशेष रूप से, रणनीति निम्न के आधार पर मूल्य उलटों का आकलन करती हैः

  1. एमएसीडी शून्य-क्रॉसिंग इंगित करता है कि मूल्य महत्वपूर्ण बिंदु तक पहुंच जाता है
  2. वॉल्यूम दबाव तेजी या मंदी की भावना का आकलन करता है
  3. एमएसीडी ढलान परिवर्तन के साथ आरएसआई सूचकांक उलट संकेतों की ताकत निर्धारित करता है
  4. विपरीत दिशा में तेज लाइन और सिग्नल लाइन पार करने से रिवर्स सिग्नल बनता है

जब रिवर्स सिग्नल की विश्वसनीयता अधिक होती है, तो रणनीति उच्च लाभ प्राप्त करने के लिए रुझान के बाद स्टॉप लॉस को अपनाती है।

लाभ विश्लेषण

इस रणनीति के निम्नलिखित फायदे हैंः

  1. कई संकेतक रिवर्स सिग्नल को अधिक विश्वसनीय बनाते हैं
  2. एमएसीडी शून्य-क्रॉसिंग सटीक रूप से उलट बिंदुओं का पता लगाता है
  3. विश्वसनीयता में सुधार के लिए आरएसआई और वॉल्यूम सहायता निर्णय
  4. रुझान के बाद स्टॉप लॉस पूंजी दक्षता में सुधार करता है

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

कुछ जोखिम भी हैं:

  1. एमएसीडी के झूठे संकेत और फंसने की उच्च संभावना
  2. वैकल्पिक रुझानों के दौरान स्टॉप लॉस होने की उच्च संभावना
  3. गलत पैरामीटर सेटिंग से व्यापार की आवृत्ति और लागत बढ़ सकती है

जोखिमों को निम्न के द्वारा कम किया जा सकता हैः

  1. फंसने से बचने के लिए व्यापक स्टॉप लॉस की अनुमति दें
  2. कम ट्रेडिंग आवृत्ति के लिए मापदंडों का अनुकूलन
  3. केवल प्रमुख समर्थन/प्रतिरोध स्तरों के निकट प्रवेश पर विचार करें

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

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

  1. रिवर्स सिग्नल विश्वसनीयता में सहायता के लिए मशीन लर्निंग एल्गोरिदम जोड़ें
  2. बैल/हरे की मानसिकता निर्धारित करने के लिए भावना सूचकांक जोड़ें
  3. प्रवेश सटीकता में सुधार के लिए प्रमुख समर्थन/प्रतिरोध स्तरों का संयोजन करें
  4. उच्च पूंजी दक्षता के लिए स्टॉप लॉस को अनुकूलित करें
  5. कम ट्रेडिंग आवृत्ति के लिए इष्टतम पैरामीटर संयोजनों का परीक्षण करें

निष्कर्ष

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


/*backtest
start: 2023-02-11 00:00:00
end: 2024-02-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

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

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")
intrabarRange = high - low
rsi = ta.rsi(close, 14)
rsiSlope = rsi - rsi[1]

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 )

// 393.60 Profit 52.26% 15m
if ( hasBullInversion and rsiSlope > 1.5 and volume > 300000.0 )
    strategy.entry("15C1", strategy.long, qty=10.0)
strategy.exit("TPS", "15C1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)

// 356.10 Profit 51,45% 15m
if ( getVolBias(shortLookBack) == false and rsiSlope > 3.0 and signalSlope > 0)
    strategy.entry("15C2", strategy.long, qty=10.0)
strategy.exit("TPS", "15C2", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)

// 124 Profit 52% 15m
if ( rsiSlope < -11.25 and macdSlope < 0.0 and signalSlope < 0.0)
    strategy.entry("15P1", strategy.short, qty=10.0)
strategy.exit("TPS", "15P1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)

// 455.40 Profit 49% 15m
if ( math.abs(math.abs(macd) - math.abs(signal)) < .1 and buyVolume > sellVolume and hasBullInversion)
    strategy.entry("15P2", strategy.short, qty=10.0)
strategy.exit("TPS", "15P2", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)

अधिक