संशोधित OBV और MACD पर आधारित मात्रात्मक ट्रेडिंग रणनीति


निर्माण तिथि: 2023-11-15 17:58:42 अंत में संशोधित करें: 2023-11-15 17:58:42
कॉपी: 0 क्लिक्स: 858
1
ध्यान केंद्रित करना
1617
समर्थक

संशोधित OBV और MACD पर आधारित मात्रात्मक ट्रेडिंग रणनीति

अवलोकन

इस रणनीति के आधार पर बदल ऊर्जा ज्वार संकेतक (OBV) और MACD के लिए व्यापार के संकेत का न्याय, मात्रा-मूल्य समग्र रणनीति के अंतर्गत आते हैं. यह एक स्टॉक मूल्य सूचकांक MACD और परिवर्तित OBV के रूप में मात्रा-मूल्य समग्र संकेतों के रूप में शामिल है, जिसका उद्देश्य स्टॉक की मात्रा-मूल्य के मजबूत कमजोर ब्रेकआउट के लिए व्यापार के अवसरों की खोज करना है.

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

  1. सरल चलती औसत (SMA) की गणना करें और बड़े बाजार के रुझानों का आकलन करें।

  2. ओबीवी की गणना में परिवर्तन। यह ओबीवी की गणना के तरीके को बदलता है, जो कि ओबीवी को अधिक संवेदनशील बनाता है, जो कि समापन मूल्य और पिछले दिन के समापन मूल्य के संबंध के आधार पर होता है।

  3. परिवर्तित OBV पर MACD की गणना करें। MACD में फास्ट लाइन, धीमी लाइन और MACD स्तंभ शामिल हैं, और मात्रा में परिवर्तनशीलता की प्रवृत्ति देखी जा सकती है।

  4. जब MACD का कांटा ऊपर होता है, तो यह एक खरीद संकेत होता है।

  5. जब MACD नीचे की ओर होता है, तो यह एक बेचने का संकेत होता है।

  6. इस तरह के एक बयान में कहा गया है, “अनावश्यक लेन-देन से बचने के लिए बड़े पैमाने पर एसएमए निर्णयों का उपयोग करें।

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

  1. ओबीवी में परिवर्तन अधिक संवेदनशील है, इसलिए यह पहले से ही परिवर्तन को पकड़ सकता है।

  2. MACD प्रवृत्ति और महत्वपूर्ण बिंदुओं को स्पष्ट रूप से निर्धारित कर सकता है।

  3. मूल्य-संश्लेषण संकेत, संकेत की सटीकता में सुधार।

  4. एसएमए बड़े शेयरों के रुझानों का आकलन करने में मदद करता है और गलत संकेतों को फ़िल्टर करता है।

  5. रणनीति स्पष्ट और समझने में आसान है, पैरामीटर अनुकूलन के लिए जगह है।

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

  1. ओबीवी को बदलने से गलत सिग्नल उत्पन्न हो सकते हैं और अन्य संकेतकों को फ़िल्टर करने की आवश्यकता होती है।

  2. MACD पैरामीटर को गलत तरीके से सेट करने से ट्रेडिंग के अवसरों को याद किया जा सकता है या गलत संकेत मिल सकते हैं।

  3. शेयरों की जानकारी पर ध्यान देने की आवश्यकता है ताकि व्यक्तिगत शेयरों के कारण होने वाले नुकसान से बचा जा सके।

  4. बाजार की स्थिति को ध्यान में रखते हुए, यह विशेष परिदृश्यों के लिए नहीं है।

  5. रिटर्निंग डेटा फिट होने का जोखिम, फिक्स्ड डिस्क में प्रभाव कम हो सकता है।

अनुकूलन दिशा

  1. विभिन्न एसएमए चक्रों के संयोजन का परीक्षण करें और बड़े बाजार के रुझानों को अनुकूलित करें।

  2. परीक्षण MACD पैरामीटर सेटिंग्स, अनुकूलन मात्रा परिवर्तन निर्णय

  3. KDJ, RSI आदि जैसे अन्य सूचकांकों को फ़िल्टर करें।

  4. एक स्टॉप लॉस रणनीति जोड़ें और एकल नुकसान को नियंत्रित करें।

  5. समग्र लाभप्रदता में सुधार के लिए धन प्रबंधन रणनीतियों का अनुकूलन करना।

  6. विभिन्न स्टॉक रणनीति मापदंडों के अंतर का परीक्षण करना।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
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/
// © stocktechbot

//@version=5
strategy("Altered OBV On MACD", overlay=true, margin_long=100, margin_short=100)

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © stocktechbot
//@version=5
//SMA Tredline
out = ta.sma(close, 200)
outf = ta.sma(close, 50)
outn = ta.sma(close, 90)
outt = ta.sma(close, 21)
outthree = ta.sma(close, 9)
//sma plot
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)
plot(out, color=color.blue, title="MA200", offset=offset)
plot(outf, color=color.maroon, title="MA50", offset=offset)
plot(outn, color=color.orange, title="MA90", offset=offset)
plot(outt, color=color.olive, title="MA21", offset=offset)
plot(outthree, color=color.fuchsia, title="MA9", offset=offset)

fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
chng = 0
obv = ta.cum(math.sign(ta.change(close)) * volume)
if close < close[1] and (open < close)
    chng := 1
else if close > close[1]
    chng := 1
else
    chng := -1
obvalt = ta.cum(math.sign(chng) * volume)
//src = input(title="Source", defval=close)
src = obvalt
signal_length = input.int(title="Signal Smoothing",  minval = 1, maxval = 50, defval = 9)
sma_source = input.string(title="Oscillator MA Type",  defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
//hline(0, "Zero Line", color=color.new(#787B86, 50))
//plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below)))
//plot(macd, title="MACD", color=col_macd)
//plot(signal, title="Signal", color=col_signal)
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
//BUY Signal
mafentry =ta.sma(close, 50) > ta.sma(close, 90)
//matentry = ta.sma(close, 21) > ta.sma(close, 50)
matwohun = close > ta.sma(close, 200)
twohunraise = ta.rising(out, 2)
twentyrise = ta.rising(outt, 2)
macdrise = ta.rising(macd,2)
macdlong = ta.crossover(macd, signal)
longCondition=false
if macdlong and macdrise
    longCondition := true

if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)
//Sell Signal
mafexit =ta.sma(close, 50) < ta.sma(close, 90)
matexit = ta.sma(close, 21) < ta.sma(close, 50)
matwohund = close < ta.sma(close, 200)
twohunfall = ta.falling(out, 3)
twentyfall = ta.falling(outt, 2)
shortmafall = ta.falling(outthree, 1)
macdfall = ta.falling(macd,1)
macdsell = macd < signal
shortCondition = false
if macdfall and macdsell and (macdLine < signalLine) and ta.falling(low,2)
    shortCondition := true


if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)