सापेक्ष गति रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-29 08:38:04
टैगः

img

अवलोकन

सापेक्ष गति रणनीति व्यापक बाजार के लिए स्टॉक की सापेक्ष ताकत का न्याय करने के लिए व्यक्तिगत स्टॉक और सूचकांक की गति की तुलना करती है। यह खरीदता है जब स्टॉक गति सूचकांक की तुलना में अधिक होती है, और बेचता है जब स्टॉक गति सूचकांक की तुलना में कम होती है, ताकि व्यक्तिगत स्टॉक के विकास शिखर को पकड़ लिया जा सके।

सिद्धांत

इस रणनीति का मूल तर्क यह है कि बाजार के मुकाबले व्यक्तिगत शेयरों की सापेक्ष ताकत का आकलन किया जाए, विशेष रूप सेः

  1. स्टॉक की गति के रूप में समय की अवधि में रिटर्न की गणना करें
  2. सूचकांक गति के समान अवधि में सूचकांक प्रतिफल की गणना करें
  3. स्टॉक और सूचकांक गति को समतल करने के लिए चलती औसत का उपयोग करें
  4. जब स्टॉक गति का चलती औसत सूचकांक के ऊपर से पार हो जाता है, तो स्टॉक गति को समग्र बाजार की तुलना में मजबूत माना जाता है - यानी खरीद संकेत
  5. जब स्टॉक मोमेंटम मूविंग एवरेज इंडेक्स मोमेंटम मूविंग एवरेज से नीचे जाता है, तो स्टॉक मोमेंटम को कमजोर माना जाता है, जिससे बिक्री सिग्नल ट्रिगर होता है

इस तर्क के माध्यम से, हम शेयरों में खरीद सकते हैं जब उनकी वृद्धि संपन्न हो रही है और बिक्री कर सकते हैं जब विकास गति फीकी पड़ जाती है, शेयरों की वृद्धि के चरम अवधि के दौरान अतिरिक्त रिटर्न को लॉक करते हैं।

लाभ विश्लेषण

सापेक्ष गति की रणनीति के मुख्य फायदे:

  1. विशिष्ट बाजार स्थितियों को ध्यान में रखे बिना स्टॉक के विकास शिखर को गतिशील रूप से पकड़ सकता है - केवल खरीदें जब स्टॉक वृद्धि समग्र बाजार से आगे निकलती है
  2. चलती औसत के साथ समतल करने से अल्पकालिक उतार-चढ़ावों को फ़िल्टर किया जाता है और सिग्नल विश्वसनीयता में सुधार होता है
  3. सरल प्रत्यक्ष खरीद और बिक्री की शर्तें, समझने और संचालित करने में आसान
  4. सापेक्ष गति की गणना और अनुकूलन के लिए समय अवधि को कॉन्फ़िगर करने के लिए लचीलापन

जोखिम विश्लेषण

सापेक्ष गति की रणनीति के साथ कुछ जोखिम भी हैंः

  1. वृद्धि के चरम के समाप्त होने के बाद स्टॉक में गिरावट आ सकती है, जिससे लाभ लेने का पर्याप्त जोखिम नहीं है
  2. सापेक्ष गति संकेत झूठे हो सकते हैं, वास्तविक चोटी के बजाय एक नकली की पहचान
  3. अधिकतम हानि को नियंत्रित करने के लिए स्टॉप हानि सेट करने की आवश्यकता है

इन जोखिमों को उचित लाभ लेने, स्टॉप लॉस, पैरामीटर ट्यूनिंग आदि से प्रबंधित किया जा सकता है।

अनुकूलन दिशाएँ

सापेक्ष गति रणनीति को मुख्य रूप से निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः

  1. इष्टतम खोजने के लिए कंप्यूटिंग गति के लिए विभिन्न समय अवधि का परीक्षण
  2. सर्वोत्तम मापदंडों के लिए चलती औसत के विभिन्न प्रकार और लंबाई का प्रयास करें
  3. गति की कमी के कारण झूठे ब्रेकआउट से बचने के लिए वॉल्यूम फ़िल्टर जोड़ें
  4. इष्टतम प्रवेश समय की पुष्टि करने के लिए अन्य संकेतकों को शामिल करें

निष्कर्ष

सापेक्ष गति रणनीति अल्फा उत्पन्न करने के लिए समग्र बाजार के मुकाबले व्यक्तिगत शेयरों के अतिरिक्त विकास चरणों को पकड़ती है। इसके सरल, स्पष्ट खरीद / बिक्री तर्क और संचालन में आसानी के साथ, और जब पैरामीटर अनुकूलन और जोखिम नियंत्रण के साथ जोड़ा जाता है, तो यह रणनीति बहुत अच्छी तरह से प्रदर्शन कर सकती है।


/*backtest
start: 2024-01-21 00:00:00
end: 2024-01-28 00:00:00
period: 15m
basePeriod: 5m
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/
// © HeWhoMustNotBeNamed

//@version=4
strategy("Relative Returns Strategy", overlay=false, initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type = strategy.commission.percent, pyramiding = 1, commission_value = 0.01, calc_on_order_fills = true)

index_ticker=input("BTC_USDT:swap")
Loopback = input(40, step=20)
useStopAndIndexReturns = input(true)
useStopAndIndexReturnsMa = input(true)

useDifference = not useStopAndIndexReturns

MAType = input(title="Moving Average Type", defval="sma", options=["ema", "sma", "hma", "rma", "vwma", "wma"])
MALength = input(10, minval=10,step=10)

i_startTime = input(defval = timestamp("01 Jan 2010 00:00 +0000"), title = "Backtest Start Time", type = input.time)
i_endTime = input(defval = timestamp("01 Jan 2099 00:00 +0000"), title = "Backtest End Time", type = input.time)
inDateRange = true

f_secureSecurity(_symbol, _res, _src, _offset) => security(_symbol, _res, _src[_offset], lookahead = barmerge.lookahead_on)
f_getMovingAverage(source, MAType, length)=>
    ma = sma(source, length)
    if(MAType == "ema")
        ma := ema(source,length)
    if(MAType == "hma")
        ma := hma(source,length)
    if(MAType == "rma")
        ma := rma(source,length)
    if(MAType == "vwma")
        ma := vwma(source,length)
    if(MAType == "wma")
        ma := wma(source,length)
    ma

index = f_secureSecurity(index_ticker, '1D', close, 0)
stock_return = (close - close[Loopback])*100/close
index_return = (index - index[Loopback])*100/index

stock_return_ma = f_getMovingAverage(stock_return, MAType, MALength)
index_return_ma = f_getMovingAverage(index_return, MAType, MALength)
relativeReturns = stock_return - index_return
relativeReturns_ma = f_getMovingAverage(relativeReturns, MAType, MALength)

plot(useStopAndIndexReturns ? useStopAndIndexReturnsMa ? stock_return_ma : stock_return : na, title="StockReturn", color=color.green, linewidth=1)
plot(useStopAndIndexReturns ? useStopAndIndexReturnsMa ? index_return_ma : index_return : na, title="IndexReturn", color=color.red, linewidth=1)

plot(useDifference?relativeReturns:na, title="Relative-Returns", color=color.blue, linewidth=1)
plot(useDifference?relativeReturns_ma:na, title="MA", color=color.red, linewidth=1)

buyCondition = (useStopAndIndexReturns ? useStopAndIndexReturnsMa ? stock_return_ma > index_return_ma : stock_return > index_return : relativeReturns > relativeReturns_ma)
closeBuyCondition = (useStopAndIndexReturns ? useStopAndIndexReturnsMa ? stock_return_ma < index_return_ma : stock_return < index_return : relativeReturns < relativeReturns_ma)
strategy.entry("Buy", strategy.long, when=buyCondition and inDateRange, oca_name="oca")
strategy.close("Buy", when=closeBuyCondition)

अधिक