यह रणनीति बाजार के रुझानों को निर्धारित करने और आरएसआई संकेतकों में उतार-चढ़ाव होने पर कुशल ग्रिड ट्रेडिंग के लिए ग्रिड पदों को स्थापित करने के लिए विभिन्न समय सीमाओं के साथ 7 आरएसआई संकेतकों का उपयोग करती है। इस रणनीति को
यह रणनीति विभिन्न समय सीमाओं (1 मिनट, 5 मिनट, 15 मिनट, 30 मिनट, 1 घंटे, 2 घंटे और 1 दिन) के साथ 7 आरएसआई संकेतकों का उपयोग करती है। जब सभी 7 आरएसआई संकेतकों को एक साथ ओवरबॉट लाइन से कम किया जाता है, तो एक खरीद संकेत उत्पन्न होता है। जब सभी 7 आरएसआई संकेतकों को एक साथ ओवरसोल्ड लाइन से अधिक किया जाता है, तो एक बिक्री संकेत उत्पन्न होता है।
खरीदने और बेचने के संकेतों के आधार पर, 20 ऑर्डर निश्चित प्रतिशत मूल्य अंतराल के साथ वर्तमान मूल्य के आसपास रखे जाते हैं। उदाहरण के लिए, यदि प्रवेश मूल्य $100 है और ऑर्डर के बीच का अंतराल 2% है, तो ऑर्डर की कीमतें $98, $96... $60 तक होंगी।
जब मूल्य ऑर्डर की कीमतों में से किसी एक को छूता है, तो एक ऑर्डर पूरा हो जाता है और एक स्थिति स्थापित होती है। लाभ लेने का कार्य तब होता है जब एक निश्चित प्रतिशत लाभ लेने का कार्य किया जाता है।
कई संकेतकों का उपयोग करने से बाजार की प्रवृत्ति की गलत व्याख्या से बचा जाता है। सटीक निर्णयों के लिए 7 समय सीमाओं में अल्पकालिक और मध्यम-लंबी अवधि के प्रवृत्ति परिवर्तन शामिल हैं।
आरएसआई संकेतक अत्यधिक खरीदे गए और अत्यधिक बेचे गए स्तरों की विश्वसनीयता से पहचान करता है, उच्च खरीद और निम्न बिक्री से बचता है।
ग्रिड ऑर्डर कुशलतापूर्वक पदों में प्रवेश करते हैं, रैली और गिरावट का पीछा करने से बचते हैं। फ्लैट बाजारों में क्रमिक प्रविष्टियां प्रवेश लागतों के अनुकूलन की अनुमति देती हैं।
लाभ और स्टॉप लॉस सेटिंग्स जोखिम प्रबंधन में सहायता करती हैं और चरम चाल के दौरान हानि जोखिम को कम करती हैं।
ग्रिड में तेज मूल्य आंदोलन हो सकते हैं। इसे ग्रिड अंतराल को उचित रूप से सेट करके और मार्जिन में जोड़कर संबोधित किया जा सकता है।
बहुत करीब रखे गए स्टॉप लॉस में अनावश्यक स्लिपज लागत हो सकती है। अस्थिरता के आधार पर उचित रूप से व्यापक स्टॉप इष्टतम है।
कुछ आरएसआई संकेतक गलत संकेत उत्पन्न कर सकते हैं। कुछ आरएसआई समय सीमाओं को फ़िल्टर करने से मुद्दों को अलग किया जा सकता है।
प्रवेश और निकास रणनीतियों को परिष्कृत करने के लिए मापदंडों और वैकल्पिक निर्णय तर्क के विभिन्न संयोजनों का परीक्षण किया जा सकता है।
उच्च अस्थिरता वातावरण के दौरान व्यापक अंतराल के साथ ग्रिड अंतराल को स्वचालित रूप से समायोजित करने के लिए अस्थिरता मीट्रिक को शामिल करें।
खाता इक्विटी के आधार पर अधिकतम स्थिति आकार, ग्रिड अंतराल आदि को गतिशील रूप से बदलने के लिए पूंजी प्रबंधन मॉड्यूल जोड़ें।
यह रणनीति बाजार के रुझानों को निर्धारित करने के लिए मल्टी-टाइमफ्रेम आरएसआई संकेतकों को जोड़ती है, जो रेंजिंग बाजारों के दौरान ग्रिड पदों को कुशलतापूर्वक स्थापित करती है। लागत अनुकूलन, लाभ लेने, घाटे में कटौती और जोखिम नियंत्रण के फायदे इसे उन व्यापारियों के लिए उपयुक्त बनाते हैं जो परिभाषित जोखिमों को सहन करते हुए रेंजिंग बाजारों पर पूंजीकरण करना चाहते हैं। विशिष्ट जोखिम भूख के अनुरूप आगे परिष्करण और अनुकूलन संभव हैं।
/*backtest start: 2023-11-15 00:00:00 end: 2023-11-22 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] args: [["MinLot",0.001,358374]] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © rrolik66 //@version=4 strategy(title="7-RSI strategy", overlay=true) // inputs src = input(close, "Source RSI", type = input.source) bot_res = input(title="Bot period", type=input.resolution, defval="1") srcin_bot = input(ohlc4, "Source Bot", type = input.source) src_bot = security(syminfo.tickerid, bot_res, srcin_bot) tradeDirection = input(title="Trade Direction", type=input.string, options=["Long Bot", "Short Bot"], defval="Long Bot") rsi1_res = input(title="RSI-1 period", type=input.resolution, defval="1", group="indicators") rsi1_Len = input(14, minval=1, title="RSI-1 Length", group="indicators") rsi2_res = input(title="RSI-2 period", type=input.resolution, defval="5", group="indicators") rsi2_Len = input(14, minval=1, title="RSI-2 Length", group="indicators") rsi3_res = input(title="RSI-3 period", type=input.resolution, defval="15", group="indicators") rsi3_Len = input(14, minval=1, title="RSI-3 Length", group="indicators") rsi4_res = input(title="RSI-4 period", type=input.resolution, defval="30", group="indicators") rsi4_Len = input(14, minval=1, title="RSI-4 Length", group="indicators") rsi5_res = input(title="RSI-5 period", type=input.resolution, defval="60", group="indicators") rsi5_Len = input(14, minval=1, title="RSI-5 Length", group="indicators") rsi6_res = input(title="RSI-6 period", type=input.resolution, defval="120", group="indicators") rsi6_Len = input(14, minval=1, title="RSI-6 Length", group="indicators") rsi7_res = input(title="RSI-7 period", type=input.resolution, defval="1D", group="indicators") rsi7_Len = input(14, minval=1, title="RSI-7 Length", group="indicators") longProfitPerc = input(title="Long Bot Take Profit (%)", type=input.float, minval=0.0, step=0.05, defval=0.5, group="Long Bot") * 0.01 st_long_orders = input(title="Long Bot Step orders (%)", type=input.float, minval=0.0, step=0.1, defval=2.0, group="Long Bot") * 0.01 rsi1_low = input(100, title="RSI-1 <", group="Long Bot") rsi2_low = input(100, title="RSI-2 <", group="Long Bot") rsi3_low = input(100, title="RSI-3 <", group="Long Bot") rsi4_low = input(100, title="RSI-4 <", group="Long Bot") rsi5_low = input(100, title="RSI-5 <", group="Long Bot") rsi6_low = input(100, title="RSI-6 <", group="Long Bot") rsi7_low = input(100, title="RSI-7 <", group="Long Bot") shortProfitPerc = input(title="Short Bot Take Profit (%)", type=input.float, minval=0.0, step=0.05, defval=0.5, group="Short Bot") * 0.01 st_short_orders = input(title="Short Bot Step orders (%)", type=input.float, minval=0.0, step=0.1, defval=2.0, group="Short Bot") * 0.01 rsi1_up = input(0, title="RSI-1 >", group="Short Bot") rsi2_up = input(0, title="RSI-2 >", group="Short Bot") rsi3_up = input(0, title="RSI-3 >", group="Short Bot") rsi4_up = input(0, title="RSI-4 >", group="Short Bot") rsi5_up = input(0, title="RSI-5 >", group="Short Bot") rsi6_up = input(0, title="RSI-6 >", group="Short Bot") rsi7_up = input(0, title="RSI-7 >", group="Short Bot") //indicators rsi1 = rsi(src, rsi1_Len) rsi1_sec = security(syminfo.tickerid, rsi1_res, rsi1) rsi2 = rsi(src, rsi2_Len) rsi2_sec = security(syminfo.tickerid, rsi2_res, rsi2) rsi3 = rsi(src, rsi3_Len) rsi3_sec = security(syminfo.tickerid, rsi3_res, rsi3) rsi4 = rsi(src, rsi4_Len) rsi4_sec = security(syminfo.tickerid, rsi4_res, rsi4) rsi5 = rsi(src, rsi5_Len) rsi5_sec = security(syminfo.tickerid, rsi5_res, rsi5) rsi6 = rsi(src, rsi6_Len) rsi6_sec = security(syminfo.tickerid, rsi6_res, rsi6) rsi7 = rsi(src, rsi7_Len) rsi7_sec = security(syminfo.tickerid, rsi7_res, rsi7) //RSI rsi1_up_signal = rsi1_sec > rsi1_up rsi1_low_signal = rsi1_sec < rsi1_low rsi2_up_signal = rsi2_sec > rsi2_up rsi2_low_signal = rsi2_sec < rsi2_low rsi3_up_signal = rsi3_sec > rsi3_up rsi3_low_signal = rsi3_sec < rsi3_low rsi4_up_signal = rsi4_sec > rsi4_up rsi4_low_signal = rsi4_sec < rsi4_low rsi5_up_signal = rsi5_sec > rsi5_up rsi5_low_signal = rsi5_sec < rsi5_low rsi6_up_signal = rsi6_sec > rsi6_up rsi6_low_signal = rsi6_sec < rsi6_low rsi7_up_signal = rsi7_sec > rsi7_up rsi7_low_signal = rsi7_sec < rsi7_low //Buy & Sell Buy = rsi1_low_signal and rsi2_low_signal and rsi3_low_signal and rsi4_low_signal and rsi5_low_signal and rsi6_low_signal and rsi7_low_signal Sell = rsi1_up_signal and rsi2_up_signal and rsi3_up_signal and rsi4_up_signal and rsi5_up_signal and rsi6_up_signal and rsi7_up_signal // input into trading conditions longOK = (tradeDirection == "Long Bot") shortOK = (tradeDirection == "Short Bot") // in entry orders price longEntryPrice1 = src_bot * (1 - (st_long_orders)) longEntryPrice2 = src_bot * (1 - (st_long_orders*2)) longEntryPrice3 = src_bot * (1 - (st_long_orders*3)) longEntryPrice4 = src_bot * (1 - (st_long_orders*4)) longEntryPrice5 = src_bot * (1 - (st_long_orders*5)) longEntryPrice6 = src_bot * (1 - (st_long_orders*6)) longEntryPrice7 = src_bot * (1 - (st_long_orders*7)) longEntryPrice8 = src_bot * (1 - (st_long_orders*8)) longEntryPrice9 = src_bot * (1 - (st_long_orders*9)) longEntryPrice10 = src_bot * (1 - (st_long_orders*10)) longEntryPrice11 = src_bot * (1 - (st_long_orders*11)) longEntryPrice12 = src_bot * (1 - (st_long_orders*12)) longEntryPrice13 = src_bot * (1 - (st_long_orders*13)) longEntryPrice14 = src_bot * (1 - (st_long_orders*14)) longEntryPrice15 = src_bot * (1 - (st_long_orders*15)) longEntryPrice16 = src_bot * (1 - (st_long_orders*16)) longEntryPrice17 = src_bot * (1 - (st_long_orders*17)) longEntryPrice18 = src_bot * (1 - (st_long_orders*18)) longEntryPrice19 = src_bot * (1 - (st_long_orders*19)) shortEntryPrice1 = src_bot * (1 + st_short_orders) shortEntryPrice2 = src_bot * (1 + (st_short_orders*2)) shortEntryPrice3 = src_bot * (1 + (st_short_orders*3)) shortEntryPrice4 = src_bot * (1 + (st_short_orders*4)) shortEntryPrice5 = src_bot * (1 + (st_short_orders*5)) shortEntryPrice6 = src_bot * (1 + (st_short_orders*6)) shortEntryPrice7 = src_bot * (1 + (st_short_orders*7)) shortEntryPrice8 = src_bot * (1 + (st_short_orders*8)) shortEntryPrice9 = src_bot * (1 + (st_short_orders*9)) shortEntryPrice10 = src_bot * (1 + (st_short_orders*10)) shortEntryPrice11 = src_bot * (1 + (st_short_orders*11)) shortEntryPrice12 = src_bot * (1 + (st_short_orders*12)) shortEntryPrice13 = src_bot * (1 + (st_short_orders*13)) shortEntryPrice14 = src_bot * (1 + (st_short_orders*14)) shortEntryPrice15 = src_bot * (1 + (st_short_orders*15)) shortEntryPrice16 = src_bot * (1 + (st_short_orders*16)) shortEntryPrice17 = src_bot * (1 + (st_short_orders*17)) shortEntryPrice18 = src_bot * (1 + (st_short_orders*18)) shortEntryPrice19 = src_bot * (1 + (st_short_orders*19)) // take profit price longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) // take profit values for confirmation plot(series=(strategy.position_size > 0) ? longExitPrice : na, color=color.green, style=plot.style_circles, linewidth=3, title="Long Take Profit") plot(series=(strategy.position_size < 0) ? shortExitPrice : na, color=color.red, style=plot.style_circles, linewidth=3, title="Short Take Profit") // entry orders if (strategy.position_size == 0) strategy.order(id="Long0", long=true, limit=src_bot, when=longOK and Buy) strategy.order(id="Long1", long=true, limit=longEntryPrice1, when=longOK and Buy) strategy.order(id="Long2", long=true, limit=longEntryPrice2, when=longOK and Buy) strategy.order(id="Long3", long=true, limit=longEntryPrice3, when=longOK and Buy) strategy.order(id="Long4", long=true, limit=longEntryPrice4, when=longOK and Buy) strategy.order(id="Long5", long=true, limit=longEntryPrice5, when=longOK and Buy) strategy.order(id="Long6", long=true, limit=longEntryPrice6, when=longOK and Buy) strategy.order(id="Long7", long=true, limit=longEntryPrice7, when=longOK and Buy) strategy.order(id="Long8", long=true, limit=longEntryPrice8, when=longOK and Buy) strategy.order(id="Long9", long=true, limit=longEntryPrice9, when=longOK and Buy) strategy.order(id="Long10", long=true, limit=longEntryPrice10, when=longOK and Buy) strategy.order(id="Long11", long=true, limit=longEntryPrice11, when=longOK and Buy) strategy.order(id="Long12", long=true, limit=longEntryPrice12, when=longOK and Buy) strategy.order(id="Long13", long=true, limit=longEntryPrice13, when=longOK and Buy) strategy.order(id="Long14", long=true, limit=longEntryPrice14, when=longOK and Buy) strategy.order(id="Long15", long=true, limit=longEntryPrice15, when=longOK and Buy) strategy.order(id="Long16", long=true, limit=longEntryPrice16, when=longOK and Buy) strategy.order(id="Long17", long=true, limit=longEntryPrice17, when=longOK and Buy) strategy.order(id="Long18", long=true, limit=longEntryPrice18, when=longOK and Buy) strategy.order(id="Long19", long=true, limit=longEntryPrice19, when=longOK and Buy) if (strategy.position_size == 0) strategy.order(id="Short0", long=false, limit=src_bot, when=shortOK and Sell) strategy.order(id="Short1", long=false, limit=shortEntryPrice1, when=shortOK and Sell) strategy.order(id="Short2", long=false, limit=shortEntryPrice2, when=shortOK and Sell) strategy.order(id="Short3", long=false, limit=shortEntryPrice3, when=shortOK and Sell) strategy.order(id="Short4", long=false, limit=shortEntryPrice4, when=shortOK and Sell) strategy.order(id="Short5", long=false, limit=shortEntryPrice5, when=shortOK and Sell) strategy.order(id="Short6", long=false, limit=shortEntryPrice6, when=shortOK and Sell) strategy.order(id="Short7", long=false, limit=shortEntryPrice7, when=shortOK and Sell) strategy.order(id="Short8", long=false, limit=shortEntryPrice8, when=shortOK and Sell) strategy.order(id="Short9", long=false, limit=shortEntryPrice9, when=shortOK and Sell) strategy.order(id="Short10", long=false, limit=shortEntryPrice10, when=shortOK and Sell) strategy.order(id="Short11", long=false, limit=shortEntryPrice11, when=shortOK and Sell) strategy.order(id="Short12", long=false, limit=shortEntryPrice12, when=shortOK and Sell) strategy.order(id="Short13", long=false, limit=shortEntryPrice13, when=shortOK and Sell) strategy.order(id="Short14", long=false, limit=shortEntryPrice14, when=shortOK and Sell) strategy.order(id="Short15", long=false, limit=shortEntryPrice15, when=shortOK and Sell) strategy.order(id="Short16", long=false, limit=shortEntryPrice16, when=shortOK and Sell) strategy.order(id="Short17", long=false, limit=shortEntryPrice17, when=shortOK and Sell) strategy.order(id="Short18", long=false, limit=shortEntryPrice18, when=shortOK and Sell) strategy.order(id="Short19", long=false, limit=shortEntryPrice19, when=shortOK and Sell) // exit position based on take profit price if (strategy.position_size > 0) strategy.order(id="exit_Long", long=false, limit=longExitPrice, qty=strategy.position_size) if (strategy.position_size < 0) strategy.order(id="exit_Short", long=true, limit=shortExitPrice, qty=abs(strategy.position_size))