डोंचियन चैनल्स ब्रेकआउट मात्रात्मक व्यापार रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-08 11:00:05
टैगः

img

अवलोकन

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

सिद्धांत

यह रणनीति डॉनचियन चैनल सूचक पर आधारित है। डॉनचियन चैनल एक निश्चित अवधि के दौरान उच्चतम और निम्नतम कीमतों द्वारा खींचे गए चैनल हैं। इसकी गणना विधि हैः

ऊपरी रेल = पिछले n अवधियों में उच्चतम मूल्य लोअर रेल = पिछले n अवधियों में सबसे कम कीमत

जब कीमतें ऊपरी रेल को तोड़ती हैं, तो यह माना जाता है कि एक लंबी प्रवृत्ति शुरू हो गई है। जब कीमतें निचली रेल को तोड़ती हैं, तो यह माना जाता है कि एक छोटी प्रवृत्ति शुरू हो गई है। यह रणनीति केवल उन मामलों पर विचार करती है जब ऊपरी रेल टूट जाती है।

व्यापार का विशिष्ट तर्क हैः

  1. पिछले n अवधियों में उच्चतम मूल्य का उपयोग करते हुए डॉनचियन चैनलों के ऊपरी रेल को प्लॉट करें
  2. जब समापन मूल्य ऊपरी रेल के माध्यम से टूट जाता है, लंबे समय तक जाना
  3. ट्रेलिंग स्टॉप द्वारा लाभ लेना जब बंद मूल्य निचले रेल के पास या पूर्व निर्धारित स्टॉप लॉस बिंदु पर वापस गिरता है

लाभ

इस रणनीति के लाभों में निम्नलिखित शामिल हैंः

  1. रणनीतिक विचार स्पष्ट और समझने और लागू करने में आसान है
  2. डोंचियन चैनल प्रवृत्ति की दिशा का आकलन करने के लिए एक परिपक्व और विश्वसनीय संकेतक है
  3. यह मैन्युअल हस्तक्षेप के बिना स्वचालित रूप से चैनलों की पहचान करता है
  4. अनुकूलन योग्य पैरामीटर इसे अत्यधिक अनुकूलन योग्य बनाते हैं
  5. इसमें हानि को सीमित करने के लिए स्टॉप लॉस तंत्र शामिल हैं

जोखिम

कुछ जोखिम भी हैं:

  1. Donchian चैनलों अनावश्यक नुकसान का कारण, झूठी breakouts हो सकता है
  2. गलत स्टॉप लॉस पोजिशनिंग से नुकसान बढ़ सकता है
  3. जब कीमत चैनल रेल के पास हो तो रिवर्स जोखिम पर ध्यान दें
  4. अपर्याप्त पैरामीटर सेटिंग्स से रणनीति के प्रदर्शन पर नकारात्मक प्रभाव पड़ सकता है

समाधान:

  1. झूठे ब्रेकआउट से बचने के लिए अन्य संकेतकों को शामिल करके फ़िल्टर जोड़ें
  2. चिकनी निकास के लिए स्टॉप लॉस पोजिशनिंग का अनुकूलन करें
  3. स्थिति के आकार को बढ़ाने या लाभ सीमा को चौड़ा करने पर विचार करें जब कीमत चैनल रेल के करीब हो
  4. इष्टतम मान खोजने के लिए विभिन्न मापदंडों का परीक्षण करें

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

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

  1. झूठे ब्रेकआउट से बचने के लिए एमएसीडी, केडी जैसे अन्य संकेतक जोड़ें
  2. स्टॉप लॉस तंत्र को अनुकूलित करें, जैसे स्टॉप लॉस को स्थानांतरित करना
  3. प्रतिभागी दर नियंत्रण को अनुकूलित करें, उदाहरण के लिए केवल अस्थिरता बढ़ने पर व्यापार करें
  4. इष्टतम संयोजन खोजने के लिए पैरामीटर अनुकूलन

सारांश

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


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Giovanni_Trombetta

// Strategy to capture price channel breakouts

//@version=4
strategy("ChannelsBreakout", max_bars_back=50, overlay=true)

instrument = input(1, title = "Select 1: Stock/Forex, 2: Future")
money = input(10000, title = "Money for each trade")
backtest_start = input(2000, "Insert first year to backtest")
period = input(50, title = "Period in bars of Donchian Channel")
monetary_stoploss = input(1000, title = "Monetary Stop Loss")

quantity = if instrument != 1 
    1
else
    int(money / close)
    
upBarrier = highest(high,period)
downBarrier = lowest(low,period)
up = highest(high,period / 4)
down = lowest(low,period / 4)

plot(upBarrier, color=color.green, linewidth=2)
plot(downBarrier, color=color.red, linewidth=2)
plot(up, color=color.lime, linewidth=1)
plot(down, color=color.orange, linewidth=2)

longCondition = crossover(close, upBarrier[1]) and year >= backtest_start

if (longCondition)
    strategy.entry("Long", strategy.long, quantity, when = strategy.position_size == 0)

closeCondition = crossunder(close, down[1]) or down < down[1]

if (closeCondition)
    strategy.close("Long", comment = "Trailing")
    
stop_level = strategy.position_avg_price - monetary_stoploss / strategy.position_size
strategy.exit("StopLoss", from_entry = "Long", stop = stop_level)
plot(stop_level, color=color.yellow, linewidth=2)

// l = label.new(bar_index, na,
//   text="PineScript Code", color= color.lime, textcolor = color.white,
//   style=label.style_labelup, yloc=yloc.belowbar, size=size.normal)
// label.delete(l[1])

अधिक