यह रणनीति व्यापार संकेत चयन के लिए मार्टिंगेल और बॉडी फिल्टर के साथ-साथ लंबे और छोटे संकेतों के लिए दोहरे स्टोकैस्टिक गति संकेतक (एसएमआई और आरएसआई) का उपयोग करती है, जिसका उद्देश्य मध्यम अवधि के रुझानों और मूल्य उतार-चढ़ाव को पकड़ना है।
यह रणनीति दो स्टोकैस्टिक संकेतक एसएमआई और आरएसआई का उपयोग करके लंबी और छोटी का आकलन करती है। एसएमआई की गणना बार रेंज और बंद मूल्य के चलती औसत के आधार पर की जाती है, उलट बिंदुओं की पहचान करने में अच्छी है। आरएसआई ओवरबॉट और ओवरसोल्ड स्थिति का निर्धारण करने के लिए बैल और भालू शक्ति की तुलना करता है। एसएमआई -50 से नीचे और आरएसआई 20 से नीचे होने पर रणनीति लंबी जाती है; एसएमआई 50 से ऊपर और आरएसआई 80 से ऊपर होने पर शॉर्ट जाती है।
झूठे ब्रेकआउट को फ़िल्टर करने के लिए, रणनीति 10 अवधि के शरीर एसएमए के 1/3 को भी ब्रेकआउट फ़िल्टर की स्थिति के रूप में उपयोग करती है। जब शरीर एसएमए के 1/3 के माध्यम से टूटता है, तो ब्रेकआउट को मान्य माना जाता है।
इसके अतिरिक्त, रणनीति वैकल्पिक मार्टिंगेल को अपनाती है, जो पिछले नुकसान को पुनर्प्राप्त करने का प्रयास करते हुए, खोने वाले ट्रेडों पर बहुत सारे को स्केल करना है।
बैकटेस्ट कार्यक्षमता एक दिनांक सीमा दर्ज करके रणनीति का बैकटेस्ट करती है.
यह रणनीति दोहरे स्टोकैस्टिक संकेतकों और फिल्टरों को जोड़ती है, जो प्रभावी रूप से उलट बिंदुओं की पहचान करने, मध्यम अवधि के रुझानों को पकड़ने और मूल्य उतार-चढ़ाव को ट्रैक करने में सक्षम हैं।
एसएमआई और आरएसआई मापदंडों को अनुकूलित करके जोखिम को कम किया जा सकता है ताकि पीछा करने/मारने की संभावना कम हो सके, स्केल-अप अनुपात और समय को नियंत्रित करके मार्टिंगेल का रणनीतिक रूप से उपयोग किया जा सके, और बाजार की स्थितियों के आधार पर फ़िल्टर को सक्षम किया जा सके।
यह रणनीति रिवर्स पॉइंट्स को कैप्चर करने के लिए दोहरे स्टोचैस्टिक इंडिकेटरों को जोड़ती है, जिसमें ट्रेड सिग्नल चयन और पीछा करने के लिए फिल्टर और मार्टिंगेल होते हैं। यह मध्यम अवधि के रुझानों की प्रभावी ढंग से पहचान कर सकता है और उच्च जीत दर का पीछा करने वाले निवेशकों के लिए उपयुक्त मूल्य उतार-चढ़ाव को ट्रैक कर सकता है। संकेतक पिछड़ने और बाजार जोखिमों की सीमा पर ध्यान दें, पैरामीटर अनुकूलन और स्टॉप लॉस द्वारा जोखिमों का प्रबंधन करें।
/*backtest start: 2022-09-30 00:00:00 end: 2023-10-06 00:00:00 period: 2d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // strategy(title = "CS Basic Scripts - Stochastic Special (Strategy)", shorttitle = "Stochastic Special", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") usemar = input(false, defval = false, title = "Use Martingale") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") usesmi = input(true, defval = true, title = "Use SMI Strategy") usersi = input(true, defval = true, title = "Use RSI Strategy") usebod = input(true, defval = true, title = "Use Body-Filter") a = input(5, "SMI Percent K Length") b = input(3, "SMI Percent D Length") limit = input(50, defval = 50, minval = 1, maxval = 100, title = "SMI Limit") //Backtesting Input Range fromyear = input(2017, defval = 2017, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Fast RSI fastup = rma(max(change(close), 0), 7) fastdown = rma(-min(change(close), 0), 7) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //Stochastic Momentum Index ll = lowest (low, a) hh = highest (high, a) diff = hh - ll rdiff = close - (hh+ll)/2 avgrel = ema(ema(rdiff,b),b) avgdiff = ema(ema(diff,b),b) SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0 SMIsignal = ema(SMI,b) //Lines plot(SMI, color = blue, linewidth = 3, title = "Stochastic Momentum Index") plot(SMIsignal, color = red, linewidth = 3, title = "SMI Signal Line") plot(limit, color = black, title = "Over Bought") plot(-1 * limit, color = black, title = "Over Sold") plot(0, color = blue, title = "Zero Line") //Body Filter nbody = abs(close - open) abody = sma(nbody, 10) body = nbody > abody / 3 or usebod == false //Signals up1 = SMI < -1 * limit and close < open and body and usesmi dn1 = SMI > limit and close > open and body and usesmi up2 = fastrsi < 20 and close < open and body and usersi dn2 = fastrsi > 80 and close > open and body and usersi exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body //Trading profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1] mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1 lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1] if up1 or up2 if strategy.position_size < 0 strategy.close_all() strategy.entry("long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn1 or dn2 if strategy.position_size > 0 strategy.close_all() strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) or exit strategy.close_all()