
एमएसीडी औसत रेखा बैल और भालू रूपांतरण रणनीति MACD सूचक के डीआईएफएफ और डीईए औसत रेखा की गणना करके, यह निर्धारित करने के लिए कि क्या बाजार की प्रवृत्ति में बदलाव हुआ है, और फिर एक व्यापार संकेत उत्पन्न करता है। जब डीआईएफएफ पर डीईए पार हो जाता है, तो अधिक करें; जब डीआईएफएफ के नीचे डीईए पार हो जाता है, तो खाली करें। यह रणनीति कीमत ईएमए औसत रेखा फ़िल्टर के साथ मिलकर होती है, जिससे झूठी तोड़फोड़ से बचा जा सके।
यह रणनीति मुख्य रूप से MACD सूचकांक के DIFF और DEA औसत रेखा पर आधारित है। MACD DIFF, DEA और MACD रेखाओं से युक्त सूचकांक के चलती औसत विचलन को दर्शाता है। इसमें, DIFF रेखा अल्पकालिक ईएमए औसत रेखा और दीर्घकालिक ईएमए औसत रेखा के विचलन को दर्शाता है।
जब DIFF ऊपर की ओर DEA को तोड़ता है, तो यह दर्शाता है कि अल्पकालिक औसत रेखा मजबूत होने लगी है, और बाजार में कई कदम हैं, और जब DIFF नीचे की ओर DEA को तोड़ता है, तो यह दर्शाता है कि अल्पकालिक औसत रेखा कमजोर होने लगी है, और बाजार में एक कदम है। इसलिए, यह रणनीति DIFF पर DEA को तोड़ते समय अधिक करती है, और इसे तोड़ते समय खाली करती है।
इसके अलावा, रणनीति के साथ कीमतों के ईएमए औसत के लिए फ़िल्टर नकली तोड़ने. केवल जब DIFF ऊपर तोड़ने डीईए और कीमतों के नीचे पिछले बार से अधिक कीमतों के लिए अधिक है; केवल जब DIFF नीचे तोड़ने डीईए और कीमतों के ऊपर पिछले बार से अधिक कीमतों के लिए खाली है.
एमएसीडी औसत रेखा बैल और भालू रूपांतरण रणनीति एमएसीडी सूचक और मूल्य ईएमए औसत रेखा के संयोजन में, केवल एमएसीडी सूचक द्वारा उत्पन्न झूठे संकेतों से बचने के लिए, व्यापार प्रभावशीलता में सुधार करती है। यह रणनीति बाजार की प्रवृत्ति को जल्दी से बदलने का फैसला करती है, जो शॉर्ट लाइन ऑपरेशन के लिए उपयुक्त है।
इस प्रकार के लाभों में से कुछ हैंः
MACD औसत रेखा बैल और भालू रूपांतरण रणनीति में कुछ जोखिम भी हैं, जो मुख्य रूप से इस प्रकार हैंः
इन जोखिमों को मुख्य रूप से निम्नलिखित तरीकों से अनुकूलित किया जा सकता हैः
एमएसीडी औसत रेखीय बैल और भालू रूपांतरण रणनीति में अनुकूलन के लिए भी जगह है, जो निम्नलिखित आयामों से अनुकूलित की जा सकती हैः
MACD औसत रेखा बैल और भालू रूपांतरण रणनीति DIFF, DEA के माध्यम से बाजार में प्रवेश करने के समय का आकलन करती है और कीमत ईएमए औसत रेखा फ़िल्टर झूठे संकेतों के साथ, बाजार की प्रवृत्ति में बदलाव का तेजी से आकलन करने का प्रभाव प्राप्त करती है। यह रणनीति सरल और स्पष्ट व्यापार तर्क के साथ, रूपांतरण बिंदु का आकलन करने के लिए त्वरित है, जो लघु और मध्य रेखा के लिए उपयुक्त है। ऑपरेशन का अगला चरण पैरामीटर को समायोजित करने, फ़िल्टर को बढ़ाने, व्यापार आवृत्ति को नियंत्रित करने आदि के रूप में अनुकूलित किया जा सकता है, जिससे रणनीति अधिक स्थिर हो जाती है।
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("macd_strategy",
shorttitle="macd",
overlay=true,
pyramiding=1,
max_bars_back=5000,
calc_on_order_fills = false,
calc_on_every_tick=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100,
commission_type =strategy.commission.percent,
commission_value=0.00075)
[diff, dea, _] = macd(close, 12, 26, 7)
dea_close = ema(diff, 3)
price = ema(close, 9)
plot(price)
cross_over_price = na
cross_over_signal = na
cross_over_price := cross_over_price[1]
cross_over_signal := cross_over_signal[1]
cross_under_price = na
cross_under_signal = na
cross_under_price := cross_under_price[1]
cross_under_signal := cross_under_signal[1]
if (crossover(diff,dea))
cross_over_price := price[1]
cross_over_signal := diff
if (crossunder(diff,dea))
cross_under_price := price[1]
cross_under_signal := diff
if dea > 0
cross_over_price = na
cross_over_signal = na
else
cross_under_price = na
cross_under_signal = na
if diff > 0
if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95
strategy.entry("S", strategy.short, comment="S")
else
if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95
strategy.entry("B", strategy.long, comment="B")
// strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0)
// strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0)
strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))