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