
इस रणनीति में बुरिन बैंड की दोहरी औसत रेखा पर आधारित ट्रेडिंग निर्णयों का पालन किया जाता है। यह बुरिन बैंड के निचले ट्रैक के समीकरण और फैलाव का उपयोग करके प्रवृत्ति में बदलाव का आकलन करता है, बुरिन बैंड के निचले ट्रैक के पास खरीदता है, ऊपरी ट्रैक के पास बेचता है, कम खरीदता है और बेचता है, लाभ के लिए बाहर निकलता है।
इस रणनीति में ब्रिन बैंड के सरल और उन्नत ब्रिन बैंड दोनों संस्करणों को एक साथ लागू किया गया है।
सरल ब्रिन बैंड समापन मूल्य के साथ SMA की गणना के लिए मध्यवर्ती रेखा है, और ईएमए की गणना के लिए मध्यवर्ती रेखा है जो ब्रीनिंग बैंड को समापन मूल्य के साथ बढ़ाता है।
ऊपर और नीचे की कक्षाओं को मध्य कक्षा ± एन गुना मानक अंतर के माध्यम से गणना की जाती है।
रणनीति ब्रीड के ऊपर और नीचे के बीच की दूरी के आधार पर प्रवृत्ति का न्याय करती है, जब प्रसार निर्धारित सीमा से कम होता है, तो यह संकेत देता है कि प्रवृत्ति की सीमा में प्रवेश किया जा रहा है, और प्रवृत्ति का पालन करने के लिए व्यापार किया जा सकता है।
विशेष रूप से, जब कीमत नीचे की ओर जा रही है, तो अधिक खरीदें, और जब यह ऊपर की ओर जा रहा है, तो बेचना। स्टॉप लॉस का तरीका एक निश्चित स्टॉप लॉस प्रतिशत है, और स्टॉप लॉस को ट्रैक करने का विकल्प है।
लक्षित लाभ मध्य या ऊपरी पटरी के पास एक निष्क्रिय स्थिति चुनने पर निर्भर करता है।
इस रणनीति के तहत, यह भी चुना जा सकता है कि केवल लाभदायक बिक्री के लिए बिक्री की जाए ताकि नुकसान से बचा जा सके।
इस रणनीति के निम्नलिखित फायदे हैं:
सरल और उन्नत ब्रिनबैंड का उपयोग करें, दोनों प्रकार के ब्रिनबैंड के प्रभावों की तुलना करें, बेहतर संस्करण चुनें, और निर्णय लेने की दक्षता में सुधार करें।
जब ब्रिन बैंड के माध्यम से संकुचित होता है, तो यह प्रवृत्ति में प्रवेश करने का संकेत देता है, और प्रवृत्ति के साथ व्यापार करने की संभावना अधिक होती है।
एकल हानि को नियंत्रित करने के लिए एक निश्चित प्रतिशत स्टॉप लॉस का उपयोग करना। इसके अलावा, मध्य-रेल या ऊपरी-रेल के पास स्टॉप को चुनना संभव है, और अधिक लाभ को लॉक करने के लिए स्टॉप लॉस को ट्रैक करना संभव है।
केवल लाभप्रदता सुनिश्चित करने के लिए बेचने से घाटे के विस्तार को रोका जा सकता है।
इस रणनीति के साथ निम्नलिखित जोखिम भी हैं:
ट्रेंड ट्रेडिंग में एक निश्चित जोखिम होता है और लगातार नुकसान का सामना करने के लिए एक मनोवैज्ञानिक दबाव होता है।
जब ब्रिन बैंड के पास एक चौड़ा चैनल होता है, तो यह संकेत देता है कि बाजार में उतार-चढ़ाव हो सकता है, और इस समय यह रणनीति व्यापार के लिए प्रभावी नहीं होती है, और व्यापार को रोकना आवश्यक है जब तक कि प्रवृत्ति फिर से नहीं बन जाती।
एक निश्चित प्रतिशत रोकना शायद बहुत अधिक कट्टरपंथी हो सकता है, और इसे एटीआर रोक जैसे अधिक सौम्य रोक के लिए समायोजित करने की आवश्यकता है।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
विभिन्न औसत रेखा मापदंडों और मानक अंतर गुणांकों का परीक्षण करके, विभिन्न बाजारों के लिए उपयुक्त ब्रिन बैंड मापदंडों के संयोजनों का पता लगाया जा सकता है।
ब्रिन बैंड सिग्नल के आधार पर, MACD, KD और अन्य संकेतकों के फ़िल्टर को जोड़ा जा सकता है, जिससे बाजार में उतार-चढ़ाव कम हो सकता है।
विभिन्न गतिशील रोकथाम विधियों का परीक्षण किया जा सकता है, या ऑप्टिमाइज़ेशन रोकथाम बिंदु जैसे कि एम्पलीफायर, एटीआर आदि के आधार पर।
प्रत्येक लेनदेन के लिए स्थिति प्रबंधन का अनुकूलन करें और विभिन्न पूर्ति रणनीतियों का परीक्षण करें।
इस रणनीति में दोहरे बुरिन बैंड सूचकांक के फायदे शामिल हैं, जो बुरिन बैंड के चौड़ाई के आधार पर प्रवृत्ति की डिग्री का आकलन करते हैं, जो प्रवृत्ति के दौरान कम-से-उच्च ट्रेडों का पालन करते हैं। इसके अलावा, वैज्ञानिक स्टॉप-लॉस तंत्र को जोखिम को नियंत्रित करने के लिए स्थापित किया गया है। यह रणनीति पैरामीटर अनुकूलन और अन्य संकेतकों के फ़िल्टरिंग के साथ संयोजन के माध्यम से स्थिरता को और बढ़ा सकती है।
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 00:00:00
period: 1h
basePeriod: 15m
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/
// © JCGMarkets
//@version=4
strategy("B.Bands | Augmented | Intra-range | Long-Only", shorttitle = "BB|A|IR|L", initial_capital=5000, commission_value=0.075, slippage = 1, overlay = true)
//Technical Indicators Data
show_simp = input(false, title="Trade on Simple Bollinger Bands ", type= input.bool, group="Select Strategy System")
show_augm = input(true, title="Trade on Augmented Bollinger Bands", type= input.bool, group="Select Strategy System")
periods = input(20, title="Periods for Moving Average", type =input.integer, minval = 2, step = 1, group="Technical Inputs")
std = input(2, title="Std", type = input.float, minval=0.1 , step = 0.1, group="Technical Inputs")
// Strategy data
max_spread_bb = input(20000.0, title="Max Spread Tolerance Beetween Bands", type=input.float, step=0.1, group="Strategy Inputs")
entry_source = input(close, title="Entry data source", type=input.source, group="Strategy Inputs")
exit_source = input(high, title="Exit data source", type=input.source, group="Strategy Inputs")
take_profit = input("middle", title = "Profit to band:", options = ["middle", "opposite"], group="Strategy Inputs")
stop_loss = input(3.00, title="Stop Loss %", type=input.float, step=0.05, group="Strategy Inputs")
trailing = input(false, title="Activate trailing stop?", type = input.bool, group="Strategy Inputs")
stop_perc = input(6.00, title="Trailing %", type=input.float, step=0.125, group="Strategy Inputs") * 0.01
sell_profit = input(false, title="Only sell in profit (Stop Loss still active) ", type= input.bool, group="Strategy Inputs")
var SL = 0.0
var SLT= 0.0
//Simple BB Calculation -> adapt if needed with different std for upper-lower, sma-ema, etc
middle_sim = sma(close, periods)
//Augmented BB Calculation -> adapt if needed with different std for upper lower, etc
middle_augm = ema(close, periods)
middle_upp = ema(high, periods)
middle_low = ema(low, periods)
//Multiplier
dev = stdev(close, periods) * std
//Upper & Lower Bands
upper = (middle_sim + dev)
lower = (middle_sim - dev)
//Augmented Bands
upper_augm = (middle_upp + dev)
lower_augm = (middle_low - dev)
//Bands Spread
spread = upper - lower
spread_augm = upper_augm - lower_augm
//From date
filter_from = input( true, title="===> From", group="Date Control")
from_y = input( 2010, title = "from year", group="Date Control")
from_m = input( 1, title = "from month", minval =1, maxval=12, group="Date Control")
from_d = input( 1, title = "from day", minval=1, maxval=31, group="Date Control")
//To date
filter_to = input( true, title="===> To", group="Date Control")
to_y = input( 2030, title = "To year", group="Date Control")
to_m = input( 1, title = "To month", minval =1, maxval=12, group="Date Control")
to_d = input( 1, title = "To day", minval=1, maxval=31, group="Date Control")
// Date Condition
In_date() => true
in_position = strategy.position_size > 0
// Trailing stop
SLT := if in_position and In_date()
stop_inicial = entry_source * (1 - stop_perc)
max(stop_inicial, SLT[1])
else
0
slts = (low <= SLT) and (trailing == true)
//Essential Trade logics
entry_long = (entry_source <= lower) and (spread < max_spread_bb)
entry_long_augm = (entry_source <= lower_augm) and (spread_augm < max_spread_bb)
// Simple Bollinger Conditions
if (not in_position and show_simp and In_date())
if entry_long
// Trigger buy order
position_size = round( strategy.equity / close ) // All available equity for this strategy example
strategy.entry("Entry", strategy.long, qty = position_size )
SL := close * (1 - (stop_loss / 100)) // You could determine wether or not implement stop loss with bool input and if condition here.
if in_position and show_simp and not sell_profit and In_date()
//Exits if not sell in profit
if take_profit == "middle"
strategy.exit("Target", "Entry", limit = middle_sim, stop = SL, comment="Exit")
if take_profit == "opposite"
strategy.exit("Target", "Entry", limit = upper, stop = SL, comment="Exit")
if in_position and show_simp and sell_profit and In_date()
//Exits if sell in profit
if take_profit == "middle"
strategy.exit("Target", "Entry", limit = (strategy.openprofit > 0 ? middle_sim: na), stop = SL, comment="Exit")
if take_profit == "opposite"
strategy.exit("Target", "Entry", limit = (strategy.openprofit > 0 ? upper: na), stop = SL, comment="Exit")
if in_position and show_simp and slts and In_date()
//Trailing activation
strategy.close("Entry", comment="SLT")
if not In_date()
//Exit due out of date range
strategy.close("Entry", comment="Out of date range")
// Augmented Bollinger Conditions
if (not in_position and show_augm and In_date())
if entry_long_augm
// Trigger buy order
position_size = round( strategy.equity / close )
strategy.entry("Entry_A", strategy.long, qty = position_size )
SL := close * (1 - (stop_loss / 100) )
if in_position and show_augm and not sell_profit and In_date()
//Exits and not sell in profit
if take_profit == "middle"
strategy.exit("Target", "Entry_A", limit = middle_augm, stop = SL, comment="Exit")
if take_profit == "opposite"
strategy.exit("Target", "Entry_A", limit = upper_augm, stop = SL, comment="Exit")
if in_position and show_augm and sell_profit and In_date()
//Exit only in profit
if take_profit == "middle"
strategy.exit("Target", "Entry_A", limit = (strategy.openprofit > 0 ? middle_augm:na), stop = SL, comment="Exit")
if take_profit == "opposite"
strategy.exit("Target", "Entry_A", limit = (strategy.openprofit > 0 ? upper_augm: na) , stop = SL, comment="Exit")
if in_position and show_augm and slts and In_date()
//Trigger trailing
strategy.close("Entry_A", comment="SLT")
if not In_date()
//Out of date trigger
strategy.close("Entry_A", comment= "Out of date range")
// Plotting
plot(in_position ? SL > 0 ? SL : na : na , style = plot.style_circles, color = color.red, title = "Stop Loss")
plot(in_position ? trailing ? SLT > 0 ? SLT : na : na : na , style = plot.style_circles, color = color.blue, title = "Trailing Stop" )
s = plot(show_simp ? upper : na , color = color.aqua)
plot(show_simp ? middle_sim : na , color=color.red)
i = plot(show_simp ? lower : na , color = color.aqua)
fill(s,i, color=color.new(color.aqua,90))
plot(show_augm ? middle_augm : na , color=color.blue)
s_a = plot( show_augm ? upper_augm : na, color=color.orange)
i_a = plot( show_augm ? lower_augm : na, color= color.orange)
fill(s_a,i_a, color=color.new(color.orange, 90))