बोलिंगर बैंड, मूविंग एवरेज और एमएसीडी पर आधारित संयोजन ट्रेडिंग रणनीति


निर्माण तिथि: 2024-02-04 15:42:23 अंत में संशोधित करें: 2024-02-04 15:42:23
कॉपी: 0 क्लिक्स: 815
1
ध्यान केंद्रित करना
1617
समर्थक

बोलिंगर बैंड, मूविंग एवरेज और एमएसीडी पर आधारित संयोजन ट्रेडिंग रणनीति

रणनीति अवलोकन

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

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

इस रणनीति का नाम प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करने के लिए प्रवृत्ति को ट्रैक करें।

इस प्रकार के लेन-देन का मूल तर्क है:

  1. प्रवृत्ति की दिशा का निर्धारण करना। बुलिन बैंड के बीच की रेखा, ईएमए और एमएसीडी के शून्य-अक्ष तुलना के माध्यम से, यह निर्धारित करने के लिए कि बाजार वर्तमान में एक बहुमुखी चरण या एक खाली चरण में है।

  2. बाजार में प्रवेश का समय ढूंढना। मल्टीहेड (या खाली) रुझान की पहचान करने के बाद, रणनीति बाजार में प्रवेश का निर्णय लेती है कि क्या ईएमए की चलती औसत ब्रीनिंग ट्रैक को तोड़ती है, और क्या एमएसीडी स्तंभ रेखा पॉजिटिव (या नकारात्मक) है।

  3. स्टॉप लॉस सेट करें. मैदान में प्रवेश करने के बाद, एक निश्चित स्टॉप और स्टॉप लॉस सेट करें।

रणनीति का विश्लेषण

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

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

दूसरा, बुलिन बैंड में स्वयं एक मजबूत समावेशिता है। मध्यवर्ती रेखा के पास भी एक निश्चित समर्थन दबाव बिंदु को दर्शाता है, इसलिए ईएमए लाइन के माध्यम से कुछ संकेत मूल्य है।

इसके अलावा, MACD को शामिल करने से भी देखा जा सकता है कि वायु ऊर्जा की खपत बढ़ रही है। इसका निरपेक्ष मूल्य आकार जनता की भावनाओं को ऊंचा या ठंडा दर्शाता है, जो इसके उलट होने की संभावना को भी इंगित करता है।

अंत में, रणनीति में स्टॉप-स्टॉप-लॉस की शर्तें हैं जो एक एकल लेनदेन के जोखिम-लाभ को नियंत्रित करती हैं, जिससे समग्र स्थिरता सुनिश्चित होती है।

रणनीतिक जोखिम विश्लेषण

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

  1. ब्रिन बैंड पैरामीटर को गलत तरीके से सेट किया गया है, और मध्यवर्ती रेखा मुख्य प्रवृत्ति को स्पष्ट रूप से प्रतिबिंबित नहीं करती है।

  2. सम-रेखा प्रणाली में मल्टीहेड सिग्नल हैं, लेकिन एमएसीडी को स्पष्ट रूप से सही नहीं किया गया है, और हेड फोर्स का विस्तार हो सकता है।

  3. स्टॉप लॉस की सीमा बहुत बड़ी है, और एक एकल नुकसान बढ़ सकता है।

मुख्य समाधान इस प्रकार हैंः

  1. ब्रिन बैंड पैरामीटर को समायोजित करें ताकि यह सुनिश्चित किया जा सके कि मध्यवर्ती रेखा मुख्य प्रवृत्ति को प्रभावी ढंग से दर्शाती है।

  2. अधिक तकनीकी मापदंडों को शामिल करना।

  3. ऐतिहासिक लेनदेन का मूल्यांकन करें और स्टॉप-स्टॉप-लॉस पैरामीटर का अनुकूलन करें।

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

इस रणनीति को और भी बेहतर बनाया जा सकता है:

  1. रुझानों को समझने के लिए अधिक संकेतकों को शामिल करना। जैसे कि केडीजे, एटीआर आदि सहायक निर्णय, निर्णय की सटीकता में सुधार करना।

  2. ऑपरेशन स्तर पर अधिक सूक्ष्म रोकथाम सेट करें। जैसे कि चलती रोकथाम, नई ऊंचाई को तोड़ने के बाद रोकथाम अनुपात को बढ़ाएं।

  3. विभिन्न किस्मों के प्रदर्शन का आकलन करें। अधिक विशिष्टताओं के लिए पैरामीटर को समायोजित करें।

  4. परीक्षण प्रभाव और विभिन्न समय सीमा और बाजारों के लिए प्रतिक्रिया के परिणामों का मूल्यांकन किया गया। पैरामीटर को तदनुसार समायोजित करें।

  5. मशीन सीखने के एल्गोरिदम को जोड़ना, पैरामीटर का स्वचालित अनुकूलन और नीति नियमों के गतिशील अद्यतन को लागू करना।

संक्षेप

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

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

//@version=5
strategy("Combined Strategy", overlay=true, shorttitle="Comb Strat", default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Precio de beneficio y Stop Loss
takeProfitTicks = 87636
stopLossTicks = 53350

// Bollinger Bands + EMA
length_bb = input(150, title="BB Length")
src_bb = input(close, title="BB Source")
mult = input(2.0, title="BB StdDev")
basis = ta.sma(src_bb, length_bb)
dev = mult * ta.stdev(src_bb, length_bb)
upper = basis + dev
lower = basis - dev

len_ema = input(34, title="EMA Length")
src_ema = input(close, title="EMA Source")
out_ema = ta.ema(src_ema, len_ema)

typeMA = input("SMA", title="Method")
smoothingLength = input(5, title="Length")

var float smoothingLine = na
if (typeMA == "SMA")
    smoothingLine := ta.sma(out_ema, smoothingLength)
else if (typeMA == "EMA")
    smoothingLine := ta.ema(out_ema, smoothingLength)

// MACD
fast_length = input(title="Fast Length", defval=9)
slow_length = input(title="Slow Length", defval=17)
src_macd = input(title="Source", defval=close)
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"])

fast_ma = sma_source == "SMA" ? ta.sma(src_macd, fast_length) : ta.ema(src_macd, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src_macd, slow_length) : ta.ema(src_macd, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Condiciones de compra y venta
longCondition = (out_ema > basis) and (macd > signal) and (signal > 0)
shortCondition = (out_ema < basis) and (macd < signal) and (signal < 0)

// Variables de estado
var bool longExecuted = na
var bool shortExecuted = na

// Estrategia
if (longCondition and not longExecuted)
    strategy.entry("Long", strategy.long)
    longExecuted := true
    shortExecuted := na
if (shortCondition and not shortExecuted)
    strategy.entry("Short", strategy.short)
    shortExecuted := true
    longExecuted := na

// Take Profit y Stop Loss para Compras y Ventas Cortas
strategy.exit("Take Profit/Close Long", from_entry="Long", profit=takeProfitTicks, loss=stopLossTicks)
strategy.exit("Take Profit/Close Short", from_entry="Short", profit=takeProfitTicks, loss=stopLossTicks)

// Cierre de posiciones cuando la dirección cambia
if ((out_ema < basis) and (macd < signal))
    strategy.close("Long")
    longExecuted := na
if ((out_ema > basis) and (macd > signal))
    strategy.close("Short")
    shortExecuted := na

// Plots
plot(basis, "BB Basis", color=#FF6D00)
plot(upper, "BB Upper", color=color.new(#2962FF, 0.5))
plot(lower, "BB Lower", color=color.new(#2962FF, 0.5))

plot(smoothingLine, title="Smoothing Line", color=#f37f20, linewidth=2)

hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist[1] < hist ? color.green : color.red) : (hist[1] < hist ? color.red : color.green)))
plot(macd, title="MACD", color=color.blue)
plot(signal, title="Signal", color=color.orange)