यह रणनीति कम खरीदने और उच्च बेचने के बाजार सिद्धांत के आधार पर डिज़ाइन की गई है। यह एक निश्चित अवधि के दौरान उच्चतम और निम्नतम कीमतों को ट्रैक करती है, जब कीमत सबसे कम कीमत से टूट जाती है, तो एक लंबी स्थिति स्थापित करती है, और जब कीमत उच्चतम मूल्य से नीचे गिर जाती है या लाभ लेने की स्थिति पूरी होती है तो स्थिति को बंद कर देती है। साथ ही, यह रणनीति एक वैकल्पिक प्रवृत्ति फ़िल्टर जोड़ती है जो केवल खरीद की अनुमति देती है जब कीमत अपट्रेंड में होती है।
सबसे कम कीमत (lowcriteria): उपयोगकर्ता द्वारा निर्धारित बैकबैक अवधि (डिफ़ॉल्ट 20 बार) के दौरान सबसे कम कीमत की गणना करने के लिए ta.lowest फ़ंक्शन को कॉल करें और सबसे कम मूल्य रेखा को प्लॉट करें।
उच्चतम मूल्य (उच्चतम मानदंड): उपयोगकर्ता द्वारा निर्धारित बैकबैक अवधि (डिफ़ॉल्ट 10 बार) के दौरान उच्चतम मूल्य की गणना करने के लिए ta.highest फ़ंक्शन को कॉल करें और उच्चतम मूल्य रेखा को प्लॉट करें।
जब वर्तमान मूल्य सबसे कम मूल्य रेखा को तोड़ता है, तो एक लंबी स्थिति स्थापित करने के लिए एक खरीद संकेत ट्रिगर किया जाता है।
विकल्प के लिए दो बाहर निकलने के तरीके दिए गए हैंः
फिक्स्ड टेक प्रॉफिटः जब कीमत पूर्व निर्धारित टेक प्रॉफिट स्तर (उदाहरण के लिए प्रवेश मूल्य से 8% अधिक) तक पहुंच जाती है तो लाभ के लिए स्थिति को बंद करें।
उच्चतम मूल्य का टूटनाः रुझान के उलट होने पर मूल्य उच्चतम मूल्य रेखा से नीचे गिरने पर घाटे को कम करने के लिए स्थिति को बंद करें।
प्रवृत्ति की दिशा निर्धारित करने के लिए एक ईएमए रेखा जोड़ें. केवल तब खरीद की अनुमति दें जब कीमत ईएमए रेखा (एक अपट्रेंड) से ऊपर हो। इस फ़िल्टर को सक्षम या अक्षम किया जा सकता है.
बाजार के मूलभूत सिद्धांतों के अनुरूप कम खरीदें और अधिक बेचें।
मूल्य उतार-चढ़ाव के दौरान बार-बार खोलने से बचने के लिए प्रवृत्ति निर्णय जोड़ें।
उच्च लाभ प्राप्त करने या घाटे को कम करने के लिए दो निकास विकल्प प्रदान करें।
अनुकूलन योग्य मापदंड अधिक बाजार वातावरण के अनुकूल हैं।
पैरामीटर ट्यूनिंग, फिल्टर डिजाइन आदि के माध्यम से रणनीति अनुकूलन के लिए विशाल स्थान।
फिक्स्ड टेक प्रॉफिट लेवल वास्तविक बाजार आंदोलनों के आधार पर समायोजित नहीं होता है, जिसके परिणामस्वरूप समय से पहले लाभ लेने या अपर्याप्त लाभ लक्ष्य होता है।
उच्चतम मूल्य के टूटने पर बेचना पहले से ही भारी घाटे पैदा कर सकता है, घाटे को प्रभावी ढंग से नियंत्रित करने में असमर्थ।
ईएमए का रुझान आकलन केवल एक निश्चित अवधि को पीछे देखता है, संभवतः वास्तविक रुझान परिवर्तन से पीछे रह जाता है।
बैकटेस्ट परिणाम भविष्य का प्रतिनिधित्व नहीं कर सकते हैं। लाइव प्रदर्शन में अनिश्चितताएं हैं।
लाभ लेने के तरीकों जैसे कि ट्रेलिंग स्टॉप, आंशिक निकास आदि को जोड़कर लाभ लेने के स्तर को गतिशील रूप से समायोजित करें।
बाहर निकलने के संकेतों को अनुकूलित करें, उदाहरण के लिए आंशिक बाहर निकलने, अन्य संकेतकों को जोड़कर।
अधिक संकेतक या मशीन लर्निंग को शामिल करके रुझान निर्णय में सुधार करें।
इष्टतम सेट खोजने के लिए अधिक व्यापक बैकटेस्ट द्वारा मापदंडों का अनुकूलन करें।
घाटे को बेहतर ढंग से नियंत्रित करने के लिए स्टॉप लॉस विधियों को जोड़ें।
यह रणनीति आम तौर पर क्लासिक कम खरीद उच्च बिक्री सिद्धांत को लागू करती है और कुछ शर्तों के तहत अच्छी तरह से प्रदर्शन कर सकती है। लेकिन अभी भी पैरामीटर ट्यूनिंग, एक्जिट ऑप्टिमाइजेशन, स्टॉप लॉस तंत्र आदि के माध्यम से सुधार के लिए जगह है। यह लेख रणनीति के तर्क, पेशेवरों, विपक्षों और अनुकूलन दिशाओं पर गहन विश्लेषण प्रदान करता है, जिसका उद्देश्य रणनीति विचार को साझा करना है और साथ ही निवेशकों को जोखिमों की याद दिलाना और मात्रात्मक रणनीतियों के साथ सावधानीपूर्वक व्यापार करना है।
/*backtest start: 2022-11-16 00:00:00 end: 2023-11-22 00:00:00 period: 1d basePeriod: 1h 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/ // @version=5 // Author = TradeAutomation strategy(title="Low-High-Trend Strategy", shorttitle="Low-High-Trend Strategy", process_orders_on_close=true, overlay=true, commission_type=strategy.commission.cash_per_order, commission_value=1, slippage=3, initial_capital = 25000, margin_long=50, margin_short=50, default_qty_type=strategy.percent_of_equity, default_qty_value=110) // Backtest Date Range Inputs // StartTime = input(defval=timestamp('01 Jan 2000 05:00 +0000'), title='Start Time') EndTime = input(defval=timestamp('01 Jan 2099 00:00 +0000'), title='End Time') InDateRange = true // Strategy Calculations // lowcriteria = ta.lowest(close, input(20, "Lowest Price Lookback", tooltip="The strategy will BUY when the price crosses over the lowest it has been in the last X amount of bars"))[1] highcriteria = ta.highest(close, input(10, "Highest Price Lookback", tooltip="If Take-Profit is not checked, the strategy will SELL when the price crosses under the highest it has been in the last X amount of bars"))[1] plot(highcriteria, color=color.green) plot(lowcriteria, color=color.red) // Take Profit // TakeProfitInput = input(true, "Sell with Take-Profit % intead of highest price cross?") TakeProfit = ta.crossover(close,strategy.position_avg_price*(1+(.01*input.float(8, title="Take Profit %", step=.25)))) // Operational Functions // TrendFilterInput = input(true, "Only buy when price is above EMA trend?") ema = ta.ema(close, input(200, "EMA Length")) TrendisLong = (close>ema) plot(ema) // Entry & Exit Functions// if (InDateRange and TrendFilterInput==true) strategy.entry("Long", strategy.long, when = ta.crossover(close, lowcriteria) and TrendisLong) if (InDateRange and TrendFilterInput==false) strategy.entry("Long", strategy.long, when = ta.crossover(close, lowcriteria)) if (InDateRange and TakeProfitInput==true) strategy.close("Long", when = TakeProfit) if (InDateRange and TakeProfitInput==false) strategy.close("Long", when = ta.crossunder(close, highcriteria)) if (not InDateRange) strategy.close_all()