मूविंग एवरेज क्रॉसओवर रणनीति मूविंग एवरेज पर आधारित एक ट्रेडिंग रणनीति है। यह एक तेजी से चलती औसत और एक धीमी गति से चलती औसत के क्रॉसओवर का उपयोग खरीद और बिक्री संकेतों के रूप में करता है। जब तेजी से एमए नीचे से धीमी एमए के ऊपर से गुजरता है, तो एक खरीद संकेत उत्पन्न होता है। जब तेजी से एमए ऊपर से धीमी एमए के नीचे से गुजरता है, तो एक बिक्री संकेत उत्पन्न होता है।
यह रणनीति एक निर्दिष्ट अवधि के सरल चलती औसत की गणना करने के लिए sma फ़ंक्शन का उपयोग करती है जैसे कि तेज एमए और धीमी एमए। डिफ़ॉल्ट तेज एमए अवधि 18 दिन है, जिसे मापदंडों के माध्यम से समायोजित किया जा सकता है।
जब तेज एमए नीचे से धीमे एमए के ऊपर से गुजरता है, तो क्रॉसअंडर फ़ंक्शन क्रॉसओवर सिग्नल का पता लगाता है और एक खरीद संकेत उत्पन्न करता है। जब तेज एमए ऊपर से धीमे एमए के नीचे से गुजरता है, तो क्रॉसओवर फ़ंक्शन क्रॉसओवर सिग्नल का पता लगाता है और एक बिक्री संकेत उत्पन्न करता है।
यह रणनीति ट्रैक सिग्नल और एग्जिट सिग्नल के माध्यम से स्वचालित ट्रेडिंग का एहसास करती है। जब तेज एमए धीमी एमए से ऊपर पार हो जाती है तो लॉन्ग एंट्री ट्रिगर होती है, और जब तेज एमए धीमी एमए से नीचे पार हो जाती है तो शॉर्ट एंट्री ट्रिगर होती है। रिवर्स क्रॉसओवर पर भी संबंधित एग्जिट सिग्नल उत्पन्न होते हैं।
एमए क्रॉसओवर रणनीति एक क्लासिक और सरल ट्रेंड-फॉलोइंग रणनीति है। यह मुख्य रूप से एमए क्रॉसओवर का उपयोग आसान तर्क और कार्यान्वयन के साथ ट्रेडिंग सिग्नल के रूप में करती है। इसे पैरामीटर ट्यूनिंग के माध्यम से अनुकूलित किया जा सकता है। लेकिन इसमें उतार-चढ़ाव और ट्रेंड रिवर्स, उच्च सिग्नल आवृत्ति आदि के प्रति संवेदनशीलता जैसी खामियां भी हैं। इन्हें फिल्टर, गतिशील पैरामीटर, स्टॉप लॉस आदि के माध्यम से सुधार किया जा सकता है। रणनीति में व्यापक अनुकूलन स्थान और दिशाएं हैं, और यह मौलिक मात्रात्मक ट्रेडिंग रणनीतियों में से एक है।
/*backtest start: 2023-11-15 00:00:00 end: 2023-11-17 04:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "MA Close Strategy", shorttitle = "MA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100) MASource = input(defval = open, title = "MA Source") MaLength = input(defval = 18, title = "MA Period", minval = 1) StartYear = input(2018, "Backtest Start Year") StartMonth = input(1, "Backtest Start Month") StartDay = input(1, "Backtest Start Day") UseStopLoss = input(true,"UseStopLoss") stopLoss = input(50, title = "Stop loss percentage(0.1%)") window() => time >= timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false MA = sma(MASource,MaLength) plot(MA, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50) long = crossunder(MA, close) short = crossover(MA, close) if (long) strategy.entry("LongId", strategy.long, when = long) strategy.exit("ExitLong", from_entry = "LongId", when = short) if (short) strategy.entry("ShortId", strategy.short, when = short) strategy.exit("ExitShort", from_entry = "ShortId", when = long) if (UseStopLoss) strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick) strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)