डोंचियन चैनल अनुकूलन प्रवृत्ति रणनीति

लेखक:चाओझांग, दिनांक: 2023-10-26 15:58:52
टैगः

img

अवलोकन

यह रणनीति ट्रेंड ट्रेडिंग के लिए बाजार के रुझानों को अनुकूली रूप से ट्रैक करने के लिए डोंचियन चैनल संकेतक का उपयोग करती है। यह ट्रेंड का पालन करता है जब कीमत डोंचियन चैनल के माध्यम से टूटती है और जब कीमत चैनल में वापस गिरती है तो घाटे में कटौती करती है।

रणनीति तर्क

  1. एक निश्चित अवधि के दौरान सबसे अधिक उच्च और सबसे कम निम्न गणना करें ताकि डोंचियन चैनल का गठन हो सके। चैनल की मध्य रेखा सबसे अधिक उच्च और सबसे कम निम्न का औसत है।

  2. जब कीमत चैनल के ऊपरी बैंड से ऊपर टूटती है तो लंबी स्थिति खोलें। जब कीमत निचले बैंड से नीचे टूटती है तो छोटी स्थिति खोलें।

  3. पदों को खोलने के बाद, स्टॉप लॉस चैनल की मध्य रेखा को ट्रैक करता है। लाभ लें चैनल से बाहर निकलने वाली कीमत को एक निश्चित प्रतिशत तक ट्रैक करता है।

  4. घाटे में कटौती करें और जब मूल्य चैनल में वापस गिरता है तो पदों को बंद करें।

लाभ विश्लेषण

  1. यह रणनीति ट्रेंड की दिशा निर्धारित करने और तेजी से ब्रेकआउट को पकड़ने के लिए डोंचियन चैनल का उपयोग करती है।

  2. स्टॉप लॉस के लिए चैनल की मध्य रेखा का उपयोग लाभ की रक्षा करता है।

  3. लाभ लक्ष्य को उपयोगकर्ता द्वारा परिभाषित लाभ प्रतिशत के अनुसार बढ़ाया जाता है।

  4. यह विभिन्न बाजार स्थितियों जैसे समेकन, ब्रेकआउट, पॉलबैक आदि के अनुकूल होता है और लचीले ढंग से स्थिति आकार को समायोजित करता है।

  5. सरल और स्पष्ट व्यापारिक तर्क, समझने और मास्टर करने में आसान।

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

  1. यह रणनीति केवल ब्रेकआउट का कारोबार करती है और प्रभावी रूप से समेकन का प्रबंधन नहीं कर सकती है।

  2. झूठे ब्रेकआउट सिग्नल का खतरा है, सत्यापन के लिए अन्य संकेतकों की आवश्यकता है।

  3. गलत स्टॉप लॉस और ले लाभ सेटिंग्स से समय से पहले बाहर निकलने या अपर्याप्त लाभ हो सकता है।

  4. गलत चैनल अवधि सेटिंग ट्रेडिंग संकेतों की सटीकता को प्रभावित करती है।

  5. अत्यधिक स्थिति आकार बाजार में उतार-चढ़ाव के जोखिम को बढ़ाता है।

  6. रोबोट के अप्रत्याशित रुकावट के जोखिम मौजूद हैं, सिस्टम की विश्वसनीयता सुनिश्चित करें।

सुधार दिशाएँ

  1. झूठे ब्रेकआउट का पीछा करने से बचने के लिए वॉल्यूम संकेतक जोड़ें।

  2. प्रवेश संकेत की सटीकता में सुधार के लिए प्रवृत्ति संकेतक फ़िल्टर बढ़ाएं।

  3. गतिशील स्टॉप लॉस और लाभ लेने के एल्गोरिदम का अनुकूलन करें।

  4. वास्तविक समय बाजार की स्थितियों के आधार पर स्थिति आकार रणनीति को समायोजित करें।

  5. बेहतर प्रवेश समय के लिए रात भर और पूर्व-बाजार डेटा का शोध करें।

  6. इष्टतम संयोजन खोजने के लिए विभिन्न पैरामीटर अवधि का परीक्षण करें।

  7. ओवरफिटिंग से बचने के लिए मॉडल वैलिडेशन जोड़ें।

निष्कर्ष

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


/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2020

//@version=4
strategy(title = "Noro's Donchian Strategy", shorttitle = "Donchian str", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 100, default_qty_value = 100, commission_value = 0.1)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
tp = input(defval = 10, minval = 1, title = "Take profit")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
pclen = input(50, minval = 1, title = "Price Channel Length")
showll = input(true, defval = true, title = "Show lines")
showbg = input(false, defval = false, title = "Show Background")
showof = input(true, defval = true, title = "Show Offset")
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")

//Price Channel
h = highest(high, pclen)
l = lowest(low, pclen)
center = (h + l) / 2
tpl = h * (100 + tp) / 100
tps = l * (100 - tp) / 100

//Lines
tpcol = showll ? color.lime : na
pccol = showll ? color.blue : na
slcol = showll ? color.red : na
offset = showof ? 1 : 0
plot(tpl, offset = offset, color = tpcol, title = "TP Long")
plot(h, offset = offset, color = pccol, title = "Channel High")
plot(center, offset = offset, color = slcol, title = "Cannel Center")
plot(l, offset = offset, color = pccol, title = "Channel Low")
plot(tps, offset = offset, color = tpcol, title = "TP Short")

//Background
size = strategy.position_size
bgcol = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(bgcol, transp = 70)

//Trading
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
mo = 0
mo := strategy.position_size != 0 ? 0 : high >= center and low <= center ? 1 : mo[1]
if h > 0
    strategy.entry("Long", strategy.long, lot, stop = h, when = strategy.position_size <= 0 and needlong and truetime and mo)
    strategy.exit("TP Long", "Long", limit = tpl, stop = center)
    strategy.entry("Short", strategy.short, lot, stop = l, when = strategy.position_size >= 0 and needshort and truetime and mo)
    strategy.exit("TP Short", "Short", limit = tps, stop = center)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")

अधिक