یہ حکمت عملی بولنگر بینڈ پر مبنی ایک رفتار توڑنے والا تجارتی نظام ہے ، بنیادی طور پر قیمت اور بالائی بولنگر بینڈ کے مابین تعلقات کے ذریعے رجحان کے مواقع کو حاصل کرتا ہے۔ یہ حکمت عملی مارکیٹ میں اتار چڑھاؤ کی خصوصیات کی نشاندہی کرنے کے لئے معیاری انحراف چینلز کے ساتھ مل کر ایک موافقت پذیر حرکت پذیر اوسط قسم کے انتخاب کے طریقہ کار کو استعمال کرتی ہے ، جو خاص طور پر اعلی اتار چڑھاؤ والی منڈیوں کے لئے موزوں ہے۔
حکمت عملی کا بنیادی منطق مندرجہ ذیل اہم عناصر پر مبنی ہے:
یہ واضح منطق کے ساتھ حکمت عملی کے بعد ایک اچھی طرح سے ڈیزائن کردہ رجحان ہے۔ یہ بولنگر بینڈ کی متحرک نوعیت کے ذریعے مارکیٹ کی رفتار کو پکڑتا ہے اور اس میں خطرہ کنٹرول کے اچھے طریقہ کار شامل ہیں۔ حکمت عملی انتہائی حسب ضرورت ہے اور پیرامیٹر ایڈجسٹمنٹ کے ذریعے مختلف مارکیٹ کے ماحول میں ڈھل سکتی ہے۔ براہ راست تجارت کے نفاذ کے لئے ، حکمت عملی کو بہتر بنانے کے لئے تجویز کردہ اصلاح کی سمتوں کو شامل کرتے ہوئے ، پیرامیٹر کی مکمل اصلاح اور بیک ٹیسٹنگ کی توثیق کرنے کی سفارش کی جاتی ہے۔
/*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")