आरएसआई बॉक्स ग्रिड रणनीति

लेखक:चाओझांग, दिनांक: 2023-10-30 11:29:30
टैगः

img

अवलोकन

यह रणनीति एक छद्म ग्रिड बॉट है जिसका उद्देश्य मुख्य रूप से एल्गोरिथम ट्रेडिंग के लिए है। यह एक गतिशील, वॉल्यूम-वजन ग्रिड का उपयोग करता है जो केवल तभी अपडेट होता है जब आरएसआई कुछ शर्तों को पूरा करता है। यह एक ब्रेकआउट रणनीति भी है, जबकि सामान्य ग्रिड बॉट नहीं होते हैं (आमतौर पर ग्रिड बॉट एक उच्च ग्रिड तक पहुंचने पर बेचते हैं, जबकि यह रणनीति विशिष्ट शर्तों के तहत एक निचले ग्रिड का उल्लंघन होने पर बेचती है) । यह रणनीति सभी पिरामिडिंग ऑर्डर को भी बंद करती है।

संक्षेप में, रणनीति अपने ग्रिड को आपके दिए गए स्रोत के वॉल्यूम-वेटेड उच्चतम/निम्नतम मूल्यों (सेटिंग्स में src) में अपडेट करती है जब भी आरएसआई ओवरबॉयड/ओवरसोल्ड स्तरों के नीचे/ओवर से पार होता है। इस सीमा से यह पांच लाइनों की समान रूप से दूरी वाली ग्रिड उत्पन्न करता है, और वर्तमान स्रोत का उपयोग यह निर्धारित करने के लिए करता है कि कौन सी ग्रिड लाइन सबसे करीब है। फिर, यदि स्रोत सीधे ऊपर की रेखा को पार करता है, तो यह एक लंबा प्रवेश करता है। यदि स्रोत सीधे नीचे की रेखा के नीचे पार करता है, तो यह एक छोटा प्रवेश करता है।

आप सेटिंग्स में शॉर्ट्स, स्रोत, आरएसआई लंबाई, और ओवरबॉट/ओवरसोल्ड स्तर को कॉन्फ़िगर कर सकते हैं.

रणनीति तर्क

इस रणनीति का मूल तर्क यह हैः

  1. रुझान उलटने के बिंदुओं को निर्धारित करने के लिए आरएसआई संकेतक का उपयोग करें, जो पुष्टि संकेतों के रूप में ओवरबॉट/ओवरसोल्ड स्तरों के आरएसआई लाइन क्रॉसओवर का उपयोग करता है।

  2. जब आरएसआई सिग्नल होता है, तो ग्रिड की ऊपरी/नीची सीमाओं के रूप में अवधि के दौरान उच्चतम/सबसे कम कीमतों को रिकॉर्ड किया जाता है।

  3. रेंज को 5 समान रूप से दूरी वाली ग्रिड लाइनों में विभाजित करें। वास्तविक समय में जांचें कि मूल्य किस लाइन के सबसे करीब है।

  4. जब कीमत ऊपर की रेखा के ऊपर टूट जाती है, तो लंबी हो जाती है। जब कीमत नीचे की रेखा के नीचे टूट जाती है, तो लंबी और छोटी हो जाती है।

  5. स्पर्श के स्थान पर ब्रेकआउट का प्रयोग करके, यह प्रवृत्ति उलट को बेहतर ढंग से पकड़ सकता है।

  6. रात भर के जोखिमों से बचने के लिए बंद होने से पहले सभी पिरामिड ऑर्डर बंद करें।

इस रणनीति में निम्नलिखित शामिल हैंः

  1. इनपुट सेटिंग्सः स्रोत, आरएसआई पैरामीटर, लंबी/छोटी आदि

  2. आरएसआई गणनाः आरएसआई की गणना करें और क्रॉसओवर संकेतों की जांच करें।

  3. गतिशील ग्रिडः आरएसआई संकेतों पर मूल्य सीमा रिकॉर्ड करें और ग्रिड लाइनों की गणना करें।

  4. सिग्नल जांचः लंबे/छोटे संकेतों के लिए मूल्य तोड़ने वाली ग्रिड लाइनों का पता लगाएं।

  5. आदेश प्रबंधन: आदेश भेजें और बंद होने से पहले समतल करें।

  6. चार्टिंग: ग्राफ ग्रिड लाइनें, लंबे/छोटे क्षेत्र आदि।

ग्रिड को गतिशील रूप से अद्यतन करके और रुझान संदर्भ के साथ-साथ ब्रेकआउट संकेतों के लिए आरएसआई का उपयोग करके, यह रणनीति प्रभावी रूप से रुझानों को ट्रैक कर सकती है और जब रुझान बदलता है तो उलट सकती है। बंद होने से पहले सपाट होना रातोंरात जोखिमों का प्रबंधन करता है।

लाभ विश्लेषण

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

  1. गतिशील ग्रिड स्थिर ग्रिड के विपरीत, प्रवृत्ति के अनुकूल होता है।

  2. केवल आरएसआई की पुष्टि पर ग्रिड को समायोजित करता है, शोर को कम करता है।

  3. ब्रेकआउट सिग्नल स्पर्श की तुलना में बेहतर रिवर्स को पकड़ता है।

  4. रात भर के अंतराल के जोखिम से बचने के लिए बंद होने से पहले समतल हो जाता है।

  5. आरएसआई अति-खरीदे/बेचे गए का पता लगाने के लिए प्रभावी है।

  6. ब्रेकआउट मोड रिवर्स की तुलना में शुरुआती ट्रेंड एंट्री प्रदान करता है।

  7. ग्रिड की दूरी और आकार को समायोजित करने से जोखिम को समायोजित करने की अनुमति मिलती है।

  8. दृश्य ग्रिड और लंबे/छोटे क्षेत्र।

  9. विभिन्न व्यापारियों के अनुरूप वैकल्पिक शॉर्ट्स।

  10. अल्गो ट्रेडिंग के लिए उपयुक्त सरल स्पष्ट तर्क।

ये रणनीति को लाइव ट्रेडिंग के लिए जोखिम नियंत्रण के साथ ऑटो ट्रेंड ट्रैकिंग के लिए सक्षम बनाते हैं।

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

कुछ संभावित जोखिम भी हैं जिन पर ध्यान दिया जाना चाहिएः

  1. Whipsaw बाजार स्टॉप लॉस का कारण बन सकते हैं। स्टॉप को चौड़ा कर सकते हैं या ट्रेडिंग को रोक सकते हैं।

  2. रात भर के अंतराल में बड़े खुले अंतराल रह सकते हैं। पदों का आकार कम कर सकते हैं।

  3. खराब पैरामीटर ट्यूनिंग ट्रेडों या संकेत त्रुटियों को बढ़ा सकती है। सावधानीपूर्वक अनुकूलन की आवश्यकता होती है।

  4. उच्च शुल्क ग्रिड ट्रेडों से मुनाफे को कम कर सकते हैं। व्यापार के आकार को कम करना चाहिए या कम शुल्क वाले एक्सचेंजों का उपयोग करना चाहिए।

  5. ब्रेकआउट सिग्नल थोड़ा पीछे हो सकते हैं। उचित ब्रेकआउट सीमाओं की आवश्यकता है।

  6. स्थिर उभरते रुझानों में कम प्रदर्शन कर सकता है। अन्य संकेतकों के साथ संयोजन पर विचार करें।

  7. बड़ी स्थिति के आकार और पिरामिडिंग के लिए पर्याप्त पूंजी की आवश्यकता होती है, अन्यथा परिणाम खराब होंगे। पूंजी के आधार पर आकार समायोजित करें।

शमन उपाय:

  1. व्यापार की आवृत्ति और ओवरट्रेडिंग को कम करने के लिए मापदंडों को अनुकूलित करें।

  2. ट्रेंड इंडिकेटर के साथ संयोजन करें, व्यापार के समय से बचें।

  3. व्यापार के आकार का प्रतिशत और प्रति व्यापार जोखिम को कम करना।

  4. समयबद्धता बनाम स्थिरता के सर्वोत्तम संतुलन के लिए विभिन्न ब्रेकआउट सीमाओं का परीक्षण करें।

  5. अधिक प्रवेश शर्तें जोड़ें, केवल स्पष्ट रुझान दर्ज करें ताकि फंसने से बचा जा सके।

  6. पैरामीटर स्थिरता का मूल्यांकन करने के लिए लंबी अवधि के लिए बैकटेस्ट।

  7. बाजार अनुकूलन क्षमता के लिए मशीन लर्निंग आधारित गतिशील पैरामीटर अनुकूलन का अन्वेषण करें।

  8. स्थिति जोखिमों को कवर करने के लिए विकल्प रणनीतियों के साथ संयोजन पर विचार करें।

  9. रणनीति को प्रभावी बनाए रखने के लिए हालिया बाजार स्थितियों के आधार पर मापदंडों को समायोजित करें।

  10. त्वरित परीक्षण में सहायता के लिए दृश्य अनुकूलन प्लेटफार्मों का निर्माण करें।

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

बढ़ोतरी के अवसर

इस रणनीति को आगे बढ़ाया जा सकता हैः

  1. आरएसआई मापदंडों का अनुकूलन, सर्वश्रेष्ठ संयोजनों के लिए आरएसआई अवधि का परीक्षण।

  2. इष्टतम जोखिम-इनाम के लिए विभिन्न ग्रिड अंतराल का परीक्षण करना।

  3. सटीकता बढ़ाने के लिए फिल्टर संकेतों में अन्य संकेतकों को जोड़ना, जैसे कि एमएसीडी, केडी आदि।

  4. बाजार की अस्थिरता के आधार पर अनुकूलनशील स्टॉप विकसित करना।

  5. प्रवेश की शर्तों में वृद्धि, जाल से बचने के लिए केवल स्पष्ट रुझान दर्ज करें।

  6. पैरामीटर स्थिरता का मूल्यांकन करने के लिए लंबी अवधि के लिए बैकटेस्टिंग।

  7. अनुकूलन क्षमता के लिए मशीन लर्निंग आधारित गतिशील अनुकूलन का अन्वेषण करना।

  8. जोखिमों को कवर करने के लिए विकल्प रणनीतियों को शामिल करना।

  9. प्रभावशीलता बनाए रखने के लिए हालिया बाजार स्थितियों के आधार पर मापदंडों को समायोजित करना।

  10. तेजी से परीक्षण के लिए दृश्य अनुकूलन प्लेटफार्मों का निर्माण।

स्वचालित अनुकूलन, रणनीति संयोजन, अधिक बाजार जानकारी आदि के साथ, यह एक वास्तविक व्यापारिक रणनीति के रूप में बेहतर स्थिरता और रिटर्न प्राप्त कर सकता है।

सारांश

संक्षेप में, आरएसआई बॉक्स ग्रिड रणनीति रुझान उलट पुष्टि की पहचान करने के लिए आरएसआई का उपयोग करती है, गतिशील मूल्य सीमा ग्रिड, ट्रेड ब्रेकआउट सेट करती है, और इंट्राडे को समतल करती है - एल्गो ट्रेडिंग रणनीति के बाद एक लचीली प्रवृत्ति का गठन करती है। निश्चित ग्रिड की तुलना में, यह बाजार परिवर्तनों के लिए बेहतर अनुकूल है।

इस रणनीति में रुझान संदर्भ के लिए आरएसआई, गतिशील ग्रिड, ब्रेकआउट ट्रेडिंग, और पूर्ण इंट्राडे सपाटता सहित फायदे हैं। इससे यह जोखिम नियंत्रण के साथ प्रभावी ढंग से रुझानों को ट्रैक करने की अनुमति देता है। हालांकि, व्हिपसा स्टॉप लॉस, ओवरनाइट गैप जैसे जोखिम मौजूद हैं, जिन्हें अनुकूलन, सिग्नल कंघी और जोखिम प्रबंधन की आवश्यकता होती है।

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


/*backtest
start: 2023-09-29 00:00:00
end: 2023-10-29 00:00:00
period: 1h
basePeriod: 15m
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/
// © wbburgin

//@version=5
// strategy("RSI Box Strategy (pseudo-Grid Bot)", overlay=true, initial_capital = 10000, 
//  default_qty_type = strategy.percent_of_equity, default_qty_value = 1, pyramiding = 33, commission_value=0.10)

src = input.source(close,"Source")
rsiLength = input.int(14,"RSI Length")
oblvl = input.int(70,"Overbought Level")
oslvl = input.int(30,"Oversold Level")
useShorts = input.bool(false,"Use Shorts",inline="B")
showGrid = input.bool(false,"Show Grid",inline="B")

rsi = ta.rsi(src,rsiLength)

rsi_crossdn = ta.crossunder(rsi,oblvl)
rsi_crossup = ta.crossover(rsi,oslvl)

highest = ta.vwma(ta.highest(src,rsiLength),rsiLength)
lowest = ta.vwma(ta.lowest(src,rsiLength), rsiLength)

gridTop = ta.valuewhen(rsi_crossdn,highest,0)
gridBottom = ta.valuewhen(rsi_crossup,lowest,0)
gridMiddle = math.avg(gridTop,gridBottom)
gridMidTop = math.avg(gridMiddle,gridTop)
gridMidBottom = math.avg(gridMiddle,gridBottom)

diff1 = math.abs(src - gridTop)
diff2 = math.abs(src - gridBottom)
diff3 = math.abs(src - gridMiddle)
diff4 = math.abs(src - gridMidTop)
diff5 = math.abs(src - gridMidBottom)

minDiff = math.min(diff1, diff2, diff3, diff4, diff5)

// Determine which line is the closest
float closestLine = na
if minDiff == diff1
    closestLine := gridTop
else if minDiff == diff2
    closestLine := gridBottom
else if minDiff == diff3
    closestLine := gridMiddle
else if minDiff == diff4
    closestLine := gridMidTop
else if minDiff == diff5
    closestLine := gridMidBottom

buyCrosses = ta.crossover(src,gridTop) or ta.crossover(src,gridBottom) or ta.crossover(src,gridMiddle) or ta.crossover(src,gridMidTop) or ta.crossover(src,gridMidBottom)
sellCrosses= ta.crossunder(src,gridTop) or ta.crossunder(src,gridBottom) or ta.crossunder(src,gridMiddle) or ta.crossunder(src,gridMidTop) or ta.crossunder(src,gridMidBottom)

condition_bull = buyCrosses
condition_bear = sellCrosses

var float bull_status_line = na
var float bear_status_line = na
var float bull_buy_line = na
var float bear_sell_line = na

if condition_bull
    bull_status_line := closestLine
if condition_bear
    bear_status_line := closestLine

if bull_status_line == gridBottom
    bull_buy_line := gridMidBottom
if bull_status_line == gridMidBottom
    bull_buy_line := gridMiddle
if bull_status_line == gridMiddle
    bull_buy_line := gridMidTop
if bull_status_line == gridMidTop
    bull_buy_line := gridTop

if bear_status_line == gridTop
    bear_sell_line := gridMidTop
if bear_status_line == gridMidTop
    bear_sell_line := gridMiddle
if bear_status_line == gridMiddle
    bear_sell_line := gridMidBottom
if bear_status_line == gridMidBottom
    bear_sell_line := gridBottom

l = ta.crossover(src,bull_buy_line)
s = ta.crossunder(src,bear_sell_line)

if l
    strategy.entry("Long",strategy.long)
if s
    strategy.close("Long")
    if useShorts
        strategy.entry("Short",strategy.short)

// Plotting
in_buy = ta.barssince(l) < ta.barssince(s)
u=plot(bull_buy_line,color=na,title="Buy Plot")
d=plot(bear_sell_line,color=na,title="Sell Plot")

plot(not showGrid?na:gridBottom,color=color.new(color.white,75),title="Grid Line -2")
plot(not showGrid?na:gridMidBottom,color=color.new(color.white,75),title="Grid Line -1")
plot(not showGrid?na:gridMiddle,color=color.new(color.white,75),title="Grid Line 0")
plot(not showGrid?na:gridMidTop,color=color.new(color.white,75),title="Grid Line 1")
plot(not showGrid?na:gridTop,color=color.new(color.white,75),title="Grid Line 2")


fill(u,d,color=in_buy ? color.new(color.lime,75) : color.new(color.red,75))

अधिक