यह रणनीति सरल चलती औसत के गोल्डन क्रॉस और डेड फॉर्क्स सिद्धांतों का उपयोग करती है, जिससे स्टॉक की लंबी और छोटी स्थिति संभव हो जाती है। जब तेज लाइन धीमी रेखा को नीचे से तोड़ती है, तो अधिक करें; जब तेज लाइन धीमी रेखा को नीचे से तोड़ती है, तो कम करें।
इस रणनीति में पहले दो औसत के लिए गणना पैरामीटर सेट किए गए हैं, जिसमें औसत प्रकार और चक्र की लंबाई शामिल है।
getMAType () फ़ंक्शन के माध्यम से दो औसत के मानों की गणना करें। जिसमें fastMA लघु अवधि औसत है, और slowMA लंबी अवधि औसत है।
इस रणनीति का मूल तर्क हैः
जब फास्ट एमए पर स्लो एमए पहना जाता है, तो एक बहु सिग्नल जारी किया जाता है;
जब फास्ट एमए धीमी एमए के नीचे से गुजरता है, तो एक रिक्त सिग्नल short होता है।
अंत में, रिटर्निंग अवधि के दौरान, अधिक संकेतों के लिए लंबी स्थिति की रणनीति; कम संकेतों के लिए खाली स्थिति की रणनीति।
जोखिमों के लिए, आप निम्नलिखित में से किसी एक को अनुकूलित कर सकते हैंः
प्रवृत्तियों की पहचान करने के लिए अन्य तकनीकी संकेतकों पर फ़िल्टर जोड़ें।
एकल हानि को नियंत्रित करने के लिए स्टॉप लॉस रणनीति में वृद्धि।
“हमारे देश में, हम अपने बाजारों में उतार-चढ़ाव से बचने के लिए ऊर्जा सूचकांक आदि को लागू कर सकते हैं।
पैरामीटर अनुकूलन तंत्र स्थापित करें, जो स्वचालित रूप से सर्वोत्तम पैरामीटर संयोजन ढूंढता है।
इस रणनीति को और अधिक अनुकूलित किया जा सकता हैः
अतिरिक्त स्टॉप-लॉस रणनीतियाँ, जैसे कि एक निश्चित स्टॉप-लॉस सेट करना या स्टॉप-लॉस को ट्रैक करना और नुकसान को नियंत्रित करना।
स्थिति प्रबंधन रणनीतियों को बढ़ाएं, जैसे कि स्थिर स्थिति, गतिशील स्थिति, व्यापार जोखिम को नियंत्रित करना।
फ़िल्टर जोड़े गए हैं, जो अन्य तकनीकी संकेतकों के साथ प्रवृत्ति की पहचान करते हैं, जीत की दर में सुधार करते हैं।
ऑप्टिमाइज़ेशन पैरामीटर सेटिंग, ग्रिड खोज, रैखिक पुनरावृत्ति आदि के माध्यम से इष्टतम पैरामीटर ढूंढना।
एक्सटेंशन ट्रेडिंग रणनीतियों को समृद्ध करने के लिए अधिक विदेशी मुद्रा रणनीति, जैसे कि ब्रेकआउट रिवर्स, बैच निर्माण, आदि।
भूकंप की स्थिति में फंसने से बचने के लिए ऊर्जा के स्तर को बढ़ाएं।
ट्रेडों की विविधता को बढ़ाकर स्टॉक इंडेक्स, वायदा, विदेशी मुद्रा, डिजिटल मुद्रा आदि को शामिल किया गया है।
इस रणनीति के आधार पर चलती औसत के क्रॉसिंग सिद्धांतों के शेयरों की लंबी और छोटी स्थिति का चयन करने के लिए। रणनीति की अवधारणा सरल, स्पष्ट, व्यापक उपयोग, अनुकूलनशील है, और कुछ व्यावहारिक मूल्य है। लेकिन इस रणनीति में कुछ पिछड़ापन भी है, प्रभावी रूप से फ़िल्टर करने में असमर्थ है। भविष्य में रोकथाम, पैरामीटर को अनुकूलित करने, फ़िल्टर जोड़ने आदि के लिए अनुकूलित किया जा सकता है, जिससे रणनीति अधिक फायदेमंद हो।
/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//strategy("Golden X BF Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)
/////////////// Time Frame ///////////////
testStartYear = input(2010, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)
testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)
testPeriod() => true
///////////// MA Params /////////////
source1 = input(title="MA Source 1", defval=close)
maType1 = input(title="MA Type 1", defval="sma", options=["sma", "ema", "swma", "wma"])
length1 = input(title="MA Length 1", defval=50)
source2 = input(title="MA Source 2", defval=close)
maType2 = input(title="MA Type 2", defval="sma", options=["sma", "ema", "swma", "wma"])
length2 = input(title="MA Length 2", defval=200)
///////////// Get MA Function /////////////
getMAType(maType, sourceType, maLen) =>
res = sma(close, 1)
if maType == "ema"
res := ema(sourceType, maLen)
if maType == "sma"
res := sma(sourceType, maLen)
if maType == "swma"
res := swma(sourceType)
if maType == "wma"
res := wma(sourceType, maLen)
res
///////////// MA /////////////
fastMA = getMAType(maType1, source1, length1)
slowMA = getMAType(maType2, source2, length2)
long = crossover(fastMA, slowMA)
short = crossunder(fastMA, slowMA)
/////////////// Plotting ///////////////
checkColor() => fastMA > slowMA
colCheck = checkColor() ? color.lime : color.red
p1 = plot(fastMA, color = colCheck, linewidth=1)
p2 = plot(slowMA, color = colCheck, linewidth=1)
fill(p1, p2, color = checkColor() ? color.lime : color.red)
bgcolor(long ? color.lime : short ? color.red : na, transp=20)
/////////////// Execution ///////////////
if testPeriod()
strategy.entry("Long", strategy.long, when=long)
strategy.entry("Short", strategy.short, when=short)