
चलती औसत क्रॉसिंग रणनीति एक बहुत ही क्लासिक और आम तौर पर इस्तेमाल की जाने वाली तकनीकी विश्लेषण रणनीति है। इस रणनीति का मुख्य विचार एक खरीद और बिक्री संकेत के रूप में विभिन्न अवधि के चलती औसत के बीच क्रॉसिंग का उपयोग करना है। जब एक छोटी चलती औसत नीचे से लंबी चलती औसत को पार करती है, तो एक खरीद संकेत उत्पन्न होता है; जब एक छोटी चलती औसत ऊपर से नीचे से लंबी चलती औसत को पार करती है, तो एक बिक्री संकेत उत्पन्न होता है।
यह रणनीति इनपुट सेटिंग्स द्वारा इनपुट चलती औसत के प्रकार (एसएमए, ईएमए, डब्ल्यूएमए, आरएमए) और चक्र की लंबाई, और समय सीमा को वापस लेती है।
विभिन्न प्रकार के चलती औसत की गणना एक वैरिएंट फ़ंक्शन में की जाती है। गणना की गई चलती औसत को मा चर द्वारा सहेजा जाता है।
जब बंद मूल्य मा के ऊपर होता है, तो एक खरीद संकेत उत्पन्न होता है; जब बंद मूल्य मा के नीचे होता है, तो एक बिक्री संकेत उत्पन्न होता है।
स्टॉप लॉस सेट करने के लिए, एटीआर के माध्यम से 14 चक्रों के लिए औसत वास्तविक उतार-चढ़ाव की गणना करें। क्रॉसिंग पॉइंट को संदर्भ के रूप में लें, और स्टॉप लॉस रेंज के रूप में एटीआर को 2 गुना ऊपर या नीचे जोड़ें।
प्रवेश और बाहर निकलने के तर्क इस प्रकार हैं:
मल्टीहेड एंट्रीः close पर ma पहनें और रिटर्निंग समय में, स्टॉप लॉस को एंट्री पॉइंट के रूप में close करें बहुस्तरीय प्रस्थानः close के नीचे पार करना ma घटाकर 2 गुनाatr जब प्रस्थान बंद हो जाता है, या उच्चतम मूल्य प्रवेश बिंदु से अधिक होता है close और 2 गुनाatr जब प्रस्थान बंद हो जाता है खाली सिर प्रवेश: close नीचे ma और रिटर्निंग समय में, स्टॉप लॉस के रूप में प्रवेश बिंदु close खाली सिर से बाहर निकलना: बंद पर मा पहनें और 2 गुना एटीआर पर रोक लगाएं, या प्रवेश बिंदु से कम न्यूनतम मूल्य बंद करें और 2 गुना एटीआर पर रोक लगाएं
जोखिमों के लिए, आप निम्न तरीकों से अनुकूलन कर सकते हैंः
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
एक चलती औसत क्रॉसिंग रणनीति एक बहुत ही विशिष्ट और आम तौर पर इस्तेमाल की जाने वाली तकनीकी विश्लेषण रणनीति है। इस रणनीति का मूल विचार सरल, आसानी से लागू किया जा सकता है और विभिन्न बाजारों के लिए लागू किया जा सकता है। यह क्वांटिटेटिव ट्रेडिंग की शुरुआती रणनीतियों में से एक है। लेकिन इस रणनीति में कुछ समस्याएं भी हैं, जैसे कि अक्सर सिग्नल उत्पन्न करना, रोकना आसान होना आदि। उचित अनुकूलन के साथ, इस रणनीति के प्रदर्शन को काफी बढ़ाया जा सकता है। कुल मिलाकर, एक चलती औसत क्रॉसिंग रणनीति एक बहुत अच्छी रणनीति विकास ढांचा प्रदान करती है, जो क्वांटिटेटिव ट्रेडिंग रणनीति सीखने की आधारशिला है।
/*backtest
start: 2023-10-03 00:00:00
end: 2023-11-02 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("MA Cross Strategy", overlay=true,commission_value = 0.1)
type = input(defval = "WMA", title = "MA Type: ", options=["RMA", "SMA", "EMA", "WMA"])
length = input(28)
source = close
// === INPUT BACKTEST RANGE ===
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear = input(defval = 2000, title = "From Year", minval = 2000)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(9999, 1, 1, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
variant(type, src, len) =>
v1 = sma(src, len) // Simple
v2 = ema(src, len) // Exponential
v5 = wma(src, len) // Weighted
v7 = rma(src, len) // Smoothed
type=="EMA"?v2 : type=="WMA"?v5 : type=="RMA"?v7 : v1
ma = variant(type,source, length)
atr = security(syminfo.tickerid, "D", atr(14))
range = valuewhen(cross(close,ma), (atr*2), na)
ep = valuewhen(cross(close,ma), close, na)
plot(ma,color=ma>ma[1]?color.blue:color.red,transp=0,linewidth=1)
plot(ep,color=#2196f3,transp=100,trackprice=true, offset=-9999)
plot(ep+range,color=#2196f3,transp=100,trackprice=true, offset=-9999)
plot(ep-range,color=#2196f3,transp=100,trackprice=true, offset=-9999)
strategy.entry("Long Entry", true, when = crossover(close,ma) and window() , stop = ep )
strategy.exit("Long Exit", "Long Entry", stop = ep-range)
strategy.exit("Long Exit", "Long Entry", when = high > ep+range ,stop = ep[1] )
strategy.entry("Short Entry", false, when = crossunder(close,ma) and window() , stop = ep )
strategy.exit("Short Exit", "Short Entry", stop = ep+range)
strategy.exit("Short Exit", "Short Entry", when = low < ep-range ,stop = ep[1] )