यह रणनीति बोलिंगर बैंड्स पर आधारित एक गति ब्रेकआउट ट्रेडिंग प्रणाली है, जो मुख्य रूप से मूल्य और ऊपरी बोलिंगर बैंड के बीच संबंध के माध्यम से प्रवृत्ति के अवसरों को पकड़ती है। रणनीति एक अनुकूलनशील चलती औसत प्रकार चयन तंत्र का उपयोग करती है, जो बाजार की अस्थिरता विशेषताओं की पहचान करने के लिए मानक विचलन चैनलों के साथ संयुक्त है, विशेष रूप से उच्च अस्थिरता वाले बाजारों के लिए उपयुक्त है।
रणनीति का मूल तर्क निम्नलिखित प्रमुख तत्वों पर आधारित है:
यह स्पष्ट तर्क के साथ रणनीति के बाद एक अच्छी तरह से डिज़ाइन की गई प्रवृत्ति है। यह बोलिंगर बैंड की गतिशील प्रकृति के माध्यम से बाजार की गति को पकड़ती है और इसमें अच्छे जोखिम नियंत्रण तंत्र शामिल हैं। रणनीति अत्यधिक अनुकूलन योग्य है और पैरामीटर समायोजन के माध्यम से विभिन्न बाजार वातावरण के अनुकूल हो सकती है। लाइव ट्रेडिंग कार्यान्वयन के लिए, रणनीति सुधार के लिए सुझाए गए अनुकूलन दिशाओं को शामिल करते हुए, पूरी तरह से पैरामीटर अनुकूलन और बैकटेस्टिंग सत्यापन करने की सिफारिश की जाती है।
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-11 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Demo GPT - Bollinger Bands", overlay=true, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Inputs length = input.int(20, minval=1, title="Length") maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") offset = input.int(0, "Offset", minval=-500, maxval=500) // Date range inputs startYear = input.int(2018, "Start Year", minval=1970, maxval=2100) startMonth = input.int(1, "Start Month", minval=1, maxval=12) startDay = input.int(1, "Start Day", minval=1, maxval=31) endYear = input.int(2069, "End Year", minval=1970, maxval=2100) endMonth = input.int(12, "End Month", minval=1, maxval=12) endDay = input.int(31, "End Day", minval=1, maxval=31) // Time range startTime = timestamp("GMT+0", startYear, startMonth, startDay, 0, 0) endTime = timestamp("GMT+0", endYear, endMonth, endDay, 23, 59) // Moving average function ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) // Calculate Bollinger Bands basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plot plot(basis, "Basis", color=#2962FF, offset=offset) p1 = plot(upper, "Upper", color=#F23645, offset=offset) p2 = plot(lower, "Lower", color=#089981, offset=offset) fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95)) // Strategy logic: Only go long and flat inDateRange = time >= startTime and time <= endTime noPosition = strategy.position_size == 0 longPosition = strategy.position_size > 0 // Buy if close is above upper band if inDateRange and noPosition and close > upper strategy.entry("Long", strategy.long) // Sell/Exit if close is below lower band if inDateRange and longPosition and close < lower strategy.close("Long")