
यह रणनीति बाजार के निचले बिंदु पर खरीदने और उच्च बिंदु पर बेचने के विचार पर आधारित है। यह पिछले एक निश्चित अवधि में उच्चतम और निम्नतम कीमतों को ट्रैक करता है, जब कीमत न्यूनतम मूल्य को तोड़ती है तो मल्टीहेड स्थिति स्थापित करती है, जब कीमत उच्चतम मूल्य से नीचे जाती है या स्टॉप-अप स्थिति तक पहुंचती है तो पब्लिक पोजीशन होती है। साथ ही, इस रणनीति में एक वैकल्पिक ट्रेंड फिल्टर जोड़ा गया है, जो केवल तभी खरीदा जाता है जब कीमत एक ऊंची प्रवृत्ति में होती है।
निम्नतम मूल्य ((lowcriteria): ta.lowest फ़ंक्शन को कॉल करें, उपयोगकर्ता द्वारा सेट किए गए समीक्षा चक्र के आधार पर (डिफ़ॉल्ट 20 K लाइन) पिछले कुछ समय की न्यूनतम कीमत की गणना करें, और न्यूनतम मूल्य रेखा खींचें।
उच्चतम मानदंड (highcriteria): ta.highest फ़ंक्शन को कॉल करें, उपयोगकर्ता द्वारा निर्धारित समीक्षा चक्र (डिफ़ॉल्ट 10 K लाइन) के आधार पर पिछले कुछ समय के भीतर उच्चतम मूल्य की गणना करें, और उच्चतम मूल्य रेखा खींचें।
जब वर्तमान मूल्य न्यूनतम मूल्य रेखा को तोड़ता है, तो एक खरीद संकेत जारी किया जाता है और एक बहु-स्तरीय स्थिति स्थापित की जाती है।
यह दो विकल्प प्रदान करता हैः
फिक्स्ड स्टॉपः जब कीमत सेट स्टॉप स्तर पर पहुंच जाती है (जैसे कि प्रवेश मूल्य का 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()