
गोल्डन क्रॉस मूविंग एवरेज ट्रेडिंग रणनीति एक अपेक्षाकृत क्लासिक मात्रात्मक ट्रेडिंग रणनीति है। यह रणनीति अलग-अलग चक्रों की चलती औसत का उपयोग करती है, यह निर्धारित करने के लिए कि बाजार की प्रवृत्ति बहुत कम हो गई है। इसे खरीदने के संकेत के रूप में माना जाता है जब यह लंबी अवधि की चलती औसत से अधिक लंबी अवधि की चलती औसत से ऊपर होता है; इसे बेचने के संकेत के रूप में माना जाता है जब यह लंबी अवधि की चलती औसत से नीचे होता है।
यह रणनीति तीन अलग-अलग चक्रों की सरल चलती औसत (एसएमए) पर आधारित हैः 50 दिन की रेखा, 100 दिन की रेखा और 200 दिन की रेखा। विशिष्ट ट्रेडिंग तर्क इस प्रकार हैः
प्रवेश सिग्नलः 50 दिन की चलती औसत पर 100 दिन की चलती औसत पहनते समय अधिक प्रवेश करें।
बाहर निकलने का संकेतः जब 50 दिन की चलती औसत 100 दिन की चलती औसत से नीचे जाती है, तो बाहर निकलें; या जब समापन मूल्य 100 दिन की चलती औसत से नीचे होता है, तो बाहर निकलें; या जब 100 दिन की चलती औसत 200 दिन की चलती औसत से नीचे होती है, तो बाहर निकलें।
स्टॉप लॉस: एक मोबाइल स्टॉप और एक फिक्स्ड स्टॉप लॉस सेट करें।
यह रणनीति चलती औसत की विशेषता का उपयोग करती है जो बाजार की औसत कीमतों को प्रभावी ढंग से निर्धारित करने में सक्षम होती है, और जब यह अल्पकालिक औसत पर लंबी अवधि के औसत को पार करता है, तो इसे बाजार में प्रवेश करने के लिए एक संकेत के रूप में देखा जाता है, और इसलिए अधिक किया जाता है; जब यह अल्पकालिक औसत के नीचे लंबी अवधि के औसत को पार करता है, तो इसे बाजार में प्रवेश करने के लिए एक चैनल के रूप में देखा जाता है, और इसलिए बाहर निकल जाता है। इस तरह से, बाजार की प्रवृत्ति को प्रभावी ढंग से पकड़ना संभव है।
यह सरल है और इसे लागू करने में आसान है। इस रणनीति को केवल तीन अलग-अलग चक्रों की चलती औसत के साथ बनाया जा सकता है।
एक मजबूत स्थिरता. एक चलती औसत अपने आप में एक शोर-रोकने की सुविधा है, जो बाजार में यादृच्छिक उतार-चढ़ाव के प्रभाव को प्रभावी ढंग से हटा सकता है, जिससे संकेत अधिक स्थिर और विश्वसनीय हो जाते हैं।
बड़े रुझानों को समझना आसान है। चलती औसत बाजार के औसत मूल्य में बदलाव की प्रवृत्ति को प्रभावी ढंग से दर्शाता है, और लंबी और छोटी आवधिक रेखाओं के क्रॉसिंग के माध्यम से बड़े बाजार परिवर्तनों का न्याय करता है।
उच्च स्तर की अनुकूलन क्षमता। आप अपने आप को चलती औसत के आवधिक संयोजन को निर्धारित कर सकते हैं, विभिन्न स्तरों के जोखिम नियंत्रण को प्राप्त कर सकते हैं।
अधिक झूठे सिग्नल उत्पन्न हो सकते हैं। जब अल्पकालिक और दीर्घकालिक चलती औसत बहुत करीब होते हैं, तो अक्सर क्रॉसिंग हो सकते हैं, जिससे बड़ी संख्या में अमान्य सिग्नल उत्पन्न होते हैं।
अप्रत्याशित घटनाओं के लिए तेजी से प्रतिक्रिया करने में असमर्थ। कीमतों में परिवर्तन के लिए मोबाइल औसत की प्रतिक्रिया धीमी है, और बाजार की अप्रत्याशित खबरों और महत्वपूर्ण घटनाओं के लिए वास्तविक समय में प्रतिक्रिया करने में असमर्थ है।
बाजार में छोटे स्तर के उतार-चढ़ाव से लाभ नहीं उठाया जा सकता है। चलती औसत की शोर-मुक्त विशेषता का मतलब है कि बाजार में छोटे स्तर के उतार-चढ़ाव को लाभ के लिए नहीं पकड़ा जा सकता है।
मापदंडों की सेटिंग काफी व्यक्तिपरक है। चलती औसत अवधि का चयन काफी व्यक्तिपरक है, विभिन्न बाजारों के अनुसार सर्वोत्तम मापदंडों को निर्धारित करने की आवश्यकता है।
फ़िल्टर शर्तों को बढ़ाएं ताकि बहुत अधिक झूठे संकेत उत्पन्न न हों। उदाहरण के लिए, फ़िल्टर के रूप में मूल्य उतार-चढ़ाव की सीमा सेट करें, केवल एक निश्चित सीमा के माध्यम से व्यापार संकेत उत्पन्न करें।
अन्य संकेतकों के साथ संयोजन में. उदाहरण के लिए, उतार-चढ़ाव की दर के साथ संयोजन में, यातायात की मात्रा के संकेतकों के साथ संयोजन में, संकेत की सटीकता को बढ़ाया जा सकता है.
अनुकूलन अनुकूलन मॉड्यूल जोड़ा गया। मशीन सीखने और अन्य तकनीकों के माध्यम से गतिशील रूप से अनुकूलित चलती औसत के आवधिक पैरामीटर, जिससे यह बाहरी बाजार की परिस्थितियों में परिवर्तन के अनुकूल हो सके।
गहरी सीखने के मॉडल के साथ संयुक्त। एक अधिक उन्नत गहरी सीखने के मॉडल का उपयोग करके चलती औसत को बदल दिया गया है, जिसमें अधिक शक्तिशाली विशेषता निष्कर्षण और मॉडलिंग क्षमता है।
गोल्ड क्रॉस रेवरेज ट्रेडिंग रणनीति एक अपेक्षाकृत विशिष्ट प्रवृत्ति का पालन करने वाली रणनीति है। यह बाजार की कीमतों में औसत परिवर्तन की प्रवृत्ति को दर्शाता है, सरल और व्यावहारिक है, और शुरुआती सीखने के लिए उपयुक्त है। साथ ही, इस रणनीति में कुछ कमियां भी हैं, जिन्हें सिग्नल की गुणवत्ता में सुधार करने, अन्य तकनीकी संकेतकों के साथ संयोजन करने, और अनुकूलन तंत्र की शुरूआत करने जैसे कई पहलुओं से अनुकूलित किया जा सकता है। कुल मिलाकर, इस रणनीति में उच्च संदर्भ और सीखने की कीमत है।
/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © CJDeegan
//@version=4
strategy(title = "[LIVE] Golden Cross", overlay=true)
// ------------Functions------------
//Percent to Decimal Conversion
perToDec(a) => a * 0.01
//Price Difference to Tick
diffToTick(a,b) => (a - b) / syminfo.mintick
// ------------Strategy Inputs------------
takeProfitInput = input(300, "Take Profit Price (% Gain)")
stopLossInput = input(25, "Stop Loss (% Loss)")
startDate = input(title="Start Date", type=input.integer,
defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
defval=2018, minval=1800, maxval=2100)
endDate = input(title="End Date", type=input.integer,
defval=1, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
defval=1, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
defval=2031, minval=1800, maxval=2100)
inDateRange = (time >= timestamp(syminfo.timezone, startYear,
startMonth, startDate, 0, 0)) and
(time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))
// ------------Populate Indicators------------
//EMA
sma50 = sma(close,50)
sma100 = sma(close,100)
sma200 = sma(close,200)
// ------------Entry Logic------------
//Guards
entryGuard = true
//Triggers
entryTrigger = crossover(sma50,sma100)
//Conditions
entryCondition = entryGuard and entryTrigger
//Calculations
//Execution
if (inDateRange and entryCondition)
strategy.entry("Long", strategy.long, when = entryCondition, comment = "Entry")
//------------Exit Logic------------
//Guards
//Triggers
exitTrigger = crossunder(sma50,sma100) or close < sma100 or crossunder(sma100,sma200)
//Conditions
exitCondition = exitTrigger
//Calculations
//Take Profit
takeProfitPrice = strategy.position_avg_price + (strategy.position_avg_price * perToDec(takeProfitInput))
//Take Profit Ticks
takeProfitTicks = diffToTick(takeProfitPrice, strategy.position_avg_price)
//StopLoss
stopLossPrice = strategy.position_avg_price - (strategy.position_avg_price * perToDec(stopLossInput))
//Execution
if (inDateRange)
strategy.close("Long", when = exitCondition, comment = "Sell Trigger")
strategy.exit("Exit", "Long", comment="Stop", profit=takeProfitTicks, stop=stopLossPrice)
//Plots
plot(sma50, "SMA 50", color = color.blue)
plot(sma100, "SMA 100", color = color.green)
plot(sma200, "SMA 200", color = color.yellow)
entry = plot(strategy.position_size <= 0 ? na : strategy.position_avg_price, "Entry Price", color = color.yellow, style = plot.style_linebr)
profit = plot(strategy.position_size <= 0 ? na : takeProfitPrice, "Take Profit (Price)", color = color.green, style = plot.style_linebr)
stop = plot(strategy.position_size <= 0 ? na : stopLossPrice, "Stop Loss", color = color.red, style = plot.style_linebr)
fill(entry,profit, color=color.green)
fill(entry,stop, color=color.red)