اندیکاتور باندهای بولینگر (Bollinger Bands) یکی از ابزارهای پرکاربرد در تحلیل تکنیکال است که به معاملهگران کمک میکند تا نوسانات بازار را تحلیل کنند، نقاط ورود و خروج مناسب را شناسایی کنند و از تغییرات قیمتی به نفع خود استفاده کنند.
این اندیکاتور در دهه ۱۹۸۰ معرفی شد و به دلیل سادگی و دقت، در بین معاملهگران بازارهای مالی مانند فارکس، بورس و کریپتو بسیار محبوب است. در این مقاله، به بررسی کامل باندهای بولینگر، تاریخچه، ساختار، نحوه استفاده، استراتژیهای سیگنالگیری، و همچنین نمونه کدهای برنامهنویسی برای پیادهسازی آن میپردازیم تا کاملترین راهنما را برای شما ارائه دهیم.
تاریخچه باندهای بولینگر
اندیکاتور باندهای بولینگر توسط جان بولینگر، تحلیلگر برجسته بازارهای مالی، در دهه ۱۹۸۰ توسعه یافت. هدف اصلی این ابزار، ارائه روشی برای اندازهگیری نوسانات قیمت نسبت به میانگین متحرک بود. بولینگر که به دنبال ابزاری بود تا بتواند رفتار بازار را بهصورت بصری و قابلفهم نمایش دهد، با ترکیب میانگین متحرک ساده (SMA) و انحراف معیار (Standard Deviation)، این اندیکاتور را خلق کرد. از آن زمان، باندهای بولینگر به یکی از ابزارهای استاندارد در پلتفرمهای معاملاتی مانند متاتریدر، تریدینگویو و سایر نرمافزارهای تحلیل تکنیکال تبدیل شده است.

ساختار اندیکاتور باندهای بولینگر
باندهای بولینگر از سه خط اصلی تشکیل شدهاند که بهصورت زیر محاسبه میشوند:
خط میانی (Middle Band):
این خط معمولاً یک میانگین متحرک ساده (SMA) با دوره ۲۰ است. این خط نشاندهنده روند کلی قیمت در بازه زمانی مشخص است.
باند بالا (Upper Band):
این خط با افزودن دو برابر انحراف معیار به میانگین متحرک محاسبه میشود:
Upper Band = SMA + (2 × Standard Deviation)
باند پایین (Lower Band):
این خط با کسر دو برابر انحراف معیار از میانگین متحرک به دست میآید:
Lower Band = SMA – (2 × Standard Deviation)
انحراف معیار در اینجا معیاری از میزان پراکندگی قیمتها نسبت به میانگین است و به اندیکاتور اجازه میدهد تا به تغییرات نوسانات بازار واکنش نشان دهد.
نحوه کار باندهای بولینگر
باندهای بولینگر بهعنوان یک ابزار پویا عمل میکنند و عرض باندها (فاصله بین باند بالا و پایین) با میزان نوسانات بازار تغییر میکند:
نوسانات بالا: وقتی بازار پرنوسان است، باندها از هم فاصله میگیرند و گستردهتر میشوند.
نوسانات پایین: در بازارهای آرام و کمتحرک، باندها به هم نزدیک شده و باریک میشوند.
این ویژگی باعث میشود باندهای بولینگر ابزاری عالی برای شناسایی فشردگی (Squeeze) و گسترش (Expansion) در بازار باشند.
سیگنالگیری با باندهای بولینگر
باندهای بولینگر سیگنالهای متنوعی برای معاملهگران ارائه میدهند. در ادامه، مهمترین روشهای سیگنالگیری را بررسی میکنیم:
- برگشت قیمت (Reversal Signals)
سیگنال خرید: وقتی قیمت به باند پایین نزدیک میشود یا آن را لمس میکند، میتواند نشانهای از اشباع فروش باشد و احتمال بازگشت قیمت به سمت بالا وجود دارد.
سیگنال فروش: وقتی قیمت به باند بالا نزدیک میشود یا آن را لمس میکند، ممکن است نشانه اشباع خرید باشد و احتمال بازگشت قیمت به سمت پایین وجود دارد.
نکته: برای تأیید این سیگنالها، بهتر است از اندیکاتورهای دیگر مانند RSI یا MACD استفاده کنید.
- فشردگی باندها (Bollinger Squeeze)
وقتی باندها به هم نزدیک میشوند، نشاندهنده کاهش نوسانات بازار است. این حالت معمولاً بهعنوان فشردگی شناخته میشود و اغلب پیشدرآمد یک حرکت قوی (Breakout) در بازار است. معاملهگران میتوانند منتظر شکست قیمت به سمت بالا یا پایین باشند تا وارد معامله شوند.
- گسترش باندها (Expansion)
پس از فشردگی، وقتی باندها دوباره از هم فاصله میگیرند، نشاندهنده افزایش نوسانات است. این حالت معمولاً با یک روند قوی همراه است. معاملهگران میتوانند از این موقعیت برای ورود به معاملات در جهت روند استفاده کنند.
- شکست باندها (Breakout)
شکست باند بالا: اگر قیمت باند بالا را بشکند، میتواند نشانه قدرت خریداران و ادامه روند صعودی باشد.
شکست باند پایین: اگر قیمت باند پایین را بشکند، ممکن است نشاندهنده فشار فروش و شروع روند نزولی باشد.
هشدار: شکست باندها بهتنهایی کافی نیست و باید با سایر ابزارهای تکنیکال تأیید شود.
- پیادهروی در باندها (Bollinger Band Walk)
در روندهای قوی، قیمت ممکن است بهصورت مداوم در امتداد باند بالا (در روند صعودی) یا باند پایین (در روند نزولی) حرکت کند. این پدیده بهعنوان پیادهروی در باندها شناخته میشود و معاملهگران میتوانند از آن برای معاملات در جهت روند استفاده کنند.

مزایا و معایب باندهای بولینگر
مزایا
- سادگی و انعطافپذیری: این اندیکاتور برای انواع بازارها (فارکس، سهام، کریپتو) و تایمفریمها مناسب است.
- تشخیص نوسانات: باندهای بولینگر بهخوبی تغییرات نوسانات بازار را نشان میدهند.
- ترکیبپذیری: میتوان آن را با سایر اندیکاتورها مانند RSI، MACD یا استوکاستیک ترکیب کرد.
معایب
سیگنالهای کاذب: در بازارهای رنج (Range-Bound)، ممکن است سیگنالهای نادرست تولید کند.
عدم استقلال: باندهای بولینگر بهتنهایی برای تصمیمگیری کافی نیستند و نیاز به تأیید دارند.
حساسیت به تنظیمات: انتخاب دوره و انحراف معیار مناسب برای هر بازار و تایمفریم اهمیت زیادی دارد.
استراتژیهای معاملاتی با باندهای بولینگر
- استراتژی فشردگی (Squeeze Strategy)
مرحله ۱: منتظر باریک شدن باندها بمانید (فشردگی).
مرحله ۲: شکست قیمت به سمت بالا یا پایین را شناسایی کنید.
مرحله ۳: از اندیکاتورهایی مانند RSI برای تأیید جهت شکست استفاده کنید.
مرحله ۴: وارد معامله شوید و حد ضرر (Stop Loss) را کمی پایینتر از باند مقابل قرار دهید.
- استراتژی بازگشت به میانگین (Mean Reversion)
مرحله ۱: وقتی قیمت به باند بالا یا پایین میرسد، منتظر تأیید بازگشت باشید (مثلاً با الگوهای کندلی مانند پینبار).
مرحله ۲: وارد معامله در جهت بازگشت به خط میانی شوید.
مرحله ۳: حد سود را در نزدیکی خط میانی (SMA) تنظیم کنید.
- استراتژی روند (Trend Following)
مرحله ۱: در روند صعودی، وقتی قیمت در امتداد باند بالا حرکت میکند، وارد معامله خرید شوید.
مرحله ۲: در روند نزولی، وقتی قیمت در امتداد باند پایین حرکت میکند، وارد معامله فروش شوید.
مرحله ۳: حد ضرر را کمی پایینتر از باند مقابل تنظیم کنید.

ترکیب باندهای بولینگر با سایر اندیکاتورها
برای افزایش دقت سیگنالها، میتوانید باندهای بولینگر را با ابزارهای زیر ترکیب کنید:
RSI شاخص قدرت نسبی: برای شناسایی شرایط اشباع خرید یا فروش.
MACD: برای تأیید جهت روند.
حجم معاملات (Volume): برای تأیید شکستها و حرکات قوی.
الگوهای کندلی: برای شناسایی نقاط بازگشت یا ادامه روند.
بیشتر بخوانید: همه چیز درباره اندیکاتور مکدی(MACD)
نکات کلیدی برای استفاده از باندهای بولینگر
- تنظیمات مناسب: دوره ۲۰ و انحراف معیار ۲ تنظیمات استاندارد هستند، اما بسته به بازار و تایمفریم میتوانید آنها را تغییر دهید.
- تایمفریم: باندهای بولینگر در تایمفریمهای بالاتر (مانند روزانه یا ۴ ساعته) سیگنالهای دقیقتری تولید میکنند.
- مدیریت ریسک: همیشه از حد ضرر استفاده کنید تا از ضررهای بزرگ جلوگیری شود.
- تمرین: قبل از استفاده در حساب واقعی، استراتژیهای خود را در حساب دمو آزمایش کنید.
نمونه کد برای باندهای بولینگر
کد پایتون برای محاسبه و نمایش باندهای بولینگر
# تابع محاسبه باندهای بولینگر
def bollinger_bands(df, period=20, std_dev=2):
df['SMA'] = df['Close'].rolling(window=period).mean()
df['Upper'] = df['SMA'] + std_dev * df['Close'].rolling(window=period).std()
df['Lower'] = df['SMA'] - std_dev * df['Close'].rolling(window=period).std()
return df
# داده نمونه (میتوانید از فایل CSV یا API استفاده کنید)
data = {
'Close': [100, 102, 101, 103, 105, 104, 106, 108, 107, 109,
110, 112, 111, 113, 115, 114, 116, 118, 117, 120]
}
df = pd.DataFrame(data)
# محاسبه باندهای بولینگر
df = bollinger_bands(df)
# چاپ مقدار باندهای آخرین کندل
print("آخرین کندل:")
print(f"قیمت بسته شدن: {df['Close'].iloc[-1]}")
print(f"میانگین متحرک: {df['SMA'].iloc[-1]:.2f}")
print(f"باند بالا: {df['Upper'].iloc[-1]:.2f}")
print(f"باند پایین: {df['Lower'].iloc[-1]:.2f}")
# رسم نمودار
plt.figure(figsize=(12, 6))
plt.plot(df['Close'], label='Close Price', color='blue')
plt.plot(df['SMA'], label='SMA 20', color='orange')
plt.plot(df['Upper'], label='Upper Band', color='green', linestyle='--')
plt.plot(df['Lower'], label='Lower Band', color='red', linestyle='--')
plt.fill_between(df.index, df['Upper'], df['Lower'], color='gray', alpha=0.2)
plt.title('Bollinger Bands')
plt.xlabel('Index')
plt.ylabel('Price')
plt.legend()
plt.grid(True)
plt.savefig('bollinger_bands.png')
خروجی :
آخرین کندل:
قیمت بسته شدن: 120
میانگین متحرک: 111.25
باند بالا: 121.45
باند پایین: 101.05
کد MQL4 برای چاپ مقادیر باندهای بولینگر
//+------------------------------------------------------------------+
//| Bollinger Bands Indicator - MQL4 |
//+------------------------------------------------------------------+
#property copyright "IranMQL"
#property link "https://www.iranmql.com"
#property version "1.00"
#property strict
#property indicator_chart_window
// ورودیها
input int PeriodBB = 20; // دوره میانگین متحرک
input double Deviation = 2.0; // انحراف معیار
input int Shift = 0; // شیفت
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
// محاسبه باندهای بولینگر
double middleBand = iMA(NULL, 0, PeriodBB, Shift, MODE_SMA, PRICE_CLOSE, 0);
double upperBand = iBands(NULL, 0, PeriodBB, Deviation, Shift, PRICE_CLOSE, MODE_UPPER, 0);
double lowerBand = iBands(NULL, 0, PeriodBB, Deviation, Shift, PRICE_CLOSE, MODE_LOWER, 0);
double closePrice = close[0];
// چاپ مقادیر آخرین کندل
Print("آخرین کندل: ");
Print("قیمت بسته شدن: ", DoubleToString(closePrice, 2));
Print("میانگین متحرک: ", DoubleToString(middleBand, 2));
Print("باند بالا: ", DoubleToString(upperBand, 2));
Print("باند پایین: ", DoubleToString(lowerBand, 2));
// بررسی سیگنالها
if (closePrice > upperBand)
Print("سیگنال احتمالی فروش");
else if (closePrice < lowerBand)
Print("سیگنال احتمالی خرید");
return(rates_total);
}
توضیحات کد MQL4:
این کد مقادیر باندهای بولینگر (باند بالا، باند پایین، و میانگین متحرک) را برای آخرین کندل محاسبه و چاپ میکند.
همچنین سیگنالهای خرید و فروش احتمالی را بر اساس موقعیت قیمت نسبت به باندها نمایش میدهد.
برای استفاده، کد را در متاتریدر ۴ بهعنوان یک اندیکاتور سفارشی (Custom Indicator) کامپایل کنید.
نتیجهگیری
اندیکاتور باندهای بولینگر یکی از قدرتمندترین ابزارهای تحلیل تکنیکال است که به معاملهگران کمک میکند تا نوسانات بازار را درک کنند و نقاط ورود و خروج مناسب را شناسایی کنند. با استفاده از استراتژیهای مختلف مانند فشردگی، بازگشت به میانگین، یا دنبال کردن روند، میتوانید از این اندیکاتور بهصورت مؤثر در معاملات خود استفاده کنید. همچنین، ترکیب آن با سایر ابزارهای تکنیکال و مدیریت ریسک مناسب، دقت معاملات شما را افزایش میدهد.
برای یادگیری عمیقتر، پیشنهاد میکنیم استراتژیهای خود را در حساب دمو آزمایش کنید و از کدهای ارائهشده در این مقاله برای تحلیل دادهها یا اتوماسیون معاملات استفاده کنید. اگر سؤال یا تجربهای در مورد باندهای بولینگر دارید، در بخش نظرات سایت ایران ام کیو ال با ما به اشتراک بگذارید.
پاسخها