حجم زیاد داده های تاریخی و پیش بینی در بازار های مالی از یک سو و از طرفی دیگر نیازمندی فعالان این بازار ها در استفاده همزمان از این اطلاعات باعث شده تا راهکار های متنوعی جهت سهولت در استفاده و نهایتا تصمیم گیری سرمایه گذاران گردیده است . برای مثال جست و جو در میان صدها نماد بازار جهت بررسی و پیدا کردن سهم های مناسب کار بسیار سخت و زمان بری می باشد . شرکت مدیریت فناوری بورس تهران یکی از ارکان اصلی بازار سرمایه و زیر مجموعه سازمان بورس اوراق بهادار است . این شرکت قابلیتی تحت عنوان فیلتر نویسی در بورس اضافه کرده است که در بخش دیده بان بازار می توان به آن دسترسی پیدا کرد . 

کاربرد های فیلتر نویسی :

1. سرعت بالا در دسترسی به اطلاعات 

2. پیدا کردن سهام با ویژگی های مد نظر جهت معامله

3. بررسی خروجی استراتژی های معاملاتی خود 

در ادامه با آموزش فیلتر نویسی در بورس همراه ما باشید : 

1. ابتدا وارد سایت شرکت مدیریت فناوری بورس تهران به آدرس tsetmc.com شده و طبق تصویر زیر وارد قسمت دیده بان بازار شوید .

2. پس از ورود به دیده بان مطابق عکس زیر گزینه فیلتر را انتخاب نمایید . 

3. پس از باز شدن پنجره ی فیلتر ، گزینه ی فیلتر جدید را انتخاب و در کادر سفید رنگ شرط فیلتر خود را وارد نمایید و پس از اعتبار سنجی شرط ، گزینه ثبت را انتخاب کنید تا فیلتر اعمال شود . 


فیلتر های کاربردی در بورس

1.فیلتر شماره1 ( rsi بالای 80 یا زیر 20 )

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;
}
}

// Calculate first "average gain" and "average loss"
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.floor([ih][0].rsi); if( [ih][0].rsi>80 || [ih][0].rsi<20)
return true;
else
return false;

}()

2. فیلتر شماره 2 ( بیش از نصف خرید امروز مربوط به حقوقی باشد ) 

(ct).Buy_N_Volume > (tvol) * 0.5

3.فیلتر شماره 3  (بیشترین درصد منفی قیمت پایانی و آخرین قیمت )

(pd1)==(tmin)&&(pc)==(pl)

4.فیلتر شماره 4 ( بیشترین درصد مثبت قیمت پایانی و آخرین قیمت )

(pd1)==(tmax)&&(pc)==(pl)

5. فیلتر شماره 5 ( سهم هایی که صف خرید بیشتر از 2 میلیون دارند ، عدد 2.000.000 به دلخواه قابل تغییر است )

(pd1)==(tmax)&&(qo1)==0&&(qd1)>=2000000

6. فیلتر شماره 6 ( سهم هایی که صف فروش کمتر از 2 میلیون دارند ، عدد 2.000.000 به دلخواه قابل تغییر است )

(po1)==(tmin)&&(qd1)==0&&(qo1)<2000000

7. فیلتر شماره 7 ( سهم هایی که صف فروش بیشتر از 2 میلیون دارند ، عدد 2.000.000 به دلخواه قابل تغییر است )

(po1)==(tmin)&&(qd1)==0&&(qo1)>=2000000

8. فیلتر شماره 8 ( سهم های در آستانه ی صف خرید ) 

(po1)<= (tmax) && (po1)>= (tmax)-1 && (pd1)<(tmax)

9. فیلتر شماره 9 ( سهم های صعودی کوچک با افزایش حجم در چند روز اخیر ) 

true==function()
{
//Calculate the Min Price of Month
var MinPriceOfMonth=function()
{
var minimum=[ih][0].PriceMin;
var n;
for(n=1; n<29; n++)
if(minimum>[ih][n].PriceMin)
minimum=[ih][n].PriceMin;
return minimum;
};
// Calculation Volume of 3 days
var VolumeOf3Days=function()
{
var V3D=[ih][0].QTotTran5J;
var n;
for(n=1; n<2; n++)
V3D=(V3D+[ih][n].QTotTran5J)/2;
return V3D;
};
// Calculation Volume of 14 days
var VolumeOf14Days=function()
{
var V14D=[ih][0].QTotTran5J;
var n;
for(n=1; n<13; n++)
V3D=(V14D+[ih][n].QTotTran5J)/2;
return V14D;
};
//Calculation Stochastic
var Stochastic=function()
{
var HighestHigh=0;
var LowestLow=0;
var x;
var Stoch=0;
for (x = 0; x <14; x++)
{
if ([ih][x].PriceMax > HighestHigh)
{
HighestHigh=[ih][x].PriceMax;
}
if ([ih][x].PriceMin > LowestLow)
{
LowesLow=[ih][x].PriceMin;
}
}
Stoch = 100*((pc)-LowesLow)/(HighestHigh-LowesLow);
return Stoch;
};
if(
// soudi
(((pl)-MinPriceOfMonth())/MinPriceOfMonth()*100)<4
// afzayesh hajm
&& VolumeOf3Days() >= VolumeOf14Days()
// estok paeen
&& Stochastic()<=20
// tedad moamele
&& (tno)>20
// hajm mabna
&& (bvol)<=100000)
{
return true;
}
else
{
return false;
}
}()

10. فیلتر شماره 10 ( سهم های کوچک بعد از چند روز اصلاح که دوباره مستعد صعود هستند ) 

true==function()
{
var MaxPriceOfMonth=function()
{var maximum=[ih][0].PriceMax;  var n;
for(n=1; n<29; n++)if(maximum<[ih][n].PriceMax) maximum=[ih][n].PriceMax; return maximum;
};
var IncrementalVolume=function()
{ var V3D=[ih][1].QTotTran5J; var n;
for(n=1; n<4; n++) V3D=(V3D+[ih][n].QTotTran5J)/2; if ([ih][0].QTotTran5J>=3*V3D)
{return 1;
}
};
if(IncrementalVolume()==1 && (tvol)>= (bvol) &&  ((MaxPriceOfMonth()-(pl))/MaxPriceOfMonth()*100)>=6 &&  ((MaxPriceOfMonth()-(pl))/MaxPriceOfMonth()*100)<=12 &&  (py)<=[ih][1].PriceYesterday)
{
return true;
}
else
{
return false;
}
}()

11. فیلتر شماره 11 ( سهم های کف ماهیانه ) 

true==function()
{
//Calculate the Min Price of Month
var MinPriceOfMonth=function()
{
var minimum=[ih][0].PriceMin;
var n;
for(n=1; n<29; n++)
if(minimum>[ih][n].PriceMin)
minimum=[ih][n].PriceMin;
(cfield0)= minimum;
(cfield1)=(pc)-minimum;
(cfield2)= Math.round(((pc)-minimum)/(pc)*100*100)/100;
return minimum;
};
if((cfield2)<3 && MinPriceOfMonth() !=0)
{
return true;
}
else
{
return false;
}
}()

12. فیلتر شماره 12 ( سهم هایی که 4 روز متوالی منفی بودند ) 

[ih][3].Pclosing > [ih][2].Pclosing && [ih][2].Pclosing  > [ih][1].Pclosing && [ih][1].Pclosing > [ih][0].Pclosing

13.فیلتر شماره 13 ( جمع شدن صف فروش و گرفتن گارد صف خرید ) 

true==function()
{
if((tvol)>(bvol) && (pmin)== (tmin) &&  ((pl)-(pc))/(pl)*100>1.5 && (ct).Sell_CountI >=  (ct).Buy_CountI && (tno)>5 && (tno)>20)
{
return true;
}
else
{
return false;
}
}()

14. فیلتر شماره 14 ( حقوقی بیش از 60 درصد حجم بازار را خریداری کرده است ) 

(ct).Buy_N_Volume >= (tvol) * 0.6

15. فیلتر شماره 15 ( سهم های صعودی با احتمال رشد ) 

(pc)>=(py) && (bvol)<200000 && (plp) >= 1.5

16. فیلتر شماره 16 ( فیلتر سهم های صف فروش ) 

(po1) == (tmin) && (zo1)!=0

17. فیلتر شماره 17 ( فیلتر سهم های صف خرید ) 

(pd1) == (tmax) && (qd1)!=0

18.فیلتر شماره 18 ( شرکت های زیان ده بورس با pe کوچک تر از صفر ) 

(pe)<0

19. فیلتر شماره 19 ( صف خرید 5 برابر حجم مبنا ) 

(pd1)==(tmax) && (qd1)>=5*(bvol)

20. فیلتر شماره 20 ( سهم هایی که در یک ماه گذشته بیش از 20 درصد افت داشته اند ) 

([ih][20].PriceMax-(pl))/[ih][20].PriceMax>.20

21. فیلتر شماره 21 ( سهم هایی که احتمالا در بازار فردا مثبت هستند ) 

(tno)>50&&(tvol)>(bvol)&&(bvol)<=7000000&&(plp)>=(pcp)+ 1.5&&(eps)>0

22. فیلتر شماره 22 ( فیلتر پول هوشمند ) 

(([ih][0].QTotTran5J+[ih][1].QTotTran5J+[ih][2].QTotTran5J+[ih][3].QTotTran5J+[ih][4].QTotTran5J+[ih][5].QTotTran5J)/6)*4<(tvol)

23. فیلتر شماره 23 ( سهم هایی که کندل دوجی یا صلیب دارند ) 

(pl) > (pf) && (pmax)>(pl) && (pmin)<(pl)  && (py) > (pc) && (pl)/(pf)<1.004 && (py)  > (pf)

24. فیلتر شماره 24 ( خروج پول و کد به کد حقیقی به حقوقی ) شماره 1

(py)<(pf)&&(py)<(pmax)&&(tvol)>([ih][0].QTotTran5J+[ih][1].QTotTran5J+[ih][2].QTotTran5J+[ih][3].QTotTran5J+[ih][4].QTotTran5J+[ih][5].QTotTran5J+[ih][6].QTotTran5J+[ih][7].QTotTran5J+[ih][8].QTotTran5J+[ih][9].QTotTran5J+[ih][10].QTotTran5J+[ih][11].QTotTran5J+[ih][12].QTotTran5J+[ih][13].QTotTran5J+[ih][14].QTotTran5J+[ih][15].QTotTran5J+[ih][16].QTotTran5J+[ih][17].QTotTran5J+[ih][18].QTotTran5J+[ih][19].QTotTran5J+[ih][20].QTotTran5J+[ih][21].QTotTran5J+[ih][22].QTotTran5J+[ih][23].QTotTran5J+[ih][24].QTotTran5J+[ih][25].QTotTran5J+[ih][26].QTotTran5J+[ih][27].QTotTran5J+[ih][28].QTotTran5J+[ih][29].QTotTran5J)/30&&((ct).Buy_I_Volume/(ct).Buy_CountI)<((ct).Sell_I_Volume/(ct).Sell_CountI)&&(ct).Buy_N_Volume>0.5*(tvol)&&(ct).Sell_I_Volume>0.5*(tvol)&&(py)<(pc)&&(py)<(pl)

25. فیلتر شماره 25 (خروج پول و کد به کد حقیقی به حقوقی ) شماره 2

(tvol)>[is5]&&((ct).Buy_I_Volume/(ct).Buy_CountI)<((ct).Sell_I_Volume/(ct).Sell_CountI)&&(ct).Buy_N_Volume>0.5*(tvol)&&(ct).Sell_I_Volume>0.5*(tvol)

26. فیلتر شماره 26 ( فیلتر ورود پول هوشمند و کد به کد حقوقی به حقیقی ) 

(py)<(pf)&&(py)<(pmax)&&(tvol)>1.5*(([ih][0].QTotTran5J+[ih][1].QTotTran5J+[ih][2].QTotTran5J+[ih][3].QTotTran5J+[ih][4].QTotTran5J+[ih][5].QTotTran5J+[ih][6].QTotTran5J+[ih][7].QTotTran5J+[ih][8].QTotTran5J+[ih][9].QTotTran5J+[ih][10].QTotTran5J+[ih][11].QTotTran5J+[ih][12].QTotTran5J+[ih][13].QTotTran5J+[ih][14].QTotTran5J+[ih][15].QTotTran5J+[ih][16].QTotTran5J+[ih][17].QTotTran5J+[ih][18].QTotTran5J+[ih][19].QTotTran5J+[ih][20].QTotTran5J+[ih][21].QTotTran5J+[ih][22].QTotTran5J+[ih][23].QTotTran5J+[ih][24].QTotTran5J+[ih][25].QTotTran5J+[ih][26].QTotTran5J+[ih][27].QTotTran5J+[ih][28].QTotTran5J+[ih][29].QTotTran5J)/30)&&((ct).Buy_I_Volume/(ct).Buy_CountI)>=((ct).Sell_I_Volume/(ct).Sell_CountI)&&(pl)>=(pc)&&(plp)>0&&(ct).Buy_I_Volume>0.5*(tvol)&&(ct).Sell_N_Volume>0.5*(tvol)&&(py)<(pc)&&(py)<(pl)