فیلتر نویسی چیست؟
فیلترنویسی استفاده از شروط و دستورات برنامه نویسی برای فیلتر کردن تعدادی نماد از میان صد ها نماد بازار بورس است. بوسیله فیلتر نویسی می توانیم شرایط تکنیکالی ، تابلوی معاملات ، سابقه و دیگر ویژگی های مورد نظرمان را روی نماد ها اعمال کنیم و به جای بررسی بیش از ۵۰۰ نماد بازار بورس ، تعدادی از نماد های دارای ویژگی مورد نظرمان را بررسی کنیم.
فیلترنویسی در سایت شرکت مدیریت فناوری بورس تهران انجام میشود و زبان مورد استفاده JavaScript است. برای تسلط به فیلترنویسی ابتدا باید با قواعد و ساختار های برنامه نویسی آشنا شد. در این دوره بطور کامل ساختار های مورد نیاز آموزش داده میشود.
یکی از کاربردهای مهم فیلترنویسی دسترسی به سابقه معاملات هر نماد است. به وسیله فیلدهای سابقه ، قیمت های سهام تا 60 روز کاری قبل قابل دسترس خواهد بود. اطلاعات معاملات حقیقی و حقوقی هم از دیگر بخش های مفید فیلترنویسی بورس است.
در این مجموعه آموزشی چه اهدافی دنبال می شود؟
در ابتدا با فیلترنویسی و قسمت های مختلف دیده بان بورس سایت بورس آشنا میشویم. سپس به معرفی فیلدها و عملگرها میپردازیم. فیلدها همان ویژگی ها و مشخصه های هر نماد هستند. بعنوان مثال حجم معاملات با فیلد (tvol) نمایش داده میشود یا هرجا در فیلتر فیلد (pc) به کار برده شود منظور قیمت پایانی نماد است. از ترکیب فیلد ها و عملگرها شروط ساخته میشوند و ترکیب شروط با هم، فیلتر ساده ایجاد میکند که اولین قالب فیلتر نویسی است.
بعد از آموزش و مثال های متعدد از قالب ساده، ساختاری های برنامه نویسی را آموزش میبینیم. بعد از یادگیری ساختار های برنامه نویسی مثل حلقه ها و ساختار های تصمیم، قالب کد نویسی را آموزش میدهیم که فیلترهای پیشرفته تر در این قالب قابل پیاده سازی هستند.
بعنوان مثال فیلتر محاسبه میانگین حجم ماه یک نماد در قالب ساده بیش از 20 دستور و عمل جمع نیاز دارد اما در قالب کد نویسی با یک ساختار حلقه دو خطی قابل انجام است. و در نهایت در پایان دوره فیلترهای آماده و کاربردی معرفی میشوند
داشتن دید وسیع تر در فیلتر نویسی
توجه داشته باشید که دانش فیلتر نویسی باعث می شود دید وسیع تری نسبت به سهام های بازار داشته باشید و شما را نسبت به کسانی که فیلتر نویسی بلد نیستند در جایگاه بالاتری قرار می دهد. ولی دقت کنید که دانستن آن برای همه لازم نیست چون مفاهیم پیچیده برنامه نویسی دارد اما شما باید حداقل استفاده از فیلتر های کاربردی را بلد باشید تا در معاملات خود بهتر عمل کنید.
نمایی از این مجموعه
ردیف | عنوان | لینک | حجم | زمان |
1 | آشنایی با فیلتر نویسی و دیده بان سایت tsetmc | نمایش | 113MB | 21min |
2 | فیلدها و عملگرها | نمایش | 121MB | 46min |
3 | شروع فیلترنویسی، قالب ساده | نمایش | 141MB | 37min |
4 | اطلاعات حقیقی و حقوقی | نمایش | 91MB | 36min |
5 | سابقه قیمت ها | نمایش | 90MB | 42min |
6 | فیلترهای کاربردی | نمایش | 170MB | 58min |
7 | قالب کدنویسی | نمایش | 49MB | 24min |
8 | ساختارهای تصمیم و کنترل (If) | نمایش | 92MB | 35min |
9 | تمرین | نمایش | 72MB | 30min |
10 | ساختار Switch | نمایش | 51MB | 21min |
11 | ساختار For | نمایش | 55MB | 31min |
12 | ساختار While | نمایش | 22MB | 11min |
13 | قالب شخصی و فیلدهای کاربر | نمایش | 68MB | 22min |
14 | رفع اشکال | نمایش | 145MB | 47min |
15 | توابع شخصی | نمایش | 39MB | 18min |
16 | فیلتر اندیکاتور | نمایش | 50MB | 18min |
17 | توابع آماده و آمار های کلیدی | نمایش | 52MB | 17min |
18 | ایجاد سبد و خطایابی | نمایش | 66MB | 13min |
19 | پرسش و پاسخ + فیلتر پولبک و کد به کد | نمایش | 228MB | 55min |
پیوست | فیلترهای دوره | دانلود | کم | |
پیوست | راهنمای فیلدها و عملگرها | دانلود | کم |
201 دیدگاه
Majidi2020
موقع نوشتن فیلتر کامل نیامده بود
true==function ()
{
var Price-min=[ih][0].pricemin;
var i;
for(i=1 ; i[ih][i].pricemin)
Price-min=[ih][i].pricemin;}
return true;
}
amir
سلام وعرض ادب خدمت مدیریت محترم سایت وزین فراچارت
وتشکر بسیار زیاد از استاد شمس بابت آموزش فیلتر نویسی فوق به شکل کاملا حرفه ای
behrang
با سلام و تشکر از زحمات جناب شمس
من فیلتری نوشتم که در اون لازمه مقادیر حداقل قیمت روزهای قبل خوانده بشه اما نمی دونم به چه دلیل در بعضی از سهم ها این مقدار حداقل برابر صفر در نظر گرفته می شه (با وجود اینکه در سابقه قیمتی اون سهم در اون روز قیمت حداقل چیز دیگری است) لطفا بنده رو راهنمایی بفرمایید.
متشکر
h1377j
سلام دوستان اگه مشکل من رو داشتید خوشحال میشم راهنمایی کنید
من کد (l18).indexOf(“مادیرا”)==۰ رو میزنم تو سایت ولی وقتی صفر اخر رو میزنم قاطی میشه جمله و نمیشه ازش کاری کشید
خوشحال میشم راهنمایی کنید
alireza
سلام بر استاد شمس عزیز اطلاعات نمادهای بورسی با فرمت زیر را در طولانی مدت می خواستم (مثلا از یک ماه پیش ….)و همچنین نحوه گرفتن خروجی از این اطلاعات در محیط اکسل ممنون میشم راهنمایی کنید حجم کل معاملات حجم خرید و فروش حقیقی و حقوقی تعداد خرید و فروش حقیقی و حقوقی
محمدحسن
با سلام و تشکر از جناب استاد شمس بابت آموزش فیلتر نویسی
فقط فیلتر حجم ماهیانه پیوست شده اشتباه دارد(اشتباها از PDrCotVal به جای QTotTran5J استفاده شده) و همانطور که اوایل آموزش بیان کردید تا عدد ۲۱ روز قبل رو بیشتر نمیتونه محاسبه کنه
و با جای گذاری عدد ۲۱ به جای ۲۲ در فیلتر پیوسته شده حجم میانگین به درستی نمایش داده می شود
با تشکر از آموزش های جناب عالی
Farhad-Irani
استاد گرامی، شمس عزیز،
مطالب تان عالی ارایه شده است.
سوالی که من دارم روش درج یک متغیر در cfield1 با یک رقم اعشار است
;(var gain5 = Math.round(100*(p1-p5)/p5
;cfield1) = gain5)
استفاده از Math.round موجب حذف کامل بخش اعشاری میشود. آیا قاعدهای وجود دارد؟
سپاس
mohammad
در پاسخ به: Farhad-Iraniسلام فرهاد
;۱۰/(۱۰*var gain5 = Math.round(100*(p1-p5)/p5
;cfield1) = gain5)
این رو وارد کن تا مشکلت حل شه هرچه تعداد ارقام اعشاری مورد نیازت بیشتر بود مثلا دو رقم هر دو ۱۰ رو به ۱۰۰ تبدیل کن
Farhad-Irani
در پاسخ به: mohammadسلام محمد جان
تکنیک خوبی بود و جواب داد. سپاس.
از توجه شما بسیار ممنونم. ایده ظریفی بود.
فرهاد
mohammad
در پاسخ به: Farhad-Iraniکاری نکردم ممنون
baby
سلام
خسته نباشید
میخواستم بدونم امکانش هست که داخل کد نویسی به Titlel های cfiledمقدار داد
در اصطلاح لیبلش رو عوض کرد
البته اگه امکانش هست بقیم قادیر مثل عر
baby
سلام
خسته نباشید
میخواستم بدونم داخل برنامه نویسی سایت tsetmc امکانش هست به cfiled به صورت مستقیم مقدار titel یا نوع قلم یا رنگ یا… داد یا تعداد ستون و مقادیر مورد نیاز رو به صورت کد نویسی نوشت
ممنون
مجتبی شمس نجاتی
در پاسخ به: babyسلام بله در ساخت قالب توضیح داده شده
baby
در پاسخ به: مجتبی شمس نجاتیسلام
شرمنده ولی توضیح ندادید به صورت دستی از قسمت ساخت قالب عوض کردید
دقیقا چیری که داخل فیلم هست مثال گروه صنعت هست که به صورت دستی تبدیلش کردی به میانگین ۲۱ روزه
چیزی که من میخوام اینه که داخل هر کدی که مینویسم بدون نیاز به تغیر دستی لیبل cfiled صفر تا دو از داخل ساخت قالب
داخل خود برنامه کدی بنویسم تا لیبل این سه فیلد عوض بشه
ممنون
محمدجواد محمدی
سلام
ضمن تشکر از استاد گرامی، میخواستم بدونم در کل چه زبان های برنامه نویسی برای بورس ایران قابل استفاده هستند؟
dsarvari
سلام استاد گرامی
من برای فیلتر سبد سهام خودم مشکل دارم بعبارتی نمیتوانم از عبارتی همانند
(l18).indexOf(“فملی”)==۰
بدلیل مشکلات کد پیج استفاده کنم. آیا راه حلی برای استفاده از شناسه سهم در سایت TSETMC وجود دارد.
بعنوان مثال شناسه ۱۲ کاراکتری سهم فملی IRO1MSMI0001 میباشد.
ممنونم
مجتبی شمس نجاتی
در پاسخ به: dsarvariسلام باید در دستورات از “ی” کیبورد عربی استفاده کنید که در کیبور استاندارد فارسی بوسیله SHIFT+X تایپ میشود
مجتبی شمس نجاتی
در پاسخ به: dsarvariدر ضمن دستورتون هم اشتباست قسمت آخر پرسش و پاسخ رو ببینید
ariax77
در پاسخ به: dsarvariبهترین راه حل این هست که پیج tse رو بالا بیارید و اسم رو از همونجا کپی کنید در فیلتر. دیگه مشکلی پیش نمیاد. حروفی مثل “ک” و “ی” و “ه” مشکل دارن و باید عربی نوشته بشن.
Kaveh
با سلام و تشکر بابت دوره خوبتون.
بنده حین فیلترنویسی با یک ارور برخورد نمودم که جهت رفع آن ممنون میشم راهنمایی بفرمایید
خواستم یک آرایه عددی تعریف کنم مطابق ذیل
var index = [ -2, -1, 0, 1, 2 ];
اما حین اعتبارسنجی میگفت که
TypeError: index is not a function
کسی از دوستان اطلاع داره چرا چنین ارور عجیبی میده؟
tareq
سلام و وقت بخیر
تشکر از استاد نجاتی عزیز بابت آموزش مفید و کاربردی که دارن
ببخشید دوستان برای نوشتن علامت نقیض، کمتر بیشتر و مساوی از چه کلیدهایی تو کیبورد باید استفاده کرد؟
مهدی رضائی
سلام استاد
می خواستم چندتا شرط را داخل یک قالب نمایش بدم مثلا میانگین ماه و سرانه خرید درصد اخرین معامله و درصد قیمت پایانی
جدا جدا طراحی کردنش را مشکلی ندارم ولی ترکیب کردن اینها باهم را جواب نمی گیرم
حمید
با سلام و عرض احترام
ضمن تشکر از آموزش عالی که به رایگان در اختیار همه گذاشته اید.
اگر ممکن هست بفرمایید فیلدهای:
” تعداد خریدار حقیقی یا حقوقی به تفکیک” و ” حجم معاملات حقیقی و حقوقی به تفکیک”
برای کد نویسی چه هستند؟ تشکر
حمید
در پاسخ به: حمیدبا سلام
تشکر فراوان! پاسخ را در جلسه آخر داده اید. گوش کردم و استفاده کردم.
Maasoudgh72
سلام و عرض خسته نباشید.بسیار سپاسگزارم بابت این دوره.خیلی جامع و روان و مفید بود.
tareq
به شخصه از استاد نجاتی عزیز متشکرم. تسلطشان بر مطالب ستودنیه
لطفا اگر دوره های دیگری در مورد مهار تهای مورد نیاز بازار سرمایه خصوصا تابلو خوانی دارید لینکش رو بزارید
Nooshafarin
عرض سلام و خسته نباشید خدمت استاد مجتبی شمس و مدیران عالی فراچارت آموزشتون حرف نداشت خواستم تشکر ویژه کنم بخاطر این استاد عالی و شیوه تدریس روان ایشون خصوصا رایگان بودن آموزش واستون آرزوی سلامتی و سود فراوان میکنم موفق باشید🙏🏻
مدیریت
در پاسخ به: Nooshafarinسپاس بیکران دوست عزیز. موفق باشید
ariax77
سلام
بنده یک دوره ی پولی فیلتر نویسی قبل از این دیده بودم از یکی از اساتید به نام بورس ایران. واقعا در حد یک پنجم این مطالب مفید نبود. خواستم همینجا از آقای شمس تشکر کنم بابت آموزش کامل و جامعشون.
مجتبی شمس نجاتی
در پاسخ به: ariax77ممنون دوست عزیز
Dragon will Fly
با سلام خدمت استاد عزیز و تشکر بابت زحماتتتون
در حین دیدن کلیپ آموزشی شما یه مطلبی نظرم رو جلب کرد. تو جلسه پنجم برای نوشتن کد کندل پوشا با توجه با شرطی که گذاشتید
[ih][1].PDrCotVal > [ih][1].PriceFirst &&
یا
[ih][1].PDrCotVal < [ih][1].PriceFirst &&
اینجا یه گره کوچیکی تو کار هست و اون اینه که کندلهای روز قبل اگه با open و close دقیقا مساوی بسته شده باشن تو این شرط جا داده نمی شن در حالی که کندلهای سنجاقک و داجی می تونن داخل کندل بعدی قرار بگیرن
با یه علامت = سهامهایی با این شرایط هم تو نتیجه فیلتر لحاظ می شن. با تشکر از آموزش پر بارتون
مجتبی شمس نجاتی
در پاسخ به: Dragon will Flyبله در فیلتر لحاظ نشده چون انگلف کندل دوجا یا بدنه خیلی کوچک اعتبار کمی داره.
حتی در بعضی مراجع گفته شده حتما دو کندل مخالف هم باشند
Dragon will Fly
با سلام دوباره، تو جلسه ۱۳ گفتید نمی دونید چرا میانگین حجم ماه تو سایت tsetmc با چیزی که محاسبه می کنید فرق داره، به عنوان شاگرد خواستم بهتون یاد آور بشم که هر ماه ۸ روز تعطیل داره، و اونی که tsetmc محاسبه می کنه ۲۲ روز کاری هست. بازم از زحماتتون تشکر می کنم.
مجتبی شمس نجاتی
در پاسخ به: Dragon will Flyتصحیح شد جلسات بعدی
nader
استاد گرامی
لطفا طریقه نوشتن فیلتر کم شدن صف خرید یا فروش را توضیح دهید مثلا روند کاهشی (q01) در صف فروش را فیلتر کند. یعنی (q01) را در فواصل مثلا ۵ ثانیه به خودش (q01) مقایسه نماید و درصورت کاهش در فیلتر نمایش بدهد.
با تشکر آز آموزش های کاربردی شما
مجتبی شمس نجاتی
در پاسخ به: naderبا توجه به اینکه فقط اطلاعات در تایم فریم روزانه هست امکانش نیست
امیر
سلام من از دانشجویان دوره های شما هستم واموزشهاتون رو دنبال می کنم امروز یک فیلتر نشوشتم به صورت زیر
true == function() { var x = 1; if (([ih][x].PriceFirst == 0) || ([ih][x].PClosing == 0) || ([ih][x].PDrCotVal == 0) || ([ih][x].ZTotTran == 0) || ([ih][x].QTotTran5J == 0) || ([ih][x].QTotCap == 0) || ([ih][x].PriceMin == 0) || ([ih][x].PriceYesterday == 0)) { (cfield0) = [ih][x].PriceFirst; (cfield1) = [ih][x].PDrCotVal; return true; } }()
تو این فیلتر نشون میده که وقتی از داده های گذشته نماد استفاده می کنیم همیشه برای روز های غیر از روز معاملاتی جاری (x==0) تعدادی نماد وجود دارند که برخی از پارامتر های اونها صفر هست.و هرچی x رو بیشتر می کنیم تعداد این نماد ها بیشتر میشه به نظر شما من اشتباه برداشت می کنم یا واقعا همین طور هست؟
اگر این طور باشه خروجی فیلتر هایی که می نویسیم دچار خطا خواهد شد
امیر
در پاسخ به: امیرtrue == function()
{
var x = 1;
if (([ih][x].PriceFirst == 0) ||
([ih][x].PClosing == 0) ||
([ih][x].PDrCotVal == 0) ||
([ih][x].ZTotTran == 0) ||
([ih][x].QTotTran5J == 0) ||
([ih][x].QTotCap == 0) ||
([ih][x].PriceMin == 0) ||
([ih][x].PriceYesterday == 0))
{
(cfield0) = [ih][x].PriceFirst;
(cfield1) = [ih][x].PDrCotVal;
return true;
}
}()
مجتبی شمس نجاتی
در پاسخ به: امیرهمیشگی نیست این مشکل
امین ع
با سلام
دست آقای شمس درد نکنه
واقعا دوره ی خوبی بود
ولی من هنوز با [ih][i] مشکل دارم ، هر وقت از سابقه میخام استفاده کنم (فیمت پایانی و …) خطای
Cannot read property ‘0’ of undefined رو میده…
ali anari
با سلام .. بابت زحمتتون ممنون . بنده وقتی فیلتر سابقه معاملات مینویسم خطا میده مینویسه :
TYPE ERROR: CANNOT read property of undefiend
هر عددی و میزنم خطا میده