यह रणनीति प्रवृत्तियों का आकलन करने और अपेक्षाकृत स्थिर प्रवृत्ति ट्रैकिंग ट्रेडिंग को लागू करने के लिए तकनीकी संकेतकों एसटीसी, मूविंग एवरेज एमए और औसत सच्ची रेंज एटीआर को जोड़ती है।
एसटीसी संकेतक प्रवृत्ति उलट का न्याय करता है। यह धीमी रेखा को घटाकर तेजी से रेखा का उपयोग करता है, फिर द्वितीयक चिकनाई को संसाधित करता है, लगातार प्रवृत्ति संकेत बनाते हैं। खरीद संकेत तब आता है जब संकेतक 0 अक्ष के ऊपर से गुजरता है, और बिक्री संकेत 0 अक्ष के नीचे होता है।
मूविंग एवरेज एमए ट्रेंड की दिशा का आकलन करता है। जब स्टॉक की कीमत एमए से ऊपर जाती है, तो यह एक अपट्रेंड का संकेत देता है, जो एक लंबी स्थिति रखने का संकेत देता है। जब कीमत एमए से नीचे जाती है, तो यह एक डाउनट्रेंड का संकेत देती है, जो एक छोटी स्थिति रखने का संकेत देती है।
एटीआर संकेतक स्टॉप लॉस और ले लाभ सेट करता है। एटीआर गतिशील रूप से स्टॉप लॉस को समायोजित कर सकता है और बाजार की अस्थिरता के आधार पर लाभ अंक ले सकता है। और एटीआर ट्रेडिंग दिशा के लिए एक संकेत के रूप में कार्य करता है, अपट्रेंड में बढ़ता है और डाउनट्रेंड में गिरता है।
रणनीति प्रवेश के लिए मुख्य समय के रूप में एसटीसी संकेत लेता है, सहायक प्रवृत्ति निर्णय के रूप में एमए का उपयोग करता है, और स्टॉप लॉस और लाभ लेने के लिए एटीआर। जब एसटीसी एक खरीद संकेत देता है, यदि एमए भी अपट्रेंड दिखाता है और एटीआर बढ़ता है, तो यह लंबी स्थिति खोलता है; जब एसटीसी एक बिक्री संकेत देता है, यदि एमए डाउनट्रेंड दिखाता है और एटीआर गिरता है, तो यह शॉर्ट स्थिति खोलता है।
यह रणनीति ट्रेडिंग संकेतों की सटीकता में सुधार करते हुए रुझानों और उलट बिंदुओं का आकलन करने के लिए कई संकेतकों को जोड़ती है।
एसटीसी रिवर्स सिग्नल को कैप्चर कर सकता है और रुझानों में फंसने से बच सकता है। एमए मुख्य रुझान का पालन सुनिश्चित करने के लिए अनिश्चित रिवर्स सिग्नल को फ़िल्टर करता है।
एटीआर गतिशील स्टॉप लॉस सेट करता है और बाजार की अस्थिरता के आधार पर लाभ लेता है, जिससे भारी नुकसान से बचा जाता है। और एटीआर रुझान निर्णय के लिए सहायक संकेत के रूप में कार्य करता है।
कई संकेतकों के संयोजन से प्रवृत्ति को ट्रैक करने की मजबूत क्षमता बनती है। ऐतिहासिक बैकटेस्ट अपेक्षाकृत स्थिर लाभप्रदता दिखाते हैं।
एसटीसी में समय की विलंबता होती है, जो मूल्य उलटने के लिए इष्टतम समय को याद कर सकती है।
जब कीमतों में भारी उतार-चढ़ाव होता है तो एमए में देरी होती है, जिससे गलत संकेत मिल सकते हैं।
एटीआर स्टॉप लॉस सेकंड के भीतर मारा जा सकता है। एटीआर गुणक ढीला किया जाना चाहिए, या अस्थायी रूप से अक्षम बड़े रुझानों के दौरान।
अधिक संकेतकों का अर्थ है स्टॉप लॉस को हिट करने की अधिक संभावनाएं। अनावश्यक स्टॉप लॉस से बचने के लिए मापदंडों को समायोजित किया जाना चाहिए।
रिवर्स के लिए तेजी से प्रतिक्रिया संयोजन खोजने के लिए एसटीसी मापदंडों को समायोजित करें।
बेहतर ट्रेंड ट्रैकिंग के लिए एमए अवधि पैरामीटर को अनुकूलित करें।
विभिन्न एटीआर गुणकों के परीक्षण प्रभाव।
बेहतर मिलान के लिए एसटीसी को अन्य संकेतकों से बदलने का प्रयास करें।
मल्टी-पैरामीटर ऑटो अनुकूलन के लिए मशीन लर्निंग एल्गोरिदम पेश करें।
बड़े चक्र के रुझानों पर विचार करें और विभिन्न चरणों को अलग करें।
एसटीसी एमए एटीआर रणनीति स्थिर प्रवृत्ति ट्रैकिंग ट्रेडिंग के लिए प्रवृत्ति उलट बिंदुओं को पकड़ने के लिए 3 संकेतकों को जोड़ती है। संकेतक कॉम्बो झूठे संकेतों को फ़िल्टर करते हैं और स्टॉप लॉस / टेक प्रॉफिट के साथ जोखिमों को नियंत्रित करते हैं। इसमें मजबूत मजबूती और स्थिरता है। पैरामीटर अनुकूलन और एल्गोरिथ्म की शुरूआत के माध्यम से और सुधार प्राप्त किए जा सकते हैं। कुल मिलाकर यह एक विश्वसनीय और मध्यम रणनीति विकल्प है।
/*backtest start: 2023-09-16 00:00:00 end: 2023-10-16 00:00:00 period: 4h basePeriod: 15m 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/ // © Romedius //@version=5 strategy("My Strategy", overlay=true, margin_long=100, margin_short=100) // STC EEEEEE=input(12,"Length",group="STC") BBBB=input(26,"FastLength",group="STC") BBBBB=input(50,"SlowLength",group="STC") AAAA(BBB, BBBB, BBBBB) => fastMA = ta.ema(BBB, BBBB) slowMA = ta.ema(BBB, BBBBB) AAAA = fastMA - slowMA AAAA AAAAA(EEEEEE, BBBB, BBBBB) => //AAA=input(0.5) var AAA = 0.5 var CCCCC = 0.0 var DDD = 0.0 var DDDDDD = 0.0 var EEEEE = 0.0 BBBBBB = AAAA(close,BBBB,BBBBB) CCC = ta.lowest(BBBBBB, EEEEEE) CCCC = ta.highest(BBBBBB, EEEEEE) - CCC CCCCC := (CCCC > 0 ? ((BBBBBB - CCC) / CCCC) * 100 : nz(CCCCC[1])) DDD := (na(DDD[1]) ? CCCCC : DDD[1] + (AAA * (CCCCC - DDD[1]))) DDDD = ta.lowest(DDD, EEEEEE) DDDDD = ta.highest(DDD, EEEEEE) - DDDD DDDDDD := (DDDDD > 0 ? ((DDD - DDDD) / DDDDD) * 100 : nz(DDDDDD[1])) EEEEE := (na(EEEEE[1]) ? DDDDDD : EEEEE[1] + (AAA * (DDDDDD - EEEEE[1]))) EEEEE mAAAAA = AAAAA(EEEEEE,BBBB,BBBBB) stc = mAAAAA > mAAAAA[1] ? true : false stc_sig = stc == true and stc[1] == false ? 1 : stc == false and stc[1] == true ? -1 : 0 stc_long = stc_sig == 1 stc_short = stc_sig == -1 // STC end // ATR stops nATRPeriod = input(5,group="ATR Stops") nATRMultip = input(3.5,group="ATR Stops") xATR = ta.atr(nATRPeriod) nLoss = nATRMultip * xATR xATRTrailingStop = 0.0 xATRTrailingStop := close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), close - nLoss) : close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), close + nLoss) : close > nz(xATRTrailingStop[1], 0) ? close - nLoss : close + nLoss pos = 0 pos := close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0) ? 1 : close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0) atr_sig = pos == -1 ? false : true // ATR stops end // ma ma_len = input(200, title="MA Length", group="Moving Average") ma = ta.sma(close, 200) ma_sig = close < ma ? false : true // ma end // strategy entries tp_mult = input(2, title="Take Profit ATR Multiplier", group="Strategy") sl_mult = input(1, title="Stop Loss ATR Multiplier", group="Strategy") early_stop = input(true, title="Close position when ATR changes color") atr_stop = if close < xATRTrailingStop close - (close - xATRTrailingStop) * sl_mult else close + (xATRTrailingStop - close) * sl_mult longCondition = atr_sig == true and stc_sig == 1 and ma_sig == true shortCondition = atr_sig == false and stc_sig == -1 and ma_sig == false if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Exit Long", "Long", limit=close + xATR * tp_mult, stop=atr_stop) else if atr_sig == false and early_stop strategy.close("Long") if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Exit Short", "Short", limit=close - xATR * tp_mult, stop=atr_stop) else if atr_sig == true and early_stop strategy.close("Short") // plot stuff atr_color = pos == -1 ? color.red: pos == 1 ? color.green : color.blue plot(atr_stop, title="ATR Stop", color=atr_color) ma_color = ma_sig ? color.green : color.red plot(ma, title="Moving Average", color=ma_color) stc_color = stc_long ? color.green : color.red plotshape(stc_long, style=shape.triangleup, color=stc_color, title="STC Long Signal", size=size.tiny) plotshape(stc_short, style=shape.triangledown, color=stc_color, title="STC Short Signal", size=size.tiny) // plot stuff end