در جلسه ۲۶ و ۲۷ ، نحوه فیلترگذاری دیده بان بازار بورس را با معرفی تعدادی فیلترهای ساده آموزش دادیم . در این مبحث به معرفی فیلتر rsi که مشتمل بر کدهای برنامه نویسی حلقه ای است می پردازیم .
جدول دیده بان بازار بورس علاوه بر فیلدهای استاندارد طراحی شده توسط سازمان بورس ، دارای سه فیلد سفارشی هم هست که شما می توانید در موارد لزوم از آنها برای استخراج شاخصهای مورد نیاز شخصی خود استفاده کنید . برای مشاهده دیده بان بازار سفارشی مشتمل بر فیلدهای کاربر ، مسیر زیر را دنبال کنید :
ابتدا دیده بان بازار سایت مدیریت فناوری بورس ( tsetmc.com ) را احضار میکنیم . سپس از منوهای دیده بان بازار پنجمین منو از سمت راست با عنوان قالب نمایش را انتخاب میکنیم :
سپس از بین قالبهای قابل نمایش ، پنجمین گزینه “جدول + فیلدهای کاربر” را انتخاب میکنیم :
اکنون میبینیم که علاوه بر فیلدهای استاندارد و کلاسیک ، سه فیلد سفارشی با عنوان C0 و C1 و C2 هم به لیست نمایش اضافه شده که بصورت پیش فرض فاقد هر گونه داده ای است ولی شما می توانید با کدنویسی ، این فیلدها را پر کرده و سپس با فیلتر کردن آن ، بهره لازم را از آن ببرید .
در تصویر فوق سه فیلد اضافه شده به انتهای جدول را با فلش قرمز رنگ ملاحظه می کنید.
اکنون به بخش فیلترگذاری وارد شده و کدهای زیر را در فیلتر مربوطه کپی کنید . نحوه کدگذاری فیلتر در جلسه ۲۶ توضیح داده شده است . با کپی کدهای زیر ، Rsi لحظه ای هر نماد در فیلد C0 پر می شود و نسبت میانگین حجمی هر نماد هم در فیلد C1 تکمیل می شود :
true==function()
{
var VolumeOf3Days=function()
{
var V3D=[ih][0].QTotTran5J;
var n;
for(n=1; n<2; n++)
V3D=(V3D+[ih][n].QTotTran5J)/2;
return V3D;
};
var VolumeOf14Days=function()
{
var V14D=[ih][0].QTotTran5J;
var n;
for(n=1; n<13; n++)
V14D=(V14D+[ih][n].QTotTran5J)/2;
return V14D;
};
(cfield1)=Math.round(VolumeOf3Days()/VolumeOf14Days()*100)/100;
return true;
}()
true==function()
{
var CalculateRSI =function(period){
var len=20;
for (var i = 0; i < len ; i++) {
var rec=[ih][len-1-i];
var change=rec.PClosing-rec.PriceYesterday;
if (change> 0) {
rec.gain=change;
rec.loss=0;
}
else
{
rec.gain=0;
rec.loss=-change;
}
}
var gainSum=0;
var lossSum=0;
for (var i = 0; i < period; i++) {
var rec=[ih][len-1-i];
gainSum += rec.gain;
lossSum += rec.loss;
}
var averageGain=gainSum /period;
var averageLoss=lossSum / period;
// Calculate subsequent “average gain” and “average loss” values
for (var i = period + 1; i < len; i++) {
var rec=[ih][len-1-i];
averageGain=(averageGain* (period – 1) + rec.gain) / period;
averageLoss=(averageLoss* (period – 1) + rec. loss)/ period;
rec.averageGain=averageGain;
rec.averageLoss=averageLoss;
}
// Calculate RSI
var RS = 0; // Relative strength
var RSIndex = 0; // Relative strength index
for (var i = period + 1; i < len; i++) {
var rec=[ih][len-1-i];
RS = rec.averageGain/ rec.averageLoss;
RSIndex = 100 – 100 / (1 + RS);
rec.rsi=RSIndex;
}
};
if(typeof [ih][0].rsi==”undefined”)
CalculateRSI(14);
(cfield0)=Math.round([ih][0].rsi);
return true;
}
()
پس از ثبت فیلتر فوق ، دو فیلد سفارشی کاربر در صفحه نمایش دیده بان برای هر نماد مشابه تصویر زیر قابل مشاهده خواهد بود :
با کدهای ثبت شده در این بخش هیچگونه محدودیتی بر روی نمادها ایجاد نشده و بلکه ستون C0 برای هر نماد با عدد اندیکاتور Rsi تکمیل شده است . البته به این حالت نمیتوان گفت فیلتر گذاری شده ، اما اگر تصمیم دارید بعنوان مثال لیست نمادهایی را مشاهده کنید که Rsi کمتر از ۲۰ دارند ، لازم است فیلتر دیگری هم به آن اضافه کنید . برای این منظور مجددا وارد بخش فیلتر شده و بدون اینکه فیلتر قبلی را حذف کنید ، گزینه فیلتر جدید را بزنید و بر روی فیلتر ایجاد شده جدید ، کلیک کنید و کد زیر را در بخش شرط آن کپی کنید :
(cfield0) < 20
استراتژی : با فعال کردن این فیلتر ، نمادهایی نشان داده خواهد شد که Rsi کمتر از ۲۰ دارند و در محدوده اشباع فروش قرار گرفته اند . این فیلتر برای تحلیل زمان مناسب برای خرید مورد استفاده قرار می گیرد . تحلیل اندیکاتور Rsi در جلسه یازدهم وبلاگ آموزش داده شده است . تصویر زیر جدول فیلتر شده نمادهایی را نشان میدهد که در لحظه تهیه این مطلب ، Rsi کمتر از ۲۰ داشته اند :