
यह एक व्यक्तिगत व्यापार रणनीति है जो गतिशीलता सूचकांक और के-लाइन इकाई फ़िल्टरिंग को जोड़ती है। यह रैंडम गतिशीलता सूचकांक, तेजी से आरएसआई और के-लाइन इकाई फ़िल्टरिंग के तीन तकनीकी संकेतकों का व्यापक रूप से उपयोग करता है, जो गतिशीलता के माध्यम से एक ब्रेकआउट प्राप्त करता है, जबकि ओवरबॉट और ओवरसोल्ड की रणनीति पर विचार करता है।
इस रणनीति में ट्रेडिंग सिग्नल का आकलन करने के लिए निम्नलिखित तीन संकेतकों का उपयोग किया गया हैः
यादृच्छिक गतिशीलता सूचकांक (एसएमआई): यह मूल्य गतिशीलता को मजबूत करने के लिए के-लाइन इकाई दूरी और समापन मूल्य की सापेक्ष स्थिति को जोड़ता है। एसएमआई पर सीमा रेखा को पार करते समय एक खरीद संकेत उत्पन्न होता है, और नीचे सीमा रेखा को पार करते समय एक बेचने का संकेत उत्पन्न होता है।
त्वरित आरएसआई ((7 दिन की रेखा): यह कीमतों के ओवरबॉय ओवरसोल की स्थिति का न्याय करता है। आरएसआई 20 से कम होने पर ओवरसोल के लिए एक खरीद संकेत उत्पन्न करता है, 80 से अधिक होने पर ओवरबॉय के लिए एक बेचने का संकेत उत्पन्न करता है।
K-लाइन इकाई फ़िल्टरिंगः 10 दिनों के भीतर औसत K-लाइन इकाई आकार की गणना करें, और जब आज की K-लाइन इकाई उस औसत से एक तिहाई से अधिक हो तो निष्क्रिय सिग्नल से बचें।
यह रणनीति पहले एसएमआई और आरएसआई संकेतों का आकलन करती है, और यदि यह संकेत संकेतकों में से एक के लिए संकेत आवश्यकताओं को पूरा करता है, तो यह निर्धारित करता है कि क्या यह संकेत प्रभावी है, और यदि यह प्रभावी है, तो यह एक व्यापारिक संकेत उत्पन्न करता है।
इस रणनीति के निम्नलिखित फायदे हैं:
कई सूचकांकों के संयोजन से निर्णय अधिक सटीक और विश्वसनीय होते हैं।
के-लाइन फ़िल्टर जोड़ा गया है ताकि शून्य संकेतों को रोका जा सके।
इस प्रकार, यह ट्रेंड रिवर्स बिंदु पर संकेतों को पकड़ने के लिए आसान है।
अधिक दो-तरफ़ा व्यापार, अधिक कमाई के अवसर।
एकल व्यापार में अत्यधिक नुकसान से बचने के लिए आंशिक व्यापारिक स्थिति का उपयोग करना
इस रणनीति के कुछ जोखिम भी हैं:
संकेतक के प्रभाव के तहत, गलत सिग्नल पैदा करने के लिए आसान है जिससे नुकसान होता है। पैरामीटर अनुकूलन के माध्यम से गलत सिग्नल को कम किया जा सकता है।
कुछ व्यापारियों को प्रत्येक दिशा में प्रवृत्ति के अवसरों का पूरा उपयोग करने में असमर्थ है। व्यापारियों को अधिक लाभ के लिए व्यापारिक स्थिति को बढ़ाने के लिए अनुमति दी जाती है।
एसएमआई, एक प्रमुख संकेतक के रूप में, पैरामीटर सेटिंग के प्रति संवेदनशील है, गलत सेटिंग से ट्रेडिंग के अवसरों को याद किया जा सकता है या गलत संकेतों को बढ़ाया जा सकता है।
बहु-हवाई, द्वि-दिशात्मक लेनदेन, बार-बार संचालन, लेनदेन की लागत में वृद्धि।
इस रणनीति को निम्नलिखित दिशाओं में और अधिक अनुकूलित किया जा सकता हैः
एसएमआई और आरएसआई के पैरामीटर को अनुकूलित करें और सर्वोत्तम पैरामीटर संयोजन ढूंढें।
ट्रेडों में उच्च रिटर्न के लिए स्थिति वृद्धि और स्थिति प्रबंधन तंत्र में वृद्धि।
स्टॉप लॉस रणनीति को बढ़ाएं और एकमुश्त नुकसान के जोखिम को कम करें।
और अधिक संकेतकों के साथ, संकेतों की विश्वसनीयता को कम करने के लिए, गलत संकेतों को कम करें।
उच्च दक्षता वाले अनुबंधों का उपयोग करें और लेनदेन की लागत को कम करें।
यह रणनीति एसएमआई, तेजी से आरएसआई और K लाइन इकाई फ़िल्टरिंग के तीन तकनीकी संकेतकों को एकीकृत करती है, जिससे एक गति-आधारित, ओवरबॉट और ओवरसेलिंग के साथ-साथ ओवरबॉट और ओवरसेलिंग की व्यक्तिगत ट्रेडिंग रणनीति प्राप्त की जा सकती है। यह निर्णय की सटीकता, प्रभावी संकेतों की पहचान, ओवरबॉट और ओवरसेलिंग और ओवरस्पेस ट्रेडिंग जैसे लाभों के साथ-साथ कुछ पैरामीटर संवेदनशीलता, ट्रेंड का पूरा लाभ नहीं उठाने, ऑपरेशन की आवृत्ति और अन्य जोखिमों के साथ है। पैरामीटर सेटिंग्स को लगातार अनुकूलित करके, स्थिति और स्टॉप लॉस प्रबंधन को बढ़ाने, गलत संकेतों को कम करने आदि के माध्यम से, यह रणनीति बेहतर व्यापार प्रभाव प्राप्त कर सकती है।
/*backtest
start: 2023-10-23 00:00:00
end: 2023-11-22 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Stochastic Strategy v1.2", shorttitle = "Stochastic str 1.2", 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")
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()