पिरामिडिंग के साथ बोलिंगर ब्रेक आउट रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-23 14:01:57
टैगः

img

अवलोकन

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

रणनीति तर्क

रणनीति बोलिंगर बैंड के 3 लाइनों का उपयोग करती है - मध्य, ऊपरी और निचली। मध्य रेखा एन-दिवसीय चलती औसत है। ऊपरी रेखा मध्य रेखा + के * एन-दिवसीय मानक विचलन है। निचली रेखा मध्य रेखा - के * एन-दिवसीय मानक विचलन है। आमतौर पर एन 20 है और के 2 है।

जब कीमत ऊपरी रेखा से ऊपर टूट जाती है, तो यह एक गिरावट की प्रवृत्ति का संकेत देती है और शॉर्ट हो जाती है। जब कीमत निचली रेखा से नीचे टूट जाती है, तो यह एक ऊपर की प्रवृत्ति का संकेत देती है और लंबी हो जाती है।

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

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

लाभ विश्लेषण

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

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

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

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

  1. बोलिंगर बैंड बाजार की अस्थिरता के प्रति संवेदनशील होते हैं और इसमें झटका लग सकता है।
  2. पिरामिडिंग जोखिम को बढ़ाता है और संभावित नुकसान का लाभ उठाता है।
  3. स्टॉप लॉस की गारंटी नहीं है और अभी भी स्टॉप आउट होने की संभावना है।

जोखिमों से निपटने के कुछ तरीके:

  1. विभिन्न चक्रों के लिए बोलिंगर बैंड्स मापदंडों का अनुकूलन करें।
  2. पिरामिड पैमाने और आवृत्ति को समायोजित करें।
  3. मध्य रेखा को अतिरिक्त स्टॉप लॉस लाइन के रूप में जोड़ें.

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

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

  1. अधिक बाजार व्यवस्थाओं को अनुकूलित करने के लिए बोलिंगर बैंड के मापदंडों का अनुकूलन करना।
  2. जोखिम-इनाम संतुलन के लिए पिरामिड तर्क में सुधार।
  3. मध्य रेखा की तरह अधिक स्टॉप हानि लाइनें जोड़ें।
  4. लाभ को सक्रिय रूप से लॉक करने के लिए लाभ लेने की व्यवस्था विकसित करें।
  5. प्रविष्टियों को फ़िल्टर करने के लिए अन्य संकेतकों को मिलाएं।
  6. प्रति व्यापार हानि को नियंत्रित करने के लिए जोखिम प्रबंधन में सुधार।

निष्कर्ष

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


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

//@version=5

strategy(title='Bollinger Band strategy with split, limit, stop', shorttitle='bb strategy', overlay=true,commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, pyramiding = 4)



//Summary: Going Long or Short when Entering after Breaking the Bollinger Bands\
//At this time, the stop-loss, profit-taking price, and pyramiding standard\
// are determined from the difference between the position average price and the band price.

//After entering the position, if the price crosses the mid-band line, the stop loss is adjusted to the mid-band line.



//each trade, entry position size = 10% of total cash
//max pyramiding is 4
//commission = 0.01%





in_period = true


bb_length = input.int(20)
bb_mult = input.int(2)

[middle, upper, lower] = ta.bb(close,bb_length, bb_mult)
plot(middle, color=color.aqua)
plot(upper, color=color.orange)
plot(lower, color=color.orange)
long_cond = ta.crossover(close,lower)
short_cond = ta.crossunder(close,upper)

var saved_ph = 0.0
if strategy.opentrades>0 and strategy.opentrades[1]==0 and strategy.position_size > 0
    saved_ph := upper[1]
var saved_pl = 0.0
if strategy.opentrades>0 and strategy.opentrades[1]==0 and strategy.position_size < 0
    saved_pl := lower[1]

avg = strategy.position_avg_price

long_diff = saved_ph-avg
short_diff = saved_pl-avg

long_stoploss = avg - 1*long_diff
short_stoploss = avg - 1*short_diff

long_avgdown = avg - 0.5*long_diff
short_avgup = avg - 0.5*short_diff

long_profit_price = avg + 0.5*long_diff
short_profit_price = avg + 0.5*short_diff

var label _label = na
if in_period
    if long_cond and strategy.opentrades==0
        strategy.entry("Long",strategy.long)
    if long_cond and strategy.opentrades >0 and (close[1]<long_avgdown or close[2]<long_avgdown)
        strategy.entry("Long",strategy.long)

    if short_cond and strategy.opentrades==0
        strategy.entry("Short", strategy.short)
    if short_cond and strategy.opentrades>0 and (close[1]>short_avgup or close[2]>short_avgup)
        strategy.entry("Short",strategy.short)

plot(avg, style=plot.style_linebr)


plot(strategy.position_size > 0? long_profit_price: na,color=color.green, style=plot.style_linebr)
plot(strategy.position_size > 0? long_avgdown: na,color=color.yellow, style=plot.style_linebr)
plot(strategy.position_size > 0? long_stoploss: na,color=color.red, style=plot.style_linebr)

plot(strategy.position_size < 0? short_profit_price: na,color=color.green, style=plot.style_linebr)
plot(strategy.position_size < 0? short_avgup: na,color=color.yellow, style=plot.style_linebr)
plot(strategy.position_size < 0? short_stoploss: na,color=color.red, style=plot.style_linebr)

if strategy.position_size > 0
    if ta.crossover(close, middle)
        strategy.exit("Long Exit", "Long", limit=long_profit_price, stop=middle)
    else
        strategy.exit("Long Exit", "Long", limit=long_profit_price, stop=long_stoploss)
if strategy.position_size < 0
    if ta.crossunder(close, middle)
        strategy.exit("Short Exit", "Short", limit=short_profit_price, stop=middle)
    else
        strategy.exit("Short Exit", "Short", limit=short_profit_price, stop=short_stoploss)

अधिक