एसएमए क्रॉसओवर रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-08 11:36:51
टैगः

img

अवलोकन

यह रणनीति तेजी से और धीमी गति से चलती औसत के बीच क्रॉसओवर के आधार पर ट्रेडिंग सिग्नल उत्पन्न करती है। यह खरीद सिग्नल उत्पन्न करती है जब तेजी से चलती औसत नीचे से धीमी गति से चलती औसत के ऊपर से पार हो जाती है। यह बेच सिग्नल उत्पन्न करती है जब तेजी से चलती औसत ऊपर से धीमी गति से चलती औसत से नीचे से पार हो जाती है।

सिद्धांत

यह रणनीति तेज और धीमी गति से चलती औसत की गणना करने के लिए sma फ़ंक्शन का उपयोग करती है. fast_SMA अवधि की लंबाई fast_SMA_input के साथ तेजी से चलती औसत है. slow_SMA अवधि की लंबाई slow_SMA_input के साथ धीमी गति से चलती औसत है.

रणनीति तेजी से और धीमी गति से चलती औसत के बीच क्रॉसओवर निर्धारित करने के लिए क्रॉस और क्रॉसअंडर कार्यों का उपयोग करती है। जब तेजी से चलती औसत धीमी गति से चलती औसत से ऊपर पार करती है, तो LONG चर सही होता है और एक खरीद संकेत उत्पन्न होता है। जब तेजी से चलती औसत धीमी गति से चलती औसत से नीचे पार करती है, तो SHORT चर सही होता है और एक बिक्री संकेत उत्पन्न होता है।

लाभ

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

  1. सरल सिद्धांत, समझने और लागू करने में आसान।
  2. अनुकूलन योग्य चलती औसत अवधि, विभिन्न बाजार वातावरण के अनुकूल।
  3. कुछ बाजार शोर को फ़िल्टर करता है और अपेक्षाकृत विश्वसनीय ट्रेडिंग सिग्नल उत्पन्न करता है।
  4. यह रुझानों की शुरुआत और मोड़ दोनों को दर्शाता है।

जोखिम

इस रणनीति में निम्नलिखित जोखिम भी हैं:

  1. यदि सेटिंग्स अनुचित हैं तो अत्यधिक ट्रेडिंग सिग्नल उत्पन्न कर सकते हैं, जिससे ओवर ट्रेडिंग हो सकती है।
  2. साइडवेज बाजारों में कई झूठे संकेत पैदा कर सकता है।
  3. किसी प्रवृत्ति की अवधि निर्धारित नहीं कर सकता, समय से पहले उलट सकता है।

जोखिम प्रबंधन:

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

अनुकूलन

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

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

सारांश

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


/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-13 00:00:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@author Jacques Grobler
//
//                  SIMPLE CROSS OVER BOT
//                  =====================
//
// This is a simple example of how to set up a strategy to go long or short
// If you make any modifications or have any suggestions, let me know
// When using this script, every section marked back testing should be 
// uncommented in order to use for back testing, same goes for using the script portion

///////////////////////////////////////////////////////////////////////////////////////
//// INTRO
//// -----
// BACKTESTING
//@version=4
strategy(title="SimpleCrossOver_Bot_V1_Backtester", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, commission_type=strategy.commission.percent, commission_value=0.1)

// SIGNALS
//study(title="SimpleCrossOver_Bot_V1_Signals", overlay = true)

///////////////////////////////////////////////////////////////////////////////////////
//// INPUTS
//// ------
// BACKTESTING
dateSart_Year = input(2018, title="Start Year", minval=2000)
dateSart_Month = input(1, title="Start Month", minval=1, maxval=12)
dateSart_Day = input(1, title="Start Day", minval=1, maxval=31)
dateEnd_Year = input(2019, title="End Year", minval=2000)
dateEnd_Month = input(1, title="End Month", minval=1, maxval=12)
dateEnd_Day = input(1, title="End Day", minval=1, maxval=31)

// BACKTESTING AND SIGNALS
fast_SMA_input = input(7, title="SMA Fast")
slow_SMA_input = input(25, title="SMA Slow")

///////////////////////////////////////////////////////////////////////////////////////
//// INDICATORS
//// ----------
fast_SMA = sma(close, fast_SMA_input)
slow_SMA = sma(close, slow_SMA_input)

///////////////////////////////////////////////////////////////////////////////////////
//// STRATEGY
//// --------
LONG = cross(fast_SMA, slow_SMA) and fast_SMA > slow_SMA
stratLONG() => crossover(fast_SMA, slow_SMA)
SHORT = cross(fast_SMA, slow_SMA) and fast_SMA < slow_SMA
stratSHORT() => crossunder(fast_SMA, slow_SMA)

///////////////////////////////////////////////////////////////////////////////////////
//// TRIGGERS
//// --------
// BACKTESTING
testPeriodStart = timestamp(dateSart_Year, dateSart_Month, dateSart_Day, 0, 0)
testPeriodStop = timestamp(dateEnd_Year, dateEnd_Month, dateEnd_Day, 0, 0)
timecondition = true

strategy.entry(id="LONG", long = true, when=timecondition and stratLONG())
strategy.entry(id="SHORT", long = false, when=timecondition and stratSHORT())

// SIGNALS
//alertcondition(LONG, title="LONG")
//alertcondition(SHORT, title="SHORT")

///////////////////////////////////////////////////////////////////////////////////////
//// PLOTS
//// -----
// BACKTESTING AND SIGNALS
plot(fast_SMA, color=green, linewidth=1)
plot(slow_SMA, color=yellow, linewidth=1)
plotshape(LONG, title="LONG", style=shape.triangleup, text="LONG", location=location.belowbar, size=size.small, color=green)
plotshape(SHORT, title="SHORT", style=shape.triangledown, text="SHORT", location=location.abovebar, size=size.small, color=red)

अधिक