औसत रेखा रिवर्स ट्रेडिंग रणनीति खरीद और बेचने के संकेतों को निर्धारित करने के लिए स्टॉक की कीमत की एक रैखिक रिवर्स लाइन और औसत रेखा के क्रॉसिंग की गणना करती है। यह रणनीति औसत रेखा और रैखिक रिवर्स विश्लेषण को जोड़ती है, जो स्टॉक की कीमत के रुझान को ध्यान में रखती है और सांख्यिकीय विशेषताओं को ध्यान में रखती है, जिससे स्टॉक की कीमत के टर्नओवर को प्रभावी ढंग से निर्धारित किया जा सकता है, कम खरीद और उच्च बिक्री प्राप्त की जा सकती है।
इस रणनीति में सबसे पहले n दिन की स्टॉक की कीमतों के लिए एक रैखिक रिटर्न लाइन और m दिन की औसत लाइन की गणना की जाती है। रैखिक रिटर्न लाइन स्टॉक की कीमतों की लंबी अवधि की सांख्यिकीय प्रवृत्ति को दर्शाती है, जबकि औसत लाइन स्टॉक की कीमतों के अल्पकालिक आंदोलन को दर्शाती है।
जब औसत रेखा के पार एक रैखिक वापसी रेखा होती है, तो यह शेयर की कीमत में वृद्धि की गति को बढ़ाता है, जो एक खरीद संकेत उत्पन्न करता है। जब औसत रेखा के नीचे एक रैखिक वापसी रेखा होती है, तो यह शेयर की कीमत में कमी को दर्शाता है, जो एक बेचने का संकेत उत्पन्न करता है।
विशेष रूप से, रणनीति निम्नलिखित चरणों के माध्यम से ट्रेडिंग संकेतों का आकलन करती हैः
एक n-दिन स्टॉक मूल्य रैखिक रिवर्सन रेखा LRLine गणना
एक रैखिक प्रतिगमन रेखा के m दिन सरल चलती औसत LRMA की गणना करें
स्टॉक मूल्य का m-दिन सूचकांक चलती औसत
जब ईएमए पर एलआरएमए पहनते हैं, तो एक खरीद संकेत उत्पन्न होता है
जब ईएमए एलआरएमए के नीचे से गुजरता है, तो यह एक लंबे समय तक बाहर निकलने का संकेत देता है
इस प्रकार, जब बाजार में तेजी होती है, तो खरीद के संकेतों पर विचार किया जाता है, जो कि बड़े बाजार के फैसले के साथ संयुक्त होते हैं।
सिग्नल के आधार पर खरीद और बिक्री लेनदेन
औसत रेखा और वापसी रेखा के क्रॉसिंग के माध्यम से खरीद और बिक्री के समय का निर्धारण करना, एक प्रभावी फ़िल्टरिंग और उलटा बिंदुओं को पकड़ना, कम खरीद और उच्च बिक्री प्राप्त करना।
ध्यान देने योग्य पैरामीटर समायोजन, उचित रूप से बढ़ी हुई औसत रेखा और पुनरावृत्ति रेखा चक्र पैरामीटर, ट्रेडिंग आवृत्ति को कम करना। उचित रूप से स्टॉप-लॉस रणनीति नियंत्रण जोखिम सेट करें। बड़े पैमाने पर निर्णय के नियमों का अनुकूलन करें, सटीकता में सुधार करें।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
औसत सूचकांक अनुकूलनः विभिन्न प्रकार के औसत, जैसे कि भारित चलती औसत, का प्रयास करें और उस स्टॉक के लिए सबसे अच्छा औसत खोजें।
रिवर्स लाइन अनुकूलनः रिवर्स लाइन की गणना चक्र को समायोजित करें और उस चक्र पैरामीटर की तलाश करें जो स्टॉक की लंबी अवधि की प्रवृत्ति को सबसे अच्छा दर्शाता है।
बड़े पैमाने पर निर्णय अनुकूलनः विभिन्न बड़े पैमाने पर निर्णय संकेतकों का परीक्षण करें और रणनीति के लिए सबसे उपयुक्त बड़े पैमाने पर संकेत खोजें।
पैरामीटर अनुकूलन: विभिन्न पैरामीटर संयोजनों के माध्यम से बार-बार परीक्षण, सबसे अच्छा पैरामीटर विन्यास खोजने के लिए।
स्टॉप लॉजिक ऑप्टिमाइज़ेशनः विभिन्न स्टॉप लॉजिस्टिक्स का परीक्षण करें और जोखिम को नियंत्रित करने के लिए सबसे अच्छा स्टॉप लॉजिक सेट करें।
लेनदेन लागत अनुकूलनः लेनदेन की लागत को कम करने के लिए विभिन्न लेनदेन शुल्क मॉडल के अनुसार लेनदेन आवृत्ति को समायोजित करें।
उपरोक्त कुछ सुधारों से रणनीति की स्थिरता और लाभप्रदता को और बढ़ाया जा सकता है।
इस रेगुलर रिवर्स ट्रेडिंग रणनीति में रेगुलर विश्लेषण और रैखिक रिवर्स विश्लेषण का एकीकरण है, जो प्रभावी रूप से शेयर की कीमतों के मोड़ को पहचानता है और कम खरीद और उच्च बिक्री को निर्देशित करता है। रणनीति सरल और विश्वसनीय है, जो मध्यम और लंबी लाइन स्टॉक विकल्पों के व्यापार के लिए उपयुक्त है। पैरामीटर अनुकूलन और जोखिम नियंत्रण के माध्यम से रणनीति की स्थिरता को और बढ़ाया जा सकता है। यह रणनीति शेयर बाजार विश्लेषण के लिए एक व्यवहार्य तकनीकी व्यापारिक समाधान प्रदान करती है।
/*backtest
start: 2022-10-18 00:00:00
end: 2023-10-24 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/
// © lazy_capitalist
//@version=5
strategy('Linear Regression MA', overlay=true, initial_capital=10000)
datesGroup = "Date Info"
startMonth = input.int(defval = 1, title = "Start Month", minval = 1, maxval = 12, group=datesGroup)
startDay = input.int(defval = 1, title = "Start Day", minval = 1, maxval = 31, group=datesGroup)
startYear = input.int(defval = 2022, title = "Start Year", minval = 1970, group=datesGroup)
averagesGroup = "Averages"
lrLineInput = input.int(title="Linear Regression Line", defval=55, minval = 1, group=averagesGroup)
lrMAInput = input.int(title="Linear Regression MA", defval=55, minval = 1, group=averagesGroup)
emaInput = input.int(title="EMA Length", defval=55, minval = 1, group=averagesGroup)
tradesGroup = "Execute Trades"
executeLongInput = input.bool(title="Execute Long Trades", defval=true)
executeShortInput = input.bool(title="Execute Short Trades", defval=true)
executeStopLoss = input.bool(title="Execute Stop Loss", defval=true)
fourHrSMAExpr = ta.sma(close, 200)
fourHrMA = request.security(symbol=syminfo.tickerid, timeframe="240", expression=fourHrSMAExpr)
bullish = close > fourHrMA ? true : false
maxProfitInput = input.float( title="Max Profit (%)", defval=10.0, minval=0.0) * 0.01
stopLossPercentageInput = input.float( title="Stop Loss (%)", defval=1.75, minval=0.0) * 0.01
start = timestamp(startYear, startMonth, startDay, 00, 00) // backtest start window
window() => time >= start ? true : false // create function "within window of time"
showDate = input(defval = true, title = "Show Date Range")
lrLine = ta.linreg(close, lrLineInput, 0)
lrMA = ta.sma(lrLine, lrMAInput)
ema = ta.ema(close, emaInput)
longEntry = ema < lrMA
longExit = lrMA < ema
shortEntry = lrMA < ema
shortExit = ema < lrMA
maxProfitLong = strategy.opentrades.entry_price(0) * (1 + maxProfitInput)
maxProfitShort = strategy.opentrades.entry_price(0) * (1 - maxProfitInput)
stopLossPriceShort = strategy.position_avg_price * (1 + stopLossPercentageInput)
stopLossPriceLong = strategy.position_avg_price * (1 - stopLossPercentageInput)
if(executeLongInput and bullish)
strategy.entry( id="long_entry", direction=strategy.long, when=longEntry and window(), qty=10, comment="long_entry")
strategy.close( id="long_entry", when=longExit, comment="long_exit")
// strategy.close( id="long_entry", when=maxProfitLong <= close, comment="long_exit_mp")
if(executeShortInput and not bullish)
strategy.entry( id="short_entry", direction=strategy.short, when=shortEntry and window(), qty=10, comment="short_entry")
strategy.close( id="short_entry", when=shortExit, comment="short_exit")
// strategy.close( id="short_entry", when=maxProfitShort <= close, comment="short_exit_mp")
if(strategy.position_size > 0 and executeStopLoss)
strategy.exit( id="long_entry", stop=stopLossPriceLong, comment="exit_long_SL")
strategy.exit( id="short_entry", stop=stopLossPriceShort, comment="exit_short_SL")
// plot(series=lrLine, color=color.green)
plot(series=lrMA, color=color.red)
plot(series=ema, color=color.blue)