मूविंग एवरेज सिस्टम पर आधारित ग्रिड ट्रेडिंग रणनीति


निर्माण तिथि: 2024-01-03 17:18:22 अंत में संशोधित करें: 2024-01-03 17:18:22
कॉपी: 0 क्लिक्स: 1029
1
ध्यान केंद्रित करना
1621
समर्थक

मूविंग एवरेज सिस्टम पर आधारित ग्रिड ट्रेडिंग रणनीति

अवलोकन

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

रणनीति सिद्धांत

  1. 1-20 चक्रों के JMA औसत का उपयोग करके औसत संयोजन का गठन करें, बाजार की प्रवृत्ति का न्याय करें। जब लघु अवधि की औसत लंबी अवधि की औसत से अधिक होती है, तो इसे ऊपर की प्रवृत्ति के रूप में माना जाता है, इसके विपरीत, गिरावट की प्रवृत्ति।

  2. ट्रेडिंग को ट्रेंड टर्निंग पॉइंट पर खोलें, जब एक छोटी औसत रेखा एक लंबी औसत रेखा से ऊपर से नीचे की ओर या एक लंबी औसत रेखा से नीचे की ओर जाती है। ऊपर की ओर बढ़ने के लिए एक खाली सूची बनाएं; नीचे की ओर बढ़ने के लिए एक बहु-सूची बनाएं।

  3. यदि सक्रिय है, तो केवल लाल K लाइन पर खरीदें और हरे K लाइन पर बेचें, अन्यथा K लाइन के रंग को ध्यान में नहीं रखते हैं और केवल ट्रेंड रिवर्स पर व्यापार करते हैं।

  4. स्टॉप लॉस स्टॉप लॉस या एक्सपायरी स्टॉप लॉस को ट्रैक करता है। एक्सपायरी स्टॉप लॉस रणनीति के अंत में सभी पदों को समाप्त करता है।

श्रेष्ठता विश्लेषण

  1. औसत रेखा प्रणाली का उपयोग करके प्रवृत्ति का आकलन करने के लिए, बाजार में लंबे समय तक चलने वाले रुझानों के टर्निंग पॉइंट को प्रभावी ढंग से निर्धारित किया जा सकता है।

  2. ग्रिड ट्रेडिंग स्पष्ट रुझान के बिना बाजार के झटके से लाभ प्राप्त करने की अनुमति देता है। इसके अलावा, जोखिम को नियंत्रित करने के लिए स्टॉप लॉस की व्यवस्था की जा सकती है।

  3. JMA औसत रेखा पैरामीटर अनुकूलन योग्य है और विभिन्न चक्रों के लिए अनुकूलित किया जा सकता है।

  4. आप चुन सकते हैं कि क्या K-लाइन इकाई रंग फ़िल्टर करने के लिए, झूठी तोड़फोड़ से भटकने से बचने के लिए।

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

  1. बड़े पैमाने पर उतार-चढ़ाव वाले और स्पष्ट रूप से प्रवृत्ति वाले बाजारों में, स्टॉप लॉस का जोखिम अधिक होता है।

  2. औसत रेखा प्रणाली निर्णय त्रुटि may lead to ट्रेडिंग सिग्नल त्रुटि

  3. यदि K-लाइन फ़िल्टर सक्षम है, तो कुछ व्यापारिक अवसरों को याद करने का जोखिम है।

  4. यदि ग्रिड की दूरी बहुत बड़ी है, तो पर्याप्त लाभ प्राप्त नहीं किया जा सकता है; यदि यह बहुत छोटा है, तो स्थिति बहुत अधिक है, लागत का दबाव बहुत अधिक है।

अनुकूलन दिशा

  1. अधिक संयोजनों के लिए पैरामीटर का परीक्षण किया जा सकता है, विभिन्न किस्मों के लिए अधिक उपयुक्त JMA औसत संयोजनों को खोजने के लिए।

  2. BOLL चैनल, KD, आदि जैसे अन्य संकेतकों के साथ फ़िल्टर किया जा सकता है, जिससे सिग्नल की गुणवत्ता में सुधार होता है।

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

  4. अधिक प्रकार के नुकसान को रोकने के तरीकों पर विचार किया जा सकता है, जैसे कि कूदने का नुकसान, ट्रैक करने का नुकसान आदि।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2022-12-27 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=3
strategy(title = "Noro's Fishnet Strategy", shorttitle = "Fishnet str", overlay = true, 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")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
usecf = input(false, defval = false, title = "Use Color-filter")
fromyear = input(1900, defval = 1900, 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")

//JMA
jmax(src, len) =>
    beta = 0.45*(len-1)/(0.45*(len-1)+2)
    alpha = pow(beta, 3)
    L0=0.0, L1=0.0, L2=0.0, L3=0.0, L4=0.0
    L0 := (1-alpha)*src + alpha*nz(L0[1])
    L1 := (src - L0[0])*(1-beta) + beta*nz(L1[1])
    L2 := L0[0] + L1[0]
    L3 := (L2[0] - nz(L4[1]))*((1-alpha)*(1-alpha)) + (alpha*alpha)*nz(L3[1])
    L4 := nz(L4[1]) + L3[0]
	L4

ma01 = jmax(close, 10)
ma02 = jmax(close, 20)
ma03 = jmax(close, 30)
ma04 = jmax(close, 40)
ma05 = jmax(close, 50)
ma06 = jmax(close, 60)
ma07 = jmax(close, 70)
ma08 = jmax(close, 80)
ma09 = jmax(close, 90)
ma10 = jmax(close, 100)
ma11 = jmax(close, 110)
ma12 = jmax(close, 120)
ma13 = jmax(close, 130)
ma14 = jmax(close, 140)
ma15 = jmax(close, 150)
ma16 = jmax(close, 160)
ma17 = jmax(close, 170)
ma18 = jmax(close, 180)
ma19 = jmax(close, 190)
ma20 = jmax(close, 200)

trend = 0
trend := ma01 > ma20 ? 1 : ma01 < ma20 ? -1 : trend[1]
col = trend == 1 ? #00FF7F : #DC143C

plot(ma01, transp = 0, color = col)
plot(ma02, transp = 0, color = col)
plot(ma03, transp = 0, color = col)
plot(ma04, transp = 0, color = col)
plot(ma05, transp = 0, color = col)
plot(ma06, transp = 0, color = col)
plot(ma07, transp = 0, color = col)
plot(ma08, transp = 0, color = col)
plot(ma09, transp = 0, color = col)
plot(ma10, transp = 0, color = col)
plot(ma11, transp = 0, color = col)
plot(ma12, transp = 0, color = col)
plot(ma13, transp = 0, color = col)
plot(ma14, transp = 0, color = col)
plot(ma15, transp = 0, color = col)
plot(ma16, transp = 0, color = col)
plot(ma17, transp = 0, color = col)
plot(ma18, transp = 0, color = col)
plot(ma19, transp = 0, color = col)
plot(ma20, transp = 0, color = col)

//Trading
lot = 0.0
lot := strategy.equity / close * capital / 100

if trend == 1 and (close < open or usecf == false)
    strategy.entry("Long", strategy.long, needlong ? lot : na)

if trend == -1 and (close > open or usecf == false)
    strategy.entry("Short", strategy.short, needshort ? lot : na)