डोंचियन चैनलों पर आधारित कछुए व्यापार रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-25 10:57:52
टैगः

img

अवलोकन

इस रणनीति का नाम है Turtle Trading Strategy Based on Donchian Channels। यह प्रसिद्ध Turtle Trading Rules से मुख्य विचार उधार लेता है और फिल्टरेशन के लिए चलती औसत के साथ संयुक्त, बाजार के रुझानों को निर्धारित करने के लिए Donchian चैनलों का उपयोग करता है, एक अपेक्षाकृत सरल प्रवृत्ति के बाद की रणनीति का एहसास करता है।

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

इस रणनीति का मुख्य सूचक डोंचियन चैनल है। डोंचियन चैनल में एन-दिन की अवधि में उच्चतम और निम्नतम कीमतों की उतार-चढ़ाव सीमा होती है। यदि कीमत चैनल के ऊपरी रेल के माध्यम से टूटती है, तो यह एक लंबा संकेत होगा; यदि यह चैनल के निचले रेल के माध्यम से टूटती है, तो यह एक छोटा संकेत होगा। यह रणनीति संकेत जारी करने के लिए तेजी से डोंचियन चैनल (10 दिन) और नुकसान को रोकने के लिए धीमी डोंचियन चैनल (20 दिन) का उपयोग करती है।

इसके अतिरिक्त, यह रणनीति संकेतों को फ़िल्टर करने के लिए दो चलती औसत रेखाओं (50-दिवसीय रेखा और 125-दिवसीय रेखा) को भी पेश करती है। केवल जब तेजी से चलती औसत रेखा धीमी चलती औसत रेखा से ऊपर जाती है, तो लंबी स्थिति का कारोबार किया जाएगा; केवल जब तेजी से चलती औसत रेखा धीमी चलती औसत रेखा से नीचे जाती है, तो छोटी स्थिति का कारोबार किया जाएगा। यह कुछ झूठे संकेतों को प्रभावी ढंग से फ़िल्टर कर सकता है।

इस रणनीति की शुरुआती शर्तें इस प्रकार हैं: कीमत डोंचियन चैनल के ऊपरी रेल के माध्यम से टूट जाती है, और तेजी से चलती औसत रेखा धीमी गति से चलती औसत रेखा के ऊपर पार करती है। जब दोनों शर्तें पूरी हो जाती हैं, तो लंबी स्थिति खोली जाएगी; कीमत डोंचियन चैनल के निचले रेल के माध्यम से टूट जाती है, और तेजी से चलती औसत रेखा धीमी गति से चलती औसत रेखा के नीचे पार करती है, फिर छोटी स्थिति खोलती है। समापन की शर्तें तब होती हैं जब कीमत विपरीत धीमी गति से डोंचियन चैनल की सीमाओं को छूती है।

लाभ विश्लेषण

इस रणनीति के लाभ इस प्रकार हैंः

  1. ट्रेंड की दिशा निर्धारित करने के लिए डोंचियन चैनल का उपयोग करना, बड़ी प्रवृत्ति को सफलतापूर्वक पकड़ने के लिए बैकटेस्ट प्रभाव बेहतर है;

  2. चलती औसत के फ़िल्टर को जोड़ने से कुछ झूठे संकेतों को फ़िल्टर किया जा सकता है और नुकसान से बचा जा सकता है।

  3. तेजी से और धीमी गति से डोनचेन चैनलों और चलती औसत के संयोजन से ट्रेडिंग आवृत्ति और स्टॉप लॉस सटीकता को संतुलित किया जा सकता है।

  4. एकल हानि को नियंत्रित करने के लिए स्टॉप लॉस तंत्र के साथ जोखिम को अच्छी तरह से नियंत्रित किया जाता है।

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

इस रणनीति के कुछ जोखिमः

  1. शॉक बाजार में, छोटे खोने वाले ऑर्डर अधिक हो सकते हैं;

  2. जब रुझान उलटा होता है, तो चलती औसत की फ़िल्टरिंग से शुरुआती लागत में वृद्धि होगी;

  3. खड़ी बाजारों में, स्टॉप लॉस का पीछा किया जा सकता है।

प्रति उपाय और समाधान:

  1. उचित रूप से मापदंडों को समायोजित करें, डोंचियन चक्र को छोटा करें, विभिन्न बाजारों के अनुकूल होने के लिए चलती औसत चक्र को कम करें।

  2. प्रमुख प्रवृत्ति के विरुद्ध स्थिति बनाने से बचने के लिए प्रमुख प्रवृत्ति पर निर्णय बढ़ाएं।

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

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

  1. उदाहरण के लिए, वॉल्यूम शुरू करें, केवल वॉल्यूम बढ़ने पर ही पदों को खोलें;

  2. गर्म क्षेत्रों के निर्णय को बढ़ाएं। पदों को खोलने पर गर्म क्षेत्रों से बचने के लिए समर्थन, दबाव, बैंड, पैटर्न आदि के साथ संयोजन करें;

  3. स्टॉप लॉस रणनीतियों को अनुकूलित करें। स्टॉप लॉस को स्मार्ट बनाने के लिए स्टॉप लॉस, अस्थिरता स्टॉप लॉस, समय स्टॉप लॉस आदि को ट्रैक करना शुरू करें।

सारांश

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


/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Coded by Vladkos
strategy("Donchian strategy with filter", overlay=true,default_qty_type = strategy.percent_of_equity, default_qty_value = 4,pyramiding=5)

fromyear = input(2017, defval = 2018, minval = 1800, 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(21, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
term = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))
ATR=input(20,minval=1)
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
needstoploss= input(true,defval=true,title="Stop LOSS")
///////////ATR
tra=atr(ATR)


////////////Переменные
Donchian_slow=input(20,minval=1)
Donchian_fast=input(10,minval=1)
Slow_EMA=input(125,minval=1)
Fast_EMA=input(50,minval=1)

/////////// Медленный Дончан
lower = lowest(Donchian_slow)
upper = highest(Donchian_slow)
basis = avg(upper, lower)
plot(lower,color=blue)
plot(upper,color=blue)

/////////// быстрый Дончан
lowerF = lowest(Donchian_fast)
upperF = highest(Donchian_fast)
basisF = avg(upperF, lowerF)
plot(lowerF,color=red)
plot(upperF,color=red)

////////// Скользящие средние
ema_S=ema(close,Slow_EMA)
ema_F=ema(close,Fast_EMA)
plot(ema_S,color=red)
plot(ema_F,color=green)

///////// Условия сделок
long_condition= close>=upper[1] and ema_F>ema_S  
long_exit= close<lowerF[1]

short_condition=close<=lower[1] and ema_F<ema_S
short_exit=close>upperF[1]

////////// Отправка ордеров
strategy.entry("Long",strategy.long,when=long_condition and term and needlong==true)
strategy.exit("stop loss","Long",stop=strategy.position_avg_price-(tra*2),when= (needstoploss==true))
strategy.close("Long",when=long_exit and (time < timestamp(toyear, tomonth, today, 23, 59)))
    
strategy.entry("Short",strategy.short,when=short_condition and term and (needshort==true))
strategy.exit("stoploss","Short",stop=strategy.position_avg_price+(tra*2),when= (needstoploss==true))
strategy.close("Short",when=short_exit and (time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()






अधिक