टरटल ट्रेडिंग पर आधारित ब्रेकआउट रणनीति

लेखक:चाओझांग, दिनांकः 2023-10-17 17:22:34
टैगः

img

अवलोकन

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

सिद्धांत

यह रणनीति मुख्य रूप से दो संकेतकों पर आधारित हैः डोंचियन चैनल और एटीआर।

डोंचियन चैनल का निर्माण उच्चतम उच्च और निम्नतम निम्न द्वारा किया जाता है। डिफ़ॉल्ट चैनल की लंबाई 20 दिन है, जिसे 20 दिन के उच्चतम उच्च और निम्नतम निम्न के साथ प्लॉट किया गया है। जब कीमत ऊपरी बैंड से ऊपर टूटती है तो खरीद संकेत उत्पन्न होता है, और जब कीमत निचले बैंड से नीचे टूटती है तो बिक्री संकेत उत्पन्न होता है।

एटीआर बाजार की अस्थिरता को मापता है और स्टॉप लॉस सेटिंग के लिए उपयोग किया जाता है। डिफ़ॉल्ट एटीआर अवधि 20 दिन है। रणनीति स्टॉप लॉस स्तर के रूप में 2 एन एटीआर का उपयोग करती है।

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

  1. जब कीमत ऊपरी बैंड के ऊपर टूट जाती है तो लंबी हो जाती है।

  2. स्टॉप लॉस सेट करें प्रवेश पर कम कीमत पर माइनस 2N एटीआर।

  3. जब कीमत निचले बैंड से नीचे जाती है तो लंबी स्थिति बंद करें।

  4. जब कीमत निचले बैंड से नीचे टूट जाए तो शॉर्ट करें।

  5. प्रवेश के समय उच्च मूल्य और 2N एटीआर पर स्टॉप लॉस सेट करें।

  6. जब कीमत ऊपरी बैंड से ऊपर जाती है तो शॉर्ट पोजीशन बंद करें।

संक्षेप में, रणनीति ट्रेंड दिशा और प्रवेश संकेतों को डॉनचियन चैनल के साथ पहचानती है, और रुझानों का पालन करने के लिए एटीआर आधारित स्टॉप लॉस के साथ जोखिम को नियंत्रित करती है।

लाभ विश्लेषण

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

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

  2. रुझानों का पालन करने की क्षमता। डोंचियन चैनल प्रभावी रूप से ब्रेकआउट और रुझान परिवर्तनों की पहचान कर सकता है।

  3. उच्च अस्थिरता वाले साधनों के लिए लागू होता है। एटीआर स्टॉप लॉस सेटिंग में बाजार अस्थिरता को ध्यान में रखता है।

  4. सरल और स्पष्ट तर्क, समझने और लागू करने में आसान।

  5. पायथन भाषा के साथ अनुकूलन करने के लिए लचीलापन।

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

इस रणनीति के कुछ जोखिमों पर ध्यान दें:

  1. चैनल मापदंडों को विभिन्न साधनों और समय सीमाओं के लिए अनुकूलन की आवश्यकता है।

  2. लगातार स्टॉप लॉस का जोखिम। अस्थिर बाजार स्थितियों में कई स्टॉप लॉस ट्रिगर हो सकते हैं।

  3. एटीआर पैरामीटर को बैकटेस्टिंग की आवश्यकता है। एटीआर सीधे स्टॉप लॉस को प्रभावित करता है और अस्थिरता के आधार पर समायोजित किया जाना चाहिए।

  4. संभावित रूप से बहुत अधिक ट्रेडिंग आवृत्ति. बहुत सारे whipsaw संकेत सीमा-बंद बाजार के तहत हो सकते हैं.

  5. सीमित लाभ क्षमता. रणनीति स्टॉप लॉस पर केंद्रित है और पूरी तरह से प्रवृत्ति लाभ को पकड़ नहीं सकता है.

  6. अस्थिर आंदोलनों के दौरान अपर्याप्त स्टॉप लॉस। मूल्य अंतर सीधे स्टॉप लॉस को ट्रिगर कर सकते हैं।

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

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

  1. विभिन्न उपकरणों के लिए चैनल मापदंडों का अनुकूलन करें।

  2. सीमा-बाउंड बाजार के तहत बहुत अधिक संकेतों से बचने के लिए फ़िल्टर जोड़ें। ब्रेकआउट परिमाण या वॉल्यूम फ़िल्टर पर विचार करें।

  3. एटीआर अवधि पैरामीटर और स्टॉप लॉस पर परीक्षण प्रभाव का अनुकूलन करना।

  4. प्रवृत्ति लाभ को अधिकतम करने के लिए स्थिति के आकार को बढ़ाने के लिए पिरामिड प्रविष्टि जोड़ें।

  5. झूठे संकेतों से बचने के लिए अन्य संकेतकों जैसे एमएसीडी, केडी को शामिल करें।

  6. स्लिप और कमीशन की लागत के आधार पर स्टॉप लॉस को समायोजित करें।

  7. विभिन्न उपकरणों में अनुकूलन क्षमता का परीक्षण करें और मापदंडों को अनुकूलित करें।

सारांश

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


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

//@version=3
//Based on Turtle traders strategy: buy/sell on Donchian breakouts and stop loss on ATR 2x
// initial version considerations :
//// 1. Does not consider filter for avoiding new entries after winning trades (filtering rule from Turtle Strategy on 20 day breakout strategy) 
//// 2. Does not consider pyramiding (aditional entries after 1N price movements)

strategy("Turtle trading strategy (Donchian/ATR)", overlay=true)

enter_period = input(20, minval=1, title="Enter Channel")
exit_period = input(10, minval=1, title="Exit Channel")
offset_bar = input(0,minval=0, title ="Offset Bars")
direction = input("Long",options=["Long","Short"],title="Direction")
max_length = max(enter_period,exit_period)
atrmult = input(2,title="ATR multiplier (Stop Loss)")
atrperiod = input(20,title="ATR Period")

closed_pos = false
dir_long = direction == "Long"? true : false
atr = atr(atrperiod)
upper = dir_long ? highest(enter_period): highest(exit_period)
lower = dir_long ? lowest(exit_period): lowest(enter_period)
atrupper = close + atr
atrlower = close - atr
plotted_atr = dir_long ? atrlower : atrupper

//basis = avg(upper, lower)

l = plot(lower, style=line, linewidth=3, color=lime, offset=1)
u = plot(upper, style=line, linewidth=3, color=lime, offset=1)
a = plot(plotted_atr, style=line,linewidth=2,color=red,offset=1)
//plot(basis, color=yellow, style=line, linewidth=1, title="Mid-Line Average")
//break upper Donchian (with 1 candle offset) (buy signal)
break_up = (close >= upper[1])
//break lower Donchian (with 1 candle offset) (sell signal)
break_down = (close <= lower[1])
stop_loss = dir_long ? (close<=plotted_atr[1]) : (close>=plotted_atr[1])

if break_up and dir_long
    strategy.entry("buy", strategy.long, 1)
    closed_pos :=false
if (break_down or stop_loss) and dir_long
    strategy.close("buy")
    
if break_down and not dir_long
    strategy.entry("sell", strategy.short, 1)
    closed_pos :=false
if (break_up or stop_loss) and not dir_long
    strategy.close("sell")
    closed_pos :=true
    
losing_trade = strategy.equity[0]<strategy.equity[1]
//plotshape(losing_trade,text="Losing!")    
plotshape(stop_loss,style=dir_long?shape.labeldown:shape.labelup,text="Stop!")
//plot(strategy.equity)


    



अधिक