गतिशील रेंज ब्रेकआउट रणनीति

लेखक:चाओझांग, दिनांकः 2023-11-21 15:03:19
टैगः

img

अवलोकन

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

रणनीति तर्क

सूचक गणना

सबसे पहले, निम्न मूल्य के आधार पर बोलिंगर बैंड की आधार रेखा और निचले बैंड की गणना करें:

src = low
basis = sma(src, length) 
dev = mult * stdev(src, length)
lower = basis - dev

जहां src निम्न मूल्य है, लंबाई गणना अवधि है, आधार चलती औसत है, dev मानक विचलन है, और निचला निचला बैंड है।

मल्ट को आमतौर पर 2 पर सेट किया जाता है, जिसका अर्थ है कि निचला बैंड एक मानक विचलन दूर है।

फ़िल्टर स्थितियाँ

इस रणनीति में दो फिल्टर स्थितियां शामिल हैंः

मोमबत्ती शरीर फ़िल्टरनिर्धारित करने के लिए शरीर के आकार nbody और उसके औसत अवधि का उपयोग करें, केवल तब ट्रेडिंग सिग्नल उत्पन्न करें जब nbody अवधि के आधे से अधिक हो।

रंग फ़िल्टर
जब मोमबत्ती सकारात्मक बंद हो (बंद > खुला) तो लंबे समय तक न करें। यह hbox के सिर पर झूठे ब्रेकआउट से बचाता है।

व्यापार संकेत

लंबे समय तक संकेत उत्पन्न करें जब नीचे दी गई शर्तें पूरी हों:

low < lower // price breaks lower band
close < open or usecol == false // color filter
nbody > abody / 2 or usebod == false // body filter  

जब शरीर का आकार फिर से औसत का आधा से अधिक हो, बंद स्थितिः

close > open and nbody > abody / 2  

स्थिति आकार

रणनीति स्थिति की घातीय वृद्धि के लिए स्वचालित रूप से व्यापार आकार की गणना करती हैः

lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1] 

जोखिम नियंत्रण

वर्ष, माह और दिनांक पर प्रतिबंध जोड़ें ताकि केवल विशिष्ट दिनांक सीमा में ही व्यापार सीमित हो सके:

when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))

लाभ

गतिशील ट्रेडिंग रेंज

बोलिंगर का निचला बैंड ट्रेंड के बाद रिट्रेसमेंट को पकड़ने के लिए एक गतिशील समर्थन क्षेत्र प्रदान करता है।

दोहरी फ़िल्टर

मोमबत्ती के शरीर और रंग फिल्टर का संयोजन प्रभावी रूप से झूठे ब्रेकआउट से बचाता है।

स्वचालित स्थिति आकार

स्थिति का आकार 100% तक तेजी से बढ़ता है, जोखिम का प्रबंधन स्वचालित रूप से होता है।

दिनांक सीमा

दिनांक सीमा निर्धारित करने से विशिष्ट अवधियों में बाजार की अस्थिरता से जुड़े जोखिम कम होते हैं।

जोखिम

दीर्घकालिक निकासी

जब मजबूत अपट्रेंड होता है, तो बीबी मध्य और ऊपरी बैंड तेजी से ऊपर की ओर बढ़ सकते हैं, जिससे लंबे समय तक ड्रॉडाउन हो सकता है।

समाधान

रुझान संकेतकों के साथ संयोजन करें, जब बुल मार्केट के रूप में माना जाता है तो दीर्घकालिक ड्रॉडाउन से बचने के लिए रणनीति को रोकें।

असफल ब्रेकआउट

ब्रेकआउट कम बैंड की वापसी और पुनः परीक्षण के साथ विफल हो सकता है।

समाधान

समर्थन स्तर के नीचे स्टॉप लॉस जोड़ें. या त्वरित स्टॉप लॉस के लिए असफल पुनः परीक्षण का पता लगाने के लिए तर्क जोड़ें.

सुधार

स्टॉप लॉस जोड़ें

बैकटेस्ट परिणामों के आधार पर समर्थन से नीचे स्टॉप लॉस का अनुकूलन करें.

पैरामीटर अनुकूलित करें

शरीर के फिल्टर को ठीक से ट्यून करें, रहने की अवधि, रंग फिल्टर आदि इष्टतम खोजने के लिए।

ट्रेंड फ़िल्टर जोड़ें

बुल बाजार के रूप में आंका जाता है जब रणनीति रोकें। वापसी समय को कम करें।

निष्कर्ष

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


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

//Noro
//2018

//@version=2
strategy(title = "Noro's Wizard Strategy v1.0", shorttitle = "Wizard str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(25, defval = 25, minval = 1, maxval = 200, title = "BB Period")
usebod = input(false, defval = false, title = "Use Body-Filter")
usecol = input(false, defval = false, title = "Use Color-Filter")
showar = input(false, defval = false, title = "Show Arrows")
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")

//Bollinger
src = low
mult = 2
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
plot(lower, color = lime, linewidth = 3, title="Bottom Line")

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebod == false

//Signals
up1 = low < lower and (close < open or usecol == false) and body
exit = close > open and nbody > abody / 2

//Arrows
needar = up1 and showar
plotarrow(needar ? 1 : na)

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up1
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

अधिक