آموزش فیلترنویسی قسمت پنجم

آموزش فیلترنویسی قسمت پنجم

یک تابع شامل موارد زیر هست:

۱ .ورودی
۲ .تعریف متغیرهای مورد استفاده
۴ .دستورات
۳ .خروجی

خب اول ببینیم ما چجوری میخوایم میانگین بگیریم؟ هدف ما گرفتن میانگین حسابی حجم هاست.

خب میانگین حسابی یعنی اعداد را باهم جمع کنیم و بر تعدادشون تقسیم کنیم.

خب این فرمول رو میشه با یک حلقه for به این شکل نوشت.

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

حالا براحتی میتونیم تابع محاسبه حجم n روزه رو بنویسیم. همون طور که قبلا هم گفتیم، یک تابع شامل موارد زیر هست:

۱ .ورودی
۲ .تعریف متغیرهای مورد استفاده
۳ .دستورات
۴ .خروجی

حالا براحتی میتونیم تابع محاسبه حجم n روزه رو بنویسیم. همون طور که قبلا هم گفتیم، یک تابع شامل موارد زیر هست:

۱ .ورودی
۲ .تعریف متغیرهای مورد استفاده
۳٫دستورات
۴ .خروجی

ساده ترین قسمت خروجی تابع هست. خروجی همونی هست که ما دنبالش هستیم. اینجا ما دنبالمحاسبه حجم n روزه هستیم. پس خروجی تابع یک عدد هست که میانگین حجم n روزه سهم رو نشونمیده.

ورودی هم عدد n هست. ما باید تعیین کنیم میانگین چند روزه رو میخوایم. هر عددی که ما بگیمتابع میانگین حجم تو اون تعداد روز رو میگیره.

خب ورودی و خروجی مشخص شدند بریم سراغ نوشتن تابع…

خب بعد از جایگذاری تابع در محل تعیین شده در قالب… فیلتر ما به شکل زیر در میاد:

حالا فقط مونده شرط نمایش رو پر کنیم.

من میخوام میانگین حجم ۴ روزه بیشتر از میانگین حجم ۱۳ روزه باشه )اعداد رو عمدا ۴ و ۱۳ انتخاب کردم پس شرط رو به این شکل مینویسم:

VolumeOfnDays(3)>3*VolumeOfnDays(14(

این یعنی حجم ۴ روزه بیش از ۳ برابر حجم ۱۳ روزه باشه. پس فیلتر کلی به شکل زیر در اومد.

true==function)(
{
var VolumeOfnDays=function(n)
۱۱
{
var Average=[ih][0].QTotTran5J;
var i;
for(i=1; i<n; i++)
V=( Average*i +[ih][i].QTotTran5J)/(i+1);
return Average;
};
if(VolumeOfnDays(3)>20*VolumeOfnDays(14))
{
return true;
}
else
{
return false;
}
}()

توابع چگونه کار می کنند؟

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

همانطور که در شکل مشاهده می کنید پس از اجرا و اتمام هریک از توابع Test به تابع اصلی برگشت کرده و ادامه دستورات را اجرا کرده است.

حالا قسمت بعدی اینه که میخوایم این نسبت ها رو دیده بان بازار داشته باشیم.

تنظیمات زیر رو انجام بدین در قالب شخصی:

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

خب حالا با اجرای این فیلتر دیده بان رو به این شکل خواهید داشت:

دیدن براحتی از مطالب قبلی که آموزش دادیم این جلسه استفاده کردیم و به این فیلتر ساده و در عین حال کاربردی رسیدیم

علت استفاده از میانگین ۴ و ۱۳ روزه چی هست؟

میانگین های متحرک ۴ – ۷ -۹ – ۱۳ خیلی کاربردیه. تو اندیکاتور آر اس ای از میانگین قیمت ۴ ۱۳ برای رسم استفاده میشه.

یک فیلتر کاربردی دیگه هم در انتهای جلسه بهتون معرفی میکنیم.

جمع شدن صف فروش و گرفتن گارد صعودی
tvol)>(bvol) && (pmin)== (tmin) && ((pl)-(pc))/(pl)*100>1.5 && (ct).Sell_CountI >=(ct).Buy_CountI && (tno)>5 && (tno)>20)