۱ .ورودی
۲ .تعریف متغیرهای مورد استفاده
۴ .دستورات
۳ .خروجی
خب اول ببینیم ما چجوری میخوایم میانگین بگیریم؟ هدف ما گرفتن میانگین حسابی حجم هاست.
خب میانگین حسابی یعنی اعداد را باهم جمع کنیم و بر تعدادشون تقسیم کنیم.
خب این فرمول رو میشه با یک حلقه 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)