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

लेखक:चाओझांग, दिनांक: 2023-11-23 15:18:27
टैगः

img

अवलोकन

यह एक व्यक्तिगत ट्रेडिंग रणनीति है जो गति संकेतक और कैंडलस्टिक इकाई फ़िल्टरिंग को जोड़ती है। यह व्यापक रूप से तीन तकनीकी संकेतकों का उपयोग करता है - स्टोचैस्टिक गति सूचकांक, तेजी से आरएसआई और कैंडलस्टिक इकाई फ़िल्टरिंग एक गति सफलता-आधारित रणनीति को लागू करने के लिए जबकि ओवरबॉट और ओवरसोल्ड स्थितियों पर भी विचार किया जाता है।

व्यापारिक तर्क

रणनीति ट्रेडिंग सिग्नल के लिए निम्नलिखित तीन संकेतकों का उपयोग करती है:

  1. स्टोकैस्टिक मोमेंटम इंडेक्स (एसएमआई): यह मूल्य गति की ताकत या कमजोरी का न्याय करने के लिए कैंडलस्टिक संस्थाओं और समापन मूल्य की सापेक्ष स्थिति के बीच की दूरी को जोड़ती है। यह एक खरीद संकेत उत्पन्न करता है जब एसएमआई सीमा रेखा के ऊपर और एक बिक्री संकेत जब सीमा रेखा के नीचे पार करता है।

  2. फास्ट आरएसआई (7-दिवसीय रेखा): यह कीमतों के ओवरबॉट और ओवरसोल्ड स्थितियों का न्याय करता है। 20 से नीचे आरएसआई ओवरसोल्ड के रूप में एक खरीद संकेत उत्पन्न करता है जबकि 80 से ऊपर ओवरसोल्ड के रूप में एक बिक्री संकेत उत्पन्न करता है।

  3. कैंडलस्टिक इकाई फ़िल्टर: पिछले 10 दिनों में औसत कैंडलस्टिक इकाई आकार की गणना करें। केवल संकेत को सक्षम करें जब आज की कैंडलस्टिक इकाई उस औसत के एक तिहाई से अधिक हो ताकि अमान्य संकेतों से बचा जा सके।

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

लाभ विश्लेषण

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

  1. कई संकेतकों के संयोजन से निर्णय अधिक सटीक और विश्वसनीय होता है।

  2. कैंडलस्टिक इकाई फ़िल्टर का जोड़ने से अमान्य संकेतों से बचा जाता है.

  3. ओवरबॉट/ओवरसोल्ड स्थितियों को मिलाकर, ट्रेंड रिवर्स पॉइंट्स पर संकेतों को पकड़ना आसान है।

  4. दो-दिशात्मक लंबी/छोटी ट्रेडिंग के साथ लाभ के अवसर बढ़े।

  5. आंशिक स्थिति व्यापार से अत्यधिक एकमुश्त घाटे से बचा जाता है।

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

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

  1. संकेतकों से गलत संकेत उत्पन्न हो सकते हैं जिससे नुकसान हो सकता है। पैरामीटर अनुकूलन से गलत संकेत कम हो सकते हैं।

  2. आंशिक स्थिति व्यापार प्रत्येक दिशा में प्रवृत्ति के अवसरों का पूरी तरह से उपयोग नहीं कर सकता है। व्यापारिक स्थिति के आकार को बढ़ाकर उच्च रिटर्न प्राप्त किया जा सकता है।

  3. मुख्य संकेतक के रूप में, एसएमआई पैरामीटर सेटिंग्स के प्रति संवेदनशील है। अनुचित कॉन्फ़िगरेशन ट्रेडिंग अवसरों को याद कर सकता है या झूठे संकेतों को बढ़ा सकता है।

  4. दो-दिशात्मक रणनीति के साथ लगातार व्यापार करने से लेनदेन की लागत बढ़ जाती है।

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

इस रणनीति को निम्नलिखित पहलुओं में और अधिक अनुकूलित किया जा सकता हैः

  1. सर्वोत्तम पैरामीटर संयोजन खोजने के लिए एसएमआई और आरएसआई के लिए मापदंडों का अनुकूलन करें।

  2. रुझानों के दौरान उच्च रिटर्न प्राप्त करने के लिए स्थिति आकार और स्थिति प्रबंधन तंत्र को बढ़ाना।

  3. एक बार के नुकसान के जोखिम को कम करने के लिए स्टॉप लॉस रणनीतियाँ जोड़ें।

  4. सिग्नल की विश्वसनीयता का आकलन करने और झूठे संकेतों को कम करने के लिए अधिक संकेतकों को मिलाएं।

  5. लेन-देन की लागत को कम करने के लिए कुशल अनुबंधों को अपनाना।

निष्कर्ष

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


/*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()

अधिक