डायनेमिक टेक प्रॉफिट फॉलोइंग ट्रेंड रणनीति कम खरीदने और उच्च बेचने के लक्ष्य के साथ कम खरीदने और उच्च बेचने के लिए दीर्घकालिक रुझानों और अल्पकालिक पॉलबैक का पता लगाती है। रणनीति जीत और नुकसान के आकार का पता लगाने के लिए अस्थिरता इकाइयों का भी उपयोग करती है ताकि प्रतिशत परिवर्तनों के बारे में चिंता किए बिना इसे सभी सिक्कों पर लागू किया जा सके।
इस रणनीति का खरीदारी तर्क यह हैः जब एक दीर्घकालिक अपट्रेंड दिखाई देता है (200-दिवसीय ईएमए ऊपर जाता है, 200-दिवसीय आरएसआई 51 से अधिक होता है) और एक अल्पकालिक पुलबैक होता है (अंतिम 2 मोमबत्तियों में बंद होने की कीमतें कम होती हैं), तो लंबी स्थिति खोली जाती है।
बिक्री का तर्क यह हैः जब कीमत 1 अस्थिरता इकाई से अधिक बढ़ जाती है तो लाभ लें; जब कीमत 2 अस्थिरता इकाई से अधिक घटती है तो हानि रोकें।
अस्थिरता इकाई की गणना पिछले 50 दिनों में समापन मूल्य के मानक विचलन के 2 गुना के रूप में की जाती है। यह मैन्युअल प्रतिशत सेटिंग की आवश्यकता के बिना स्वचालित रूप से विभिन्न सिक्कों की अस्थिरता स्थितियों का पता लगा सकता है।
इस रणनीति का सबसे बड़ा लाभ यह है कि यह गतिशील रूप से विभिन्न सिक्कों के अस्थिरता आकारों का पता लगा सकता है और तदनुसार स्टॉप लॉस / ले लाभ स्तर निर्धारित कर सकता है। इससे निश्चित प्रतिशत सेटिंग की समस्या से बचा जाता है और स्वचालित रूप से अधिक सिक्कों के अनुकूल हो सकता है।
एक और लाभ यह है कि दीर्घकालिक और अल्पकालिक निर्णयों को जोड़कर प्रभावी रूप से झूठे ब्रेकआउट को फ़िल्टर किया जा सकता है। संभावित अपट्रेंडिंग सिक्कों का न्याय करने के लिए दीर्घकालिक प्रवृत्ति का उपयोग करना और इसे अल्पकालिक पुलबैक संकेतों के साथ जोड़ना बोलिंगर निचोड़ जैसे झूठे संकेतों से बच सकता है।
इस रणनीति का सबसे बड़ा जोखिम स्टॉप लॉस/टेक प्रॉफिट यूनिट सेटिंग्स है। यदि अस्थिरता बहुत अधिक है, तो लाभ लेने की दूरी अपट्रेंड का पीछा करने के लिए बहुत करीब हो सकती है; यदि अस्थिरता बहुत कम है, तो स्टॉप लॉस बहुत तेजी से ट्रिगर हो सकता है। इसके लिए अस्थिरता इकाई निर्णयों में त्रुटियों से बचने के लिए सहायता के रूप में लंबी अवधि के ईएमए की आवश्यकता होती है।
एक और जोखिम यह है कि रणनीति अल्पकालिक रुझानों पर निर्भर है। यदि अल्पकालिक पॉलबैक के बिना दीर्घकालिक उछाल है, तो प्रवेश का समय चूक जाएगा। इसके लिए अतिरिक्त सहायता संकेतकों की आवश्यकता हो सकती है।
इस रणनीति को निम्नलिखित दिशाओं में अनुकूलित किया जा सकता हैः
अस्थिरता इकाई त्रुटियों से बचने के लिए दीर्घकालिक ईएमए निर्णय जोड़ें
रुझानों का आकलन करने के लिए ट्रेडिंग वॉल्यूम जैसे संकेतक जोड़ें, अल्पावधि मोमबत्तियों पर निर्भरता कम करें
प्रवेश और निकास की शर्तों को अनुकूलित करना, प्रवेश के सख्त नियम निर्धारित करना
ट्रेंड दिशा निर्धारित करने के लिए मशीन लर्निंग एल्गोरिदम को मिलाएं, उच्च जीत दर प्राप्त करें
डायनेमिक टेक प्रॉफिट फॉलोइंग ट्रेंड स्ट्रैटेजी में अपने मूल में स्पष्ट तर्क है
/*backtest start: 2022-12-22 00:00:00 end: 2023-12-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © BHD_Trade_Bot strategy(shorttitle='Take Profit On Trend', title='Take Profit On Trend (by BHD_Trade_Bot)', overlay=true, initial_capital = 15, default_qty_type = strategy.cash, default_qty_value = 15, commission_type=strategy.commission.percent, commission_value=0.1) //Backtest Time start_day = 1 start_month = 1 start_year = 2021 end_day = 1 end_month = 1 end_year = 2050 start_time = timestamp(start_year, start_month, start_day, 00, 00) end_time = timestamp(end_year, end_month, end_day, 23, 59) is_back_test_time() => time >= start_time and time <= end_time ? true : false // Last bar h1_last_bar = (timenow - time)/1000/60/60 < 2 // EMA ema50 = ema(close, 50) ema200 = ema(close, 200) // RSI length 200 rsi200 = rsi(close, 200) // Bollinger Bands length 50 bb50 = 2 * stdev(close, 50) // BHD Unit bhd_unit = sma(bb50, 100) bb50_upper = ema50 + bhd_unit bb50_lower = ema50 - bhd_unit // All n candles is going down all_body_decrease(n) => isValid = true for i = 0 to (n - 1) if (close[i] > close[i + 1]) isValid := false break isValid // ENTRY // Long-term uptrend entry_condition1 = rsi200 > 51 // Short-term downtrend entry_condition2 = all_body_decrease(2) ENTRY_CONDITION = entry_condition1 and entry_condition2 if (ENTRY_CONDITION and is_back_test_time()) strategy.entry("entry", strategy.long) // CLOSE CONDITIONS // Price increase 1 BHD unit TAKE_PROFIT = close > strategy.position_avg_price + bhd_unit // Price decrease 2 BHD unit STOP_LOSS = close < strategy.position_avg_price - bhd_unit * 2 CLOSE_CONDITION = TAKE_PROFIT or STOP_LOSS if (CLOSE_CONDITION or h1_last_bar) strategy.close("entry") // Draw plot(ema50) plot(ema200, color=color.yellow) plot(bb50_upper) plot(bb50_lower)