पुनरावर्ती गति व्यापार रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-31 16:56:31
टैगः

img

अवलोकन

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

रणनीति तर्क

पुनरावर्ती बैंड सूचक गणना

पुनरावर्ती बैंड सूचक में एक ऊपरी बैंड, निचला बैंड और मध्य रेखा होती है। सूचक की गणना इस प्रकार की जाती हैः

ऊपरी बैंड = अधिकतम ((पूर्ववर्ती पट्टी का ऊपरी बैंड, बंद मूल्य + nअस्थिरता) निचला बैंड = Min(पिछला बार का निचला बैंड, बंद मूल्य - nअस्थिरता) मध्य रेखा = (ऊपरी बैंड + निचला बैंड) / 2

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

व्यापार नियम

रणनीति पहले यह जांचती है कि क्या झूठे ब्रेकआउट से बचने के लिए निचला बैंड और ऊपरी बैंड एक ही दिशा में चल रहे हैं।

जब कीमत निचले बैंड से नीचे टूट जाती है, तो लंबी हो जाती है। जब कीमत ऊपरी बैंड से ऊपर टूट जाती है, तो छोटी हो जाती है।

इसके अतिरिक्त, स्टॉप लॉस लॉजिक लागू किया गया है।

लाभ विश्लेषण

इस रणनीति के लाभ इस प्रकार हैंः

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

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

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

  1. अनुचित पैरामीटर सेटिंग्स से ओवरट्रेडिंग या खराब सिग्नल गुणवत्ता हो सकती है
  2. जब प्रमुख रुझान बदलता है तो बड़े नुकसान का सामना कर सकता है
  3. चरम चाल में अपर्याप्त फिसलन नियंत्रण नुकसान को बढ़ा सकता है

इन जोखिमों को पैरामीटर अनुकूलन, स्टॉप लॉस लागू करने, फिसलने की सीमा बढ़ाने आदि से प्रबंधित किया जा सकता है।

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

रणनीति को और अधिक अनुकूलित करने के लिए कुछ दिशाएंः

  1. स्थिरता के लिए कई समय सीमाओं में संकेतकों को शामिल करें
  2. अनुकूलन पैरामीटर अनुकूलन के लिए मशीन सीखने मॉड्यूल जोड़ें
  3. इष्टतम पैरामीटर संयोजन खोजने के लिए मात्रात्मक सहसंबंध विश्लेषण करना
  4. मूल्य पथों का पूर्वानुमान करने और संकेत सटीकता में सुधार करने के लिए गहरी शिक्षा का उपयोग करें

निष्कर्ष

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=5
// Original indicator by alexgrover
strategy('Extended Recursive Bands Strategy', overlay=true, commission_type=strategy.commission.percent,commission_value=0.06,default_qty_type =strategy.percent_of_equity,default_qty_value = 100,initial_capital =1000)
length = input.int(260, step=10, title='Length')
src = input(close, title='Source')
method = input.string('Classic', options=['Classic', 'Atr', 'Stdev', 'Ahlr', 'Rfv'], title='Method')
bandDirectionCheck = input.bool(true, title='Bands Hold Direction')
lookback = input(3)
//----
atr = ta.atr(length)
stdev = ta.stdev(src, length)
ahlr = ta.sma(high - low, length)
rfv = 0.
rfv := ta.rising(src, length) or ta.falling(src, length) ? math.abs(ta.change(src)) : rfv[1]
//-----
f(a, b, c) =>
    method == a ? b : c
v(x) =>
    f('Atr', atr, f('Stdev', stdev, f('Ahlr', ahlr, f('Rfv', rfv, x))))
//----
sc = 2 / (length + 1)
a = 0.
a := math.max(nz(a[1], src), src) - sc * v(math.abs(src - nz(a[1], src)))
b = 0.
b := math.min(nz(b[1], src), src) + sc * v(math.abs(src - nz(b[1], src)))
c = (a+b)/2

// Colors
beColor = #675F76
buColor = #a472ff

// Plots
pA = plot(a, color=color.new(beColor, 0), linewidth=2, title='Upper Band')
pB = plot(b, color=color.new(buColor, 0), linewidth=2, title='Lower Band')
pC = plot(c, color=color.rgb(120,123,134,0), linewidth=2, title='Middle Band')
fill(pC, pA, color=color.new(beColor,90))
fill(pC, pB, color=color.new(buColor,90))

// Band keeping direction
// By Adulari
longc = 0
shortc = 0
for i = 0 to lookback-1
    if b[i] > b[i+1]
        longc:=longc+1
    if a[i] < a[i+1]
        shortc:=shortc+1
bhdLong = if bandDirectionCheck
    longc==lookback
else
    true
bhdShort = if bandDirectionCheck
    shortc==lookback
else
    true

// Strategy
if b>=low and bhdLong
    strategy.entry(id='Long',direction=strategy.long)
if high>=a and bhdShort
    strategy.entry(id='Short',direction=strategy.short)

// TP at middle line
//if low<=c and strategy.position_size<0 and strategy.position_avg_price>close
    //strategy.exit(id="Short",limit=close)
//if high>=c and strategy.position_size>0 and strategy.position_avg_price<close
    //strategy.exit(id="Long",limit=close)

अधिक