در مقالهی پیش از سری مقالات مرتبط با آمار و ریاضی در بازارهای مالی به شرح «مفاهیم مقدماتی آمار و توزیع نرمال» پرداختیم. در این مقاله به بررسی «دریافت پیام صحیح یک اندیکاتور» میپردازیم.
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف برای سنجش بازده استراتژیهای معاملاتی میتوانید از سفارش کد پایتون، سفارش کد mql و … برای کد کردن و بهینه یابی استراتژیهای خود استفاده کنید. و در عین حال سوای امکان سفارش اکسپرت میتوانید از سفارش اندیکاتور برای دریافت یک نمایش گرافیکی از محاسبات استراتژی خود بهره ببرید.
– – –
یکی از موارد بسیار مهم در حوزهی بازارهای مالی مبحث آمار و ریاضی است. بخش اعظم معاملاتی که در بازارهای مالی هر روزه اتفاق میافتد به نوعی مستقیم یا غیر مستقیم به نوعی به مباحث این حوزه بستگی دارد. تقریبا غالب اندیکاتورها و ابزارهای محاسباتی بازارهای مالی در پلتفرمهای مختلف بنیانی بر یک محاسبهی آماری دارند. اگر مبنای این محاسبات با شرایط جاری بازار سازگاری مناسبی داشته باشد و همچنین ملاحظات مرتبط به مدیریت سرمایه در سیستم مدیریت سرمایه به درستی اعمال شده باشد. در صد این که سیستم معاملاتی موفقی داشته باشیم بالا خواهد بود. برای بهرهگیری از یک سیستم مدیریت سرمایهی مناسب نخست باید با انواع سیستمهای مدیریت سرمایه از طریق یک آموزش مدیریت سرمایه گذاری مناسب بهره جست. میتوان از طریق سفارش کد مدیریت سرمایه و نرم افزار مدیریت سرمایه نیز به این روند کمک کرد.
همه ما با انواع اندیکاتورها در بورس آشنا هستیم و شاید بارها از آنها استفاده کردهایم. اندیکاتورها به دو دستهی کلی تقسیم میشوند. اندیکاتورهای استاندارد که تقریبا روی هر پلتفرمی موجودند و اندیکاتورهای سفارشی که شکل تغییر یافته و توسعه یافتهای از اندیکاتورهای استاندارند و یا از الگوریتم و فرمول جدیدی بهره میبرند که کاملا متفاوت با اندیکاتورهای استاندارد است. اندیکاتورهای سفارشی معمولا از طریق سفارش کد پایتون(python) و یا سفارش کد mql ساخته میشوند. مطالب مختلفی در خصوص آموزش استفاده از هر اندیکاتور وجود دارد که همه آنها استانداردهایی را رعایت میکنند. برای مثال اندیکاتور RSI که با روابط بسیار ساده ریاضی محاسبه میگردد همواره عددی بین 0 تا 100 را نمایش میدهد. گفته میشود که دو سطح کلیدی 30 و 70 سطوح اشباع فروش و اشباع خرید هستند. اما آیا این سطوح به درستی انتخاب شدهاند و پیام درستی را به ما میدهند؟ علم بهینه یابی و یک آموزش بهینه یابی معتبر پاسخ این سوالها را در خود دارد.
شاید پیش از این هرگز به این فکر نکرده باشید که نقاط موثر چگونه تعیین شدهاند و همواره از همین آموزشها برای معامله خود استفاده کرده باشید. اما باید بگوییم روشهای دقیقتری نیز برای استفاده از یک اندیکاتور وجود دارد. قبل از هر چیز باید پیام ارسالی از سوی یک اندیکاتور را به خوبی بدانیم. برای مثال اشباع فروش لزوما صف فروش نخواهد بود و دو نقطه RSI با مقدار 70 اثر یکسانی بر قیمت نخواهند گذاشت. پس چگونه باید پیام صحیح یک اندیکاتور را دریابیم؟ در اغلب مواقع با استفاده از همین نقاط موثر از پیش تعیین شده استراتژی را طراحی میکنند و این کار با ساعتها صرف وقت و آزمون خطا انجام میگردد و اغلب به نتیجه دلخواه نیز نمیرسد. برای دریافت بهترین تنظیمات اندیکاتور و اکسپرت، متناسب با بازار و نمادی که میخواهیم روی آن کار کنیم از علم بهینهیابی استفاده میکنیم. بهرهگیری از یک آموزش بهینه یابی مناسب به شما این دید را میدهد تا از روش و الگوریتم متناسبی برای بهینه یابی اندیکاتور و یا اکسپرت خود استفاده کنید. برای کمک به این بحث میتوان از سفارش کد بهینه یابی و نرم افزار بهینه یابی نیز بهره برد.
شاید بهتر باشد ابتدا به این سوال پاسخ بدهیم که ما به دنبال چه نوع معاملاتی هستیم؟
به مثال زیر دقت کنید :
مدت معامله بیش از 5 روز نباشد
نقطه close حداقل 15 درصد رشد و حداکثر 5 درصد کاهش داشته باشد
برای یافتن چنین نقاطی نمی توان تنها به یک اندیکاتور بسنده کرد و به ترکیب درستی از اندیکاتورها نیازمندیم. سوال مهم دیگری که در اینجا مطرح است این است که : اندیکاتورها را چگونه با هم ترکیب کنیم تا بهترین نتیجه را به دست آوریم؟ به بیان دیگر دقیق ترین پیامی که اندیکاتورها به ما می دهند چیست؟
برای مثال در معامله ای که حداقل افزایش قیمت بسته شدن 10 درصد است نقاط مهم برای خرید و فروش در اندیکاتور RSI مقادیر 77 و 23 هستند که با مقادیر استاندارد و از پیش تعیین شده تفاوت دارند. لذا برای تعیین نقاط موثر یک اندیکاتور باید از ابزار مناسب و نرم افزارهای مناسب برای یافتن چنین نقاطی بهره برد و به این نکته توجه داشت که با تغییر انتظار ما از گرفتن سود در بازار و تعریف ما از معاملات مورد نظر، این نقاط نیز تغییر می کنند. ضمن اینکه ترکیب اندیکاتورها در کنار هم نیز نتایج متفاوتی را برای دریافت یک پیام یکسان به دنبال دارد.برای مثال فرض کنید ما به دنبال نقطه A در بازار هستیم.
در روش اول از اندیکاتورهای RSI و ATR استفاده می کنیم و در روش دوم از اندیکاتورهای RSI و STOCHASTIC استفاده می کنیم.
در روش اول نقاط موثر RSI مقادیر 77 و 23 و در روش دوم نقاط موثر RSI مقادیر 70و 30 هستند. دلیل اصلی تفاوت مقادیر در دو روش تفاوت در اندیکاتورهای همنشین با RSI است. بنابر این باید توجه داشت که استفاده از مقادیر از پیش تعیین شده اندیکاتورها برای نقاط موثر آنها همواره با خطا مواجه خواهد بود و برای کاهش چنین خطایی باید یکی از دو فعالیت زیر را انجام داد :
به دنبال مقادیر جدید (مقادیر برای نقاط موثر در هر اندیکاتور) در ترکیب از پیش تعیین شدهای برای اندیکاتورها باشیم.(یکی از روشهای محاسبه دقیق روش محاسبه به روش Optimize است. یک آموزش بهینه یابی مناسب به شما این امکان را میدهد که بسیار راحتتر از الگوریتم مناسبی اندیکاتور و یا اکسپرت خود را برای پیدا کردن بهترین تنظیمات بررسی کنید. همچنین میتوان از سفارش کد بهینه یابی و نرم افزار بهینه یابی نیز برای این منظور استفاده کرد.)
به دنبال ترکیبی موثر از اندیکاتورها برای مقادیر (مقادیر برای نقاط موثر در هر اندیکاتور) از پیش تعیین شده باشیم.
و در ایدهآلترین شکل به دنبال بهترین مقادیر (مقادیر نقاط موثر اندیکاتور) و بهترین ترکیب باشیم.که می توان با استفاده از نرم افزارهای آماری و بخش Optimize متا تریدر به این سوالات جواب داد.
– – –
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف، سوای این بحث که میتوان استراتژیهای معاملاتی خود را به وسیلهی سفارش کد پایتون یا سفارش کد mql و سفارش اکسپرت کد کرد و در پروسهی بک تست اعتبار سنجی نمود. همچنین میتوان از طریق سفارش اندیکاتور به آنها یک جنبهی نمایشی نمایانتری برای تسهیل تحلیل در سابقهی نماد داد.
– – –
در مقالهی بعدی به بررسی مفهوم دیگری از مفاهیم حوزه ی آمار و ریاضی میپردازیم.
در نخستین مقاله از سری مقالات مرتبط با آمار و ریاضی به شرح و بررسی «مفاهیم مقدماتی آمار و توزیع نرمال» میپردازیم.
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف برای سنجش بازده استراتژیهای معاملاتی میتوانید از سفارش کد پایتون، سفارش کد mql و … برای کد کردن و بهینه یابی استراتژیهای خود استفاده کنید. و در عین حال سوای امکان سفارش اکسپرت میتوانید از سفارش اندیکاتور برای دریافت یک نمایش گرافیکی از محاسبات استراتژی خود بهره ببرید.
– – –
مفاهیم آماری در بررسی و آنالیز بازار سهام، بورس، آتی سکه، بازارهای جهانی و ارز بسیار پرکاربرد هستند. دادهها بهخودیخود چیزی بیشتر از اعداد نیستند، اما با استفاده از مفاهیم و روش آماری میتوانیم این دادههای خام را درک کنیم و از آنها بهرهی مورد نیاز را ببریم. در مقالهی پیش رو به معرفی مفاهیم مقدماتی آمار خواهیم پرداخت و در مقالات بعدی بهتفصیل روشهای متعدد آماری و کاربردهای متنوع آن در بازار را توضیح خواهیم داد.
آمار توصیفی
آمار توصیفی روشی برای توضیح مشخصات دادهها است. رسم نمودارهای توصیفی مانند انواع هیستوگرامها و نمودارهای دایرهای، محاسبه مقادیری مانند میانگین، واریانس میانه، مد و …. که حاکی از مشخصات کلی جامعه است ابزارهایی است که در آمار توصیفی مورداستفاده قرار میگیرد.در آمار توصیفی هیچگونه تجزیهوتحلیلی بر رویداده صورت نمیپذیرد و تلاش بر آن است تا با نمایش ویژگیهای دادهها شناخت مناسبی نسبت به آن پیدا کنیم.
آمار استنباطی
چنانچه به جای مطالعه و بررسی کل جامعه که معمولاً غیرقابلدسترس است، به بررسی و تجزیهوتحلیل نمونهای از جامعه بپردازیم آنگاه آمار استنباطی به ما کمک خواهد کرد.
در اغلب مواقع جوامع آنقدر وسیع هستند که دسترسی به تمامی اطلاعات جامعه امکانپذیر نیست و یا هزینه بسیار زیادی برای جمعآوری اطلاعات باید در نظر گرفت، به همین دلیل با استفاده از روشهای موجود در آمار استنباطی و بررسی بخشی از جامعه به شناخت جامعه میپردازیم. برای مثال ما نمیتوانیم میانگین وزن جامعه را در اختیار داشته باشیم زیرا که این امر مستلزم توزین تمامی افراد جامعه است، اما میتوانیم با استفاده از روشهای موجود در آمار استنباطی و بررسی بخشی از جامعه (نمونه)، با درصد خطای قابل قبولی، میانگین جامعه را شناسایی کنیم.
جامعه و نمونه
وقتی در مورد جامعه آماری صحبت میکنیم منظور ما تمامی عناصر موجود در جامعه است. برای مثال جامعه ساکنین شهر تهران یعنی تکتک افراد ساکن در شهر تهران، اما وقتی در مورد نمونهای از جامعه صحبت میکنیم یعنی اینکه به بخشی از جامعه که با روشی مشخص انتخابشده است اشاره میکنیم. زمانی از نمونهگیری استفاده میکنیم که دسترسی بهتمامی عناصر جامعه امکانپذیر نبوده و یا پرهزینه باشد.
برای مثال وقتی به بررسی دادههای بورس میپردازیم اطلاعات ما محدود به چهار مقدار قیمت باز شدن، قیمت بسته شدن ، بالاترین قیمت و پایینترین قیمت خواهد بود و از اطلاعات دیگر بهرهمند نیستیم، بنابراین در بررسی بازار ناچاریم از نمونهای که در اختیارداریم استفاده کنیم.
در واقع بنیان بخش اعظم سیستمهای معاملاتی، سیستمهای مدیریت سرمایه و الگوریتمهای بهینهیابی همین دادههای آماری ست. با فرص حصول یک سیستم مدیریتسرمایهی مناسب با استفاده از مبانی آموزش تحلیل تکنیکال و تحلیل فاندامنتال آن چه که برای کسب بهترین نتیجه در معاملات ضروری است تسلط بر مبانی آموزش مدیریت سرمایه گذاری و ریسک و آموزش بهینه یابی است. در هر یک میتوان از سفارش کد نیز استفاده کرد. (سفارش کد مدیریت سرمایه و سفارش کد بهینه یابی) و از نرم افزار مدیریت سرمایه و نرم افزار بهینه یابی نیز بهره برد.
پارامترها و آمارههای نمونه
یک پارامتر ابزاری برای اندازهگیری مقادیری است که در آمار توصیفی استفاده میگردد. برای مثال میانگین یک پارامتر است وقتیکه در جامعه استفاده میگردد. پارامترهای متعددی در آمار توصیفی وجود دارند: میانگین، واریانس، مد و میانه که همه اینها مقادیری هستند که برای شناخت و ارائه توضیح درباره جامعه یا نمونه مورد استفاده قرار میگیرند. یک پارامتر تمامی خصوصیات جامعه را توضیح میدهد.
وقتی از یک پارامتر برای اندازهگیری مقادیر موردنظر در نمونه استفاده میکنیم در حقیقت ما در حال ایجاد یک آماره هستیم زیرا مقادیر محاسبهشده در نمونه، مختص نمونه است و برای شناخت جامعه ملزم هستیم که از روشهای موجود در استنباط آماری استفاده کنیم.
انواع دادهها
دادههای اسمی
همانطور که از نامگذاری آن مشخص است این نوع دادهها در مورد اسم، صفت یا ویژگی دادهها هستند و نمیتوان آنها را بهصورت عدد در نظر گرفت و یا عملیات ریاضی بر روی آنها انجام داد. برای مثال یک عدد بنز + یک عدد پیکان معنی خاصی نخواهد داشت.
دادههای رتبهای
مقیاس رتبهای یا ترتیبی نسبت به مقیاسهای اسمی پیشرفتهتر هستند و در آنها میتوان شدت و ضعف یک ویژگی را بررسی کرد. این نوع از متغیرها مربوط به دادههایی هستند که در یک نظام سلسله مراتبی، رتبه ویژگی مورد بررسی را نشان میدهند اما اندازه دقیقی از ویژگی را نمایش نمیدهند.
دادههای فاصلهای
این نوع مقیاس از انواع پیشین که در بالا بدان اشاره شد پیشرفتهتر است و در آنها میتوان علاوه بر دارا بودن ویژگی موردنظر مقادیر کمی یا کیفی آن را نیز مشاهده کرد. برای مثال نمرات دانشجویی از این نوع هستند. نمره 17 از 20 کمتر است و فاصله آنها باهم 3 نمره است.
دادههای نسبی
این نوع از دادهها دقیقترین و بهترین دادهها هستند و علاوه بر سطوح مقادیر تعیین سطوح و مقادیر یک متغیر و فاصله بین مقادیر موجود میتوان از شاخصهای دیگری مانند میانگین هندسی و ضریب پراکنش نیز استفاده کرد. دادههایی مانند میزان پول، قد، وزن و …. از این نوع هستند.
توزیع فراوانی
توزیع فراوانی در آمار، اقتصاد، علوم مهندسی و همچنین در بازار خلاصهسازی پرسودی از دادهها است. با استفاده از توزیع فراوانی میتوانیم تمام ویژگیها و خصوصیات یک جامعه را بهخوبی تعریف کنیم و همواره بتوانیم با شناخت کامل دادهها رفتار آنها را بررسی و پیشبینی کنیم. توزیع فراوانی مشاهدات و عناصر موجود را طبقهبندی نموده و فراوانی مشاهدات را برحسب هر طبقه توضیح میدهد. در توزیع این کار بهصورت درصد یا عدد نمایش داده میشود.برای اینکه با توزیع بیشتر آشنا شویم یک مثال از توزیع میزنیم:
توزیع نرمال
یکی از مهمترین و اساسیترین توزیعها در آمار، توزیع نرمال است.این توزیع از دسته توزیعهای پیوسته است. بهطورکلی بسیاری از اتفاقات طبیعی مانند باران را میتوان با توزیع نرمال توضیح داد.
پارامترهای توزیع نرمال را در بالا مشاهده میکنید. توزیع نرمال دارای میانگین و واریانس مشخص است و معروفترین توزیع نرمال که در آزمونهای آماری مورداستفاده قرار میگیرد توزیع نرمال استاندارد با میانگین صفر و واریانس یک است.
نمودار توزیع نرمال به شکل زیر است:
نمودارهای بالا مربوط به چهار توزیع نرمال با میانگینها و واریانسهای مختلف است. خط قرمزرنگ نمایانگر توزیع نرمال استاندارد است.
در توزیع نرمال انتظار داریم که بیشتر دادهها در اطراف میانگین قرار بگیرند و هرچه از میانگین فاصله میگیریم تعداد دادهها کمتر باشد. تقریباً 68 درصد کل اعدادی که از یک توزیع نرمال گرفته میشوند در فاصله برابر یا کمتر از یک انحراف معیار از میانگین قرار دارند. در فاصله دو انحراف معیار از میانگین 95 درصد دادهها قرار میگیرند.
با همین استدلال است که اندیکاتور باند بولینگر ساخته میشود.
– – –
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف، سوای این بحث که میتوان استراتژیهای معاملاتی خود را به وسیلهی سفارش کد پایتون یا سفارش کد mql و سفارش اکسپرت کد کرد و در پروسهی بک تست اعتبار سنجی نمود. همچنین میتوان از طریق سفارش اندیکاتور به آنها یک جنبهی نمایشی نمایانتری برای تسهیل تحلیل در سابقهی نماد داد.
در مقاله پیشین از سری مقالات مرتبط با برنامه نویسی در بازارهای مالی به شرح و بررسی «بک تست و تست پیش رو ؛ اهمیت همبستگی» پرداختیم. در این مقاله به بررسی «مصاحبه با والری مازورنکف» میپردازیم.
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف برای اعمال هر یک از این مفاهیم در استراتژیهای معاملاتی میتوانید از سفارش کد پایتون، سفارش کد mql و … برای کد کردن و بهینه یابی استراتژیهای خود استفاده کنید. و در عین حال سوای امکان سفارش اکسپرت میتوانید از سفارش اندیکاتور برای دریافت یک نمایش گرافیکی از محاسبات استراتژی خود بهره ببرید.
– – –
«
قصد داشتم دو چیز را با شرکت در مسابقات اخیر نشان دهم:
1. توسعه یک استراتژی سودآور آسان است.
2. چگونه برخی استراتژیها را میتوان با هم ترکیب کرد در حالی که برخی از آنها تا مدتها زیان ده باشند.
»
طراحی و پیاده سازی یک اکسپرت برای جفت ارزهای گوناگون، چه از نظر یافتن استراتژی های مناسب و چه از جهت فناوری کار پیچیدهای است. به همین دلیل است که در بسیاری موارد این کار به شکل تیمی انجام میشود به این ترتیب که تیمی مسئولیت تعیین سیستم معاملاتی میشود تیمی روی موراد مربوط به بهینه یابی کار میکند تیمی روی مباحث مدیریت سرمایه کار میکند و در نهایت تیمی بر روی اجرا و برنامه نویسی کار میکند.
کد کردن یک استراتژی خواه از طریق سفارش کد پایتون(python) خواه از طریق سفارش کد mql و یا هر زبان دیگری و انجام بکتست روی کد باعث میشود بر مبنای نتیجهی بکتست خیلی راحتتر بتوانیم دربارهی بازدهای یک استراتژی نظر بدهیم.
به هر روی اگر هدف به درستی مشخص شود، هیچ چیز ناممکن نیست. این چهارمین بار بود که والری مازورنکف، اکسپرت چند ارزی خود را ارائه داد. به نظر میرسد این بار موفق به یافتن راه درست شده است. زمانی که اکسپرت او جزو ده تای اول بود، موفق به مصاحبه با او نشدیم. والری نحوهی معامله اکسپرت خود را برای ما توضیح داد.
این نخستین بار نیست که شما در مسابقات قهرمانی شرکت میکنید. آیا نسبت به سالیان گذشته تغییری مشاهده کردهاید؟
بعید میدانم که تغییرات عمدهای رخ داده باشد. تنها متوجه شدم تعداد کمتری از شرکت کنندگان ردّ صلاحیت شدهاند. سالانه تعداد زیادی از اکسپرتها به شیوۀ پر ریسکی کار میکنند و روی بخت و اقبال حساب میکنند. از نظر من اولویتهای معاملهگری به سمت روشهای سادهتری گرایش یافته است.
در مورد روشهای ساده چطور؟ آیا آنها حق دارند وجود داشته باشند؟
روشهای ساده برای همه مناسب است؛ زیرا برای مثال همۀ برنامه نویسان قادر به مطالعه یا ایجاد شبکههای عصبی نیستند. و همۀ معامله گران نمی توانند بیان کنند دقیقا در یک شبکه به چه چیزی نیاز دارند. اما یک جفت میانگین متحرک و حد ضرر یا حد سود حساب شده از نظر آماری تقریبا توسط تمام معامله گران و برنامه نویسان به خوبی قابل درک و تسلط کامل است. چنین چیزی برای مسابقات قهرمانی نیز کارآمد است. اگر اکسپرت ساده باشد، توجه معامله گران باتجربه و همچنین تازهواردها را به خود جلب می کند. شخصا فکر میکنم که هستۀ یک ایده باید ساده باشد.؛ هر چند این هسته ممکن است با ویژگیهای پیچیدهتری پوشش یابد.
آیا تا به حال به این فکر کردید که پس از کسب تجربۀ کافی، موفق به کسب چنین نتیجهای شدهاید؟ تا جایی که اطلاع دارم یک پس زمینۀ ریاضی دارید.
من همواره چنین نقطۀ نظری داشتهام و طی سالها درستی آن برایم مسجّل شده است. مسابقات قهرمانی جایی بود که در آن میتوانستم از آموختههای ریاضی خود به خوبی استفاده کنم.
شما برای ATC سال 2006 یک اکسپرت ساده برای مسابقات اکسپرت چندارزی ارائه کردید. آیا میتوانید آنها را ساده بنامید؟
من از تجربهی نوشتن اکسپرت چندارزی را در MQL4 برخوردار بودم، هر چند کار آسانی نبود. زبان MQL5 این کار را بسیار ساده کرده است. به نظرم هیچ کار دشواری در استفاده از روش چندارزی وجود ندارد.
اکسپرت شما امسال نتایج خوبی را نشان میدهد. آیا این همان چیزی است که شما اخیرا آن را “استفادۀ مناسب از آموزش ریاضی” نامیدهاید؟
در مصاحبه سال گذشته گفته بودم که توسعه یک اکسپرت نسبتا بی ضرر کار چندان دشواری نیست(البته در زمان معقول). همچنین، متذکر شدم که مشکل اصلی اکثر معامله گران، مدیریت سرمایه است که می تواند یک اکسپرت خوب را به ورطه نابودی بکشاند.(استفاده از یک آموزش مدیریت سرمایه گذاری و ریسک معتبر میتواند به معاملهگر دید روشنی در مورد روشهای مختلف مدیریت سرمایه بدهد.) “حجم خوب” احتمالا یک عبارت قدرتمند است. در حقیقت، هیچ چیز دشواری در آن وجود ندارد. بهینه سازی اکسپرت با استفاده از شبکۀ ابری MQL5 حدود یک ماه به طول انجامید. بهینه سازی در چند مرحله انجام شد.(برای آشنایی بیشتر با مفاهیم مربوط به بهینه یابی میتوانید به این لینک مراجعه کنید.) همان طور که قبلا اشاره کردم، F بهینه به عنوان روش مدیریت سرمایه انتخاب شد؛ در حالی که “معادله معامله گری بنیادین” ، همان گونه که رالف وینس نام گذاری کرد، به عنوان تابع بهینه سازی هدف مورد استفاده قرار می گیرد. همچنین مسائلی در مورد ترکیب استراتژیها وجود داشت. در واقع، همۀ اینها به خاطر ریاضی بود. در مورد “حجم خوب”، یافتن کسی که حتی در چنین حجمی عمدتا از ریاضی استفاده میکند، کار دشواری بود.
بنابراین، آیا منظورتان این است که یک اکسپرت ترکیبی از روش های سادۀ معاملهگری و رفتار نتایج از دیدگاه ریاضی است؟
بهتر از این نمی شد بیان کرد. بله، دقیقا. روشهای ساده معاملهگری به آسانی برای همه قابل فهم است؛ در حالی که اکثر توسعهدهندگان اکسپرت تنبل تر از آن هستند که دانش ریاضی را برای نتایج به کار گیرند و یا دانش کافی برای چنین کاری ندارند.
در مورد Wizard MQL5 توضیحی دارید؟
صادقانه، چیزی نمی توانم بگویم؛ زیرا که به دلایل شخصی هیچ گاه از آن استفاده نکردهام. من به کتابخانه استاندارد اعتماد ندارم زیرا میتوانم تمام آن چیزی که مورد نیازم است را خودم بنویسم و اکسپرت من 100 % سریعتر باشد.؛ این یعنی باید مبلغ کمتری برای شبکۀ ابری MQL5 بپردازم. البته برنامهنویسان تازهکار و معاملهگران میتوانند از این قابلیت برای بررسی نتایج برخی ایدههایشان استفاده کنند.
شرکت در مسابقات برای شما معنایی دارد؟
قصد داشتم دو چیز را با شرکت در مسابقات اخیر نشان دهم:
1. توسعه یک استراتژی سودآور آسان است.
2. چگونه برخی استراتژیها را میتوان با هم ترکیب کرد در حالی که برخی از آنها تا مدتها زیان ده باشند.
اکسپرت کنونی شامل 7 یا 8 استراتژی دارای حد سود یا حد ضرر مشترک است (که امکان محاسبه راحت تر F بهینه را فراهم می کند)، در حالی که جهت ورود به بازار متفاوت است. با این حال، این الگو این جا نیز مورد استفاده قرار میگیرد.بیایید فرض کنیم که a و b و c متغیرهای منطقی هستند و برخی از شرایط را نشان میدهند. برای مثال:
به طور کلی، ما یک مجموعۀ خاص از شرایط داریم.
در این حالت، تصمیم خرید توسط معادلۀ زیر توصیف میشود: buy = f1(f2(a, f3(b, c)))
که f1 و f2 و f3 مقادیر بولی را برمیگردانند و شکل زیر را به دست میآورند:
f1(a) = a یا !a(پیش از بهینه سازی تعریف شده)
f2(a, b) = a^bیا a&bیا a | b
f3 مثل f2 به نظر می رسد؛ البته با علامت منطقی خودش.
بنابراین، من تنها می بایست موفق ترین ترکیب عملگرهای منطقی را انتخاب کنم تا اکسپرتم را به فرجام برسانم. و این عملیات را می توان به صورت خودکار، و نه دستی، انتخاب کرد. همچنین نوع دیگری از تابع خرید ممکن است انتخاب شود.
تصور می کنم در حال حاضر بیشتر خوانندگان ما روشهای یادشده را ساده بنامند. هر ایده ساده ای را به سرعت می توان در ویزارد MQL5 امتحان کرد. به نظر شما چنین ایده ای چه ویژگیهایی را باید داشته باشد؟
روشهای بیان شده از نظر برنامه نویسی بسیار ساده هستند. البته استفاده از یای انحصاری چندان معمول نیست، اما “&&” و “||” عملگرهای منطقی بسیار رایجی هستند که تقریبا هر فردی از آنها استفاده میکند. ویزارد MQL5 باید در راستای بهینه سازی کد توسعه داده شود تا هر ایده ای نه تنها در تستر بررسی شود، بلکه با شبکهی ابری MQL5 بهینه شود. همچنین برای بهینه سازی باید زمانی قابل مقایسه با زمان لازم برای تولید اکسپرت معادل صرف شود. برای مثال:
buy = ! (a & (b ^ c))
//
buy = ! (a & (b ^ c))
//
واقعا بسیار ساده است!
چطور توانستید این 7 – 8 استراتژی را یافته و در یک اکسپرت ترکیب کنید؟ آیا شما به دنبال روشی مناسب برای هر جفت ارز، بهینه سازی و سپس ترکیب همه چیز برای تولید یک سیستم هستید یا به گونه ای دیگر عمل کرده اید؟
من به دنبال یک ترکیب منطقی مناسب برای هر جفت ارز بودم و سپس یک “معادله معاملاتی بنیادی” را با یک lot معمولی به بیشترین حالت بهینه کردم. در حالتی که PFدر کل قسمت مورد آزمایش بزرگتر از 1.5بود، استراتژی پذیرفته می شد.
اگر PF< 1.5بود، برای پذیرش آن استراتژی نیازمند افزایش سپرده به میزان حداقل 10برابر بر اساس F بهینه بودیم. هر جا که کمتر از 30معامله بود، به سادگی آن را نادیده می گرفتیم. و “معادله بنیادی معامله” با یک درجه مورد استفاده واقع شد، هر چند به طور کلی نیازی به آن نیست.
کار بعدی، ترکیب استراتژی های منتخب با نسبت مناسب بود. وظیفه بعدی باید برای آن پاسخی می یافت که: من نیاز داشتم که وزن هر استراتژی را با شماره عبور پیدا کنم. از آنجا که ما برای مسابقه 12 جفت داریم، نیاز داشتیم یک استراتژی “بدون معامله” را طبق نظر وینس اضافه کنیم، بنابراین لازم بود راهکاری برای تعیین وزن های درست بیابیم تا معادلۀ x1 + x2 +… + x11 + x13 = 1برآورده شود.
من موفق شدم راه آن را پیدا کنم، اما 13 چرخۀ تعبیه شده را فراهم می کند. این بدان معنی است که این روش در چنین ابعادی بی نتیجه است. بنابراین، ابعاد را به 4 کاهش دادم. برای نمونه، جفت ها را به طور تصادفی به شکل 3 تایی مرتب، و وزن هر جفت را در هر سه گانه انتخاب کرده ام. بنابراین من 4 استراتژی سه تایی دارم. در آخرین مرحله، من وزن هر سه گانه را در یک کار همزمان برای هر چهار تا سه گانه انتخاب کردم.
در این مرحله یک اشتباه حاصل شد، زیرا این استراتژی ها باید به طور تصادفی و نه توسط سه گانه یا چهارگانه ترکیب می شدند. من باید جدول همبستگی و استراتژیهای ترکیبی را با همبستگی کمتر ایجاد می کردم. در آن صورت به جای دو استراتژی قدیمی، یک استراتژی جدید داشتم و همبستگی باید مجددا محاسبه می شد. متاسفانه این ایده کمی دیر به ذهنم خطور کرد اما مطمئنم که ترکیب بر پایۀ همبستگی موثرتر از ترکیب تصادفی است.
این بیشتر به کیمیاگری می ماند. آماده سازی چنین اکسپرتی با توجه به آن دستورالعمل چقدر به طول می انجامد؟ و تا چه مدت برای استفاده مناسب است؟ (برای کار آنلاین)
آماده سازی من با استفاده از شبکه ابری MQL5 در حدود یک ماه طول کشید. به همین ترتیب زمان زیادی را صرفه جویی کردم. همچنان که اکسپرت در یک روز آماده شد، بقیه همه حرکات مکانیکی بودند که از چیزهای دیگر منحرف نمی شدند.
در مورد رابطه، گمان می کنم برای چند ماه مرتبط باقی بمانند اما به طور قطع نمی دانم. حتی می توانم زمان کمتری صرف کنم چون این آزمایش با استفاده از همۀ تیک ها برگزار شد. اگر چه در هنگام انتخاب استراتژیها می توانستم از OHLCاستفاده کنم. در این حالت آماده سازی 2 تا 3 هفته به طول می انجامید.
بنابراین آیا شما توانسته اید راهکاری برای وظیفۀ اصلی هر معامله گر پیدا کنید؟ آیا در حال حاضر دارای تکنولوژی ایجاد سیستم معاملاتی خودکار هستید که برای حساب های واقعی قابل استفاده است؟
خوب، اکسپرت امسال یک معیار است، تنها می خواستم نشان دهم که نیازی به درگیر کردن مغز با 15 میانگین متحرک، 12 مکدی و 4 پارابولیک نیست. البته این برای هر معاملۀ واقعی مناسب نیست. اگر بخواهیم آن را بر روی یک حساب واقعی به کار گیریم، لازم است که:
1- از معادلۀ معامله گری بنیادی طی انتخاب استراتژی ها استفاده کنیم.
2- افزودن معیارهای استاندارد: PF > 1 و drowdown < X و غیره.
3- به یاد داشته باشیم که این Fبهینه است. بنابراین تنها باید حد ضررها به حساب سپرده شود. برای مثال، بقیه سرمایه ممکن است برای خرید اوراق قرضه مورد استفاده قرار گیرد.
اما من قدرت تخیل قوی دارم و می توانم از راه های متعددی برای ایجاد استراتژی ها استفاده کنم. قصد دارم بعد از سال جدید یک مشاور خبره را اساس اصول زیر در یک حساب واقعی بیازمایم.
کدام یک بیشتر وقت شما را می گیرد؟ انتخاب استراتژی ها یا پیاده سازی آن ها در یک قطعه کد؟
فکر میکنم جستجو برای یافتن استراتژی ها زمان گیرتر است. پیاده سازی کم اهمیت تر و به اندازۀ کافی آسان است. هر برنامه نویس باتجربه کلاس ها، الگو ها و توابعی را فراهم می کند که می تواند با آنها کار کند. ایجاد یک اکسپرت جدید در MQL5زمان زیادی را از یک برنامه نویس باتجربه نمی گیرد؛ هر چند برای یک برنامه نویس مبتدی این طور نیست.
در مسابقات، شاهد استراتژی های چندارزی دیگری هم بودیم. آیا آنها را بررسی کرده اید؟ نظری در موردشان دارید؟
می توانم به اکسپرت iasدر بین روبات های معاملاتی چندارزی اشاره ای داشته باشم، زیرا فکر می کنم دارای ایده های معقولی در ارتباط با مدیریت سرمایه است. همچنین از MAو BANDSاستفاده کردم و مقایسۀ بین موضع های باز آن ها با مشاور خودم برایم جالب بود. در میان رباتهای معاملاتی تک ارزی، مایلم یادی از Xupyprکنم ، نه به خاطر خود اکسپرت بلکه برای روش آن. در حقیقت، Xupyprبه آسانی هر چه بیشتر استراتژی های پیچیده را به ریشخند گرفته است.
گفته می شود قوانین مسابقات قهرمانی به گونه ای است که یک معامله گر برای برنده شدن، مجبور است مشاوران خبرۀ چندارزی بنویسد. اما تا کنون در بین چنین استراتژیهایی برنده ای وجود نداشته است.
به نظرم قوانین عملا تا حدی نامتوازن هستند. بهتر است در این حالت آنها را اصلاح کنیم. اما دیر یا زود، یک اکسپرت چندارزی بالاخره موفق خواهد شد. به عنوان مثال، من در حال حاضر من از دو یا سه نماد بین 12 تای موجود سود دارم. و اولین نماد سودآور را می تون در استراتژی مشاهده کرد. اگر من یک ربات معاملاتی تک ارزی ارائه کرده بودم، به دشواری به استراتژی پنجم می رسیدم و اکنون اکسپرت من در بین دو تای آخر در اما شرکت کنندگان در مسابقه قرار می گرفت. اما با افزایش تعداد رباتهای معامله گری تک ارزی، احتمال برنده شدن یکی از بین آنها بیشتر است. امیدوارم هر چه زودتر این امر تغییر یابد.
در مورد روش yyy999 از چین چه نظری دارید؟ آیا تابحال چنین چیزی را امتحان کرده اید؟
بله. اما همۀ اینها بی فایده بود. این روش ممکن است در زمان خاصی خوش اقبال باشد. تنها راه استفاده از روش مدخلها ، تقسیم سرمایه به چند بخش و استفادۀ بخش به بخش آنها است. اما این روش برای بلندمدت غیرقابل قبول است. من فکر می کنم فیلد Balance هیچ معنایی ندارد زیرا با واقعیت مرتبط نیست.
به نظر می رسد که مقادیر ثابت حد سود و حد ضرر در شرایط مالی انتخاب شده اند. آیا بدون آن ها شدنی بود؟ و چه نتیجه ای در پی داشت؟
خیر؛ حد ضررها و حد سودها در نقاطی در محدودۀ 10 تا 100 پوینت از حد ضرر و 10 تا 200 پوینت از حد سود انتخاب می شوند (همۀ پوینت ها به سیستم چهار رقمی اشاره دارند). نمی توانستم بدون SL یا TP کاری انجام دهم. تنها کاری که می توانستم انجام دهم، انتخاب حدود سود و ضرر شناور بود. اما بک حد ضرر ثابت برای F بهینه مناسب است و یک حد سود ثابت برای ساده سازی کار انتخاب شده است.
چه توصیه ای برای شرکت کنندگان و تماشاگران دارید؟
به شرکت کنندگان توصیه می کنم بیشتر روی مدیریت سرمایه تمرکز داشته باشند. اگر در حین انجام مسابقات هم باشید، باید روی یک حساب واقعی به این کار توجه کافی کنید. برای تماشاگران، توصیه ام این است که بهتر است تنها مشاوران خبرۀ پیشتاز را تحلیل نکنید. همچنین برخی از آنها نباید چندان پرریسک باشند.
آیا حاضرید دانش و روشهای مورد استفاده تان را با سایر معامله گران به اشتراک بگذارید؟ به نظر می رسد نکاتی برای به اشتراک گذاشتن دارید.
بله، همیشه آماده ام تا تجربیاتم را به اشتراک بگذارم. مدتها پیش پروژۀ botforyou.biz را شروع کردم اما این پروژه پایۀ تجاری دارد. ما رباتهای معاملاتی متعددی را برای بسیاری از سیستمها و پلتفرم ها نوشتیم. ممکن است برای افراد مسلط به MQL4 و MQL5 عجیب باشد که نوشتن ربات معامله گری برای بازار سهام به مراتب دشوارتر از نوشتن معادل آن برای متاتریدر است.
بله واقعا تا حدی عجیب است. چطور می توانید آن را توضیح دهید؟
شاید این یک امتیاز انحصاری تکنیکال در بازار بورس باشد. و عدم وجود گزینه های بنیادی جدید نرم افزاری. نمی خواهم به طور آشکار از توسعه دهندگان نرم افزار بازار سهام انتقاد کنم ام وقتی هر ترمینال شخص ثالث را راه اندازی می کنید، در مقایسه با متاتریدر5 کاری بسیار ناخوشایند به نظر می رسد. امکانات خودکارسازی معاملات در سطح قرن گذشته گیر کرده است.
ای کاش پلت فرم شرکت MetaQuotes وارد بخش بازار سهام شود.
از پاسخگویی شما ممنونیم والری. برای شما در تمام مراحل زندگی و معاملات آرزوی موفقیت داریم!
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف، میتوان استراتژیهای بر مبنای مباحث حجم یا هر یک از مباحث تحلیل تکنیکال را به وسیلهی سفارش کد پایتون یا سفارش کد mql و سفارش اکسپرت کد کرد و در پروسهی بک تست اعتبار سنجی نمود. همچنین میتوان از طریق سفارش اندیکاتور به آنها یک جنبهی نمایشی نمایانتری برای تسهیل تحلیل در سابقهی نماد داد.
– – –
در مقالهی بعدی به بررسی مفاهیم دیگری در حوزهی برنامهنویسی میپردازیم.
در مقاله پیشین از سری مقالات مرتبط با برنامه نویسی در بازارهای مالی به شرح و بررسی «چرا اکسپرت» پرداختیم. در این مقاله به بررسی «بک تست و تست پیش رو ؛ اهمیت همبستگی» میپردازیم.
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف برای اعمال هر یک از این مفاهیم در استراتژیهای معاملاتی میتوانید از سفارش کد پایتون، سفارش کد mql و … برای کد کردن و بهینه یابی استراتژیهای خود استفاده کنید. و در عین حال سوای امکان سفارش اکسپرت میتوانید از سفارش اندیکاتور برای دریافت یک نمایش گرافیکی از محاسبات استراتژی خود بهره ببرید.
– – –
بک تست اشاره به استفاده از یک سیستم معاملاتی روی دادههای تاریخی برای بررسی عملکرد آن در طول مدت مشخص شده، دارد.
– – –
معاملهگرانی که علاقهمند به تجربه یک ایده معاملاتی در یک بازار زنده هستند، اغلب بهاشتباه بهطور کامل بر نتایج بک تست برای تعیین سودآوری سیستم اعتماد میکنند. درحالیکه بک تست گرفتن میتواند اطلاعات ارزشمندی به معامله گران ارائه دهد، این اغلب گمراه کننده است و این بخشی از فرایند ارزشیابی میباشد.
تست برون نمونه و تست عملکرد پیش رو تأیید بیشتری در مورد اثربخشی سیستم ارائه میدهد و میتواند رنگ واقعی سیستم را، قبل از کار با پول واقعی نشان دهد. همبستگی خوب بین نتایج بک تست، تست برون نمونه و تست عملکرد پیش رو برای تعیین پایداری سیستم معاملاتی حیاتی است. بهرهگیری از یک منبع معتبر برای آموزش بکتست و آموزش بهینه یابی میتواند بسیار به پروسهی بهینهیابی کمک کند. همچنین برنامه نویسی و سفارش کد بهینه یابی و نرم افزار بهینه یابی نیز میتواند ابزار مناسبی برای این مطلوب باشد.
مبانی بک تست گرفتن
بک تست اشاره به استفاده از یک سیستم معاملاتی روی دادههای تاریخی برای بررسی عملکرد آن در طول مدت مشخص شده، دارد. بسیاری از پلتفرمهای معاملاتی امروزی از بک تست گرفتن پشتیبانی میکنند. معامله گران میتوانند ایدههای خود را با چند کلیک ساده تست کنند و بینشی در خصوص کارآیی یک ایده بدون به خطر انداختن پول خود در یک حساب معاملاتی به دست آورند. بک تست گرفتن میتواند ایدههای ساده مانند چگونگی عملکرد تقاطع میانگین متحرک روی دادههای تاریخی یا سیستمهای پیچیدهتر با ورودیهای و نقاط ورود متنوع را ارزیابی نماید.
یک منبع معتبر برای آموزش بکتست میتواند بسیار به معاملهگر در روند بهینه یابی سیستم معاملاتیاش کمک کند. تا زمانی که یک ایده بتواند به اندازه کافی ارزیابی شود این میتواند بک تست شود. برخی از معاملهگران و سرمایهگذاران ممکن است به دنبال یک برنامهنویس خبره برای توسعه این ایده به شکل قابل تست باشند. به طور معمول این شامل یک برنامهنویس برای کدنویسی ایده را به زبان اختصاصی مورد استفاده توسط پلت فرم معاملاتی میباشد. برنامه نویس میتواند متغیرهای ورودی تعریف شده توسط کاربر را تعریف کند که به معامله گر اجازه میدهد تا “سیستم” را ارتقا دهد. کاربر میتواند از طریق سفارش کد mql، کد پایتون(python) و یا دیگر زبانهای برنامهنویسی به برنامهنویس استراتژی خود را کد کرده و آمادهی بهینهیابی نماید.
یک مثال از این میتواند در سیستم تقاطع میانگین متحرک ساده ذکر شده در بالا باشد: معامله گر قادر خواهد بود که طول دو میانگین متحرک استفاده شده در سیستم را وارد یا تغییر دهد. معاملهگر میتواند برای تعیین اینکه چه طولی از میانگین متحرک بهترین نتیجه را در دادههای تاریخی خواهد داشت بک تست انجام دهد.
مطالعات بهینه سازی
بسیاری از پلتفرمهای تجاری نیز اجازه مطالعات بهینه سازی را میدهند. این امر مستلزم وارد کردن یک محدوده برای ورودی مشخص و اجازه دادن به کامپیوتر برای “انجام عملیات ریاضی” جهت کشف کردن اینکه که کدام ورودی بهترین عملکرد را دارد میباشد. بهینه سازی چند متغیره میتواند عملیات ریاضی را برای دو یا چند متغیر اجرا نماید تا سطوحی از آنها با هم برای حصول بهترین نتیجه مشخص شود. به عنوان مثال، معاملهگران میتوانند به این برنامه بگویند کدام ورودیهایی را که آنها میخواهند در استراتژی خود اضافه کنند. سپس دادهها با توجه به دادههای تاریخی آزمایش شده، به وزن ایدهآل آنها بهینه میشوند.
بک تست میتواند هیجانانگیز باشد در حالی که یک سیستم غیرسودمند اغلب میتواند به طور جادویی با چند مرحله بهینهسازی به یک ماشین پول ساز تبدیل شود. متاسفانه بهینه سازی سیستم برای رسیدن به بالاترین میزان سودآوری تاریخی، اغلب منجر به سیستمی میشود که در معاملات واقعی ضعیف عمل میکند.بهینه سازی بیش از حد سیستمهایی را ایجاد میکند که تنها بر روی کاغذ خوب ظاهر میشوند.
برازش منحنی استفاده از تجزیه و تحلیل بهینه سازی برای ایجاد بیشترین تعداد معاملات برنده با بزرگترین سود بر روی دادههای تاریخی مورد استفاده در دوره آزمون میباشد. اگر چه این در نتایج بک تست گیری مؤثر به نظر میرسد، برازش منحنی به سیستمهای غیر قابل اعتماد منجر میشود، زیرا نتایج به طور خاص فقط برای دادههای خاص و دوره زمانی مشخص طراحی شده است.
بک تست گیری و بهینه سازی مزایای زیادی را به یک معامله گر ارائه میکند، اما این تنها بخشی از روند در ارزیابی سیستم معاملاتی بالقوه است. گام بعدی معامله گر این است که سیستم را روی دادههای تاریخی که در مرحله اولیه بک تست گیری استفاده نشده است، اعمال کند.
دادههای درون نمونه در مقابل برون نمونه
هنگام تست یک ایده در مورد دادههای تاریخی، ذخیره یک دوره زمانی از اطلاعات تاریخی برای آزمایش مفید است. دادههای تاریخی اولیه که ایده روی آنها تست و بهینه شده است، به عنوان دادههای درون نمونه در نظر گرفته میشود. مجموعه دادهای که معکوس شده است به عنوان دادههای برون نمونه شناخته میشود. این تنظیمات بخش مهمی از فرایند ارزیابی است زیرا راهی را برای تست ایده در دادههایی که جزء مدل بهینه سازی نیست، فراهم میکند. در نتیجه، این ایده به هیچ وجه تحت تأثیر دادههای برون داده تاثیری نخواهد بود و معامله گران قادر خواهند بود تا چگونگی عملکرد سیستم در دادههای جدید را تعیین کنند. یعنی در تجارت واقعی.
معامله گران میتوانند قبل از شروع هر گونه بک تست یا بهینه سازی، درصدی از دادههای تاریخی را که برای آزمایش برون نمونه ذخیره شدهاند، کنار بگذارند. یک روش این است تقسیم دادههای تاریخی به سه بخش و در نظر گرفتن یک سوم آن را برای استفاده در آزمایش برون نمونه میباشد. برای آزمایش اولیه و بهینه سازی فقط دادههای درون نمونه باید استفاده شوند. شکل ۱ یک خط زمانی را نشان میدهد که در آن یک سوم دادههای تاریخی برای آزمایش برون نمونه رزرو شده است و دو سوم برای آزمایش درون نمونه مورد استفاده قرار میگیرد. اگر چه شکل ۱ دادههای برون نمونه را در ابتدای تست نشان میدهد، روشهای معمولی، قسمت بخش برون نمونه را بلافاصله قبل از قسمت عملکرد پیش رو در نظر میگیرند.
هنگامی که یک سیستم معاملاتی با استفاده از دادههای درون نمونه توسعه یافته است، آماده استفاده روی دادههای برون نمونه میباشد. معامله گران میتوانند نتایج عملکرد درون نمونه و برون نمونه را ارزیابی و مقایسه کنند.
همبستگی به شباهت بین عملکرد و روند کلی دو مجموعه داده اشاره دارد. معیارهای همبستگی را میتوان در ارزیابی گزارشهای عملکرد استراتژی ایجاد شده در طول دوره آزمایشی استفاده نمود. (یکی ویژگی که اکثر پلتفرمهای تجاری ارائه میدهند). هرچه همبستگی بین دو طرف قویتر باشد، احتمال اینکه یک سیستم در آزمایشهای عملکرد پیش رو و معامله زنده بهتر عمل کند بیشتر است. شکل ۲ دو سیستم مختلف را نشان میدهد که در نمونههای درون نمونه مورد آزمایش قرار گرفته و بهینه شدهاند و سپس روی دادههای برون نمونه اعمال میشوند. نمودار در سمت چپ سیستمی را نشان میدهد که روی دادههای درون نمونه آزمایش و بهینه سازی شده است سپس روی دادههای برون نمونه استفاده شده است. نمودار سمت چپ سیستمی را نشان میدهد که بطور آشکار روی درون نمونه خوب عمل میکند ولی به طور کامل در دادههای برون نمونه شکست خورده است. نمودار سمت راست یک سیستم را نشان میدهد که در دادههای درون و برون نمونه به خوبی عمل مینماید.
اگر بین آزمونهای درون نمونه و برون نمونه، مثل نمودار چپ در شکل ۲، همبستگی کمی وجود دارد، احتمالاً سیستم بیش از حد بهینه شده و در معامله زنده خوب عمل نمیکند. اگر رابطهای قوی در عملکرد وجود داشته باشد، همانطور که در نمودار سمت راست شکل ۲ دیده میشود، مرحله بعدی ارزیابی شامل یک نوع تست اضافی از نمونه است که به عنوان تست عملکرد پیش رو شناخته میشود.
مبانی تست عملکرد پیش رو
تست عملکرد پیش رو، همچنین به عنوان تجارت کاغذ شناخته میشود، به معامله گران مجموعهای دیگر از دادههای برون نمونه برای ارزیابی یک سیستم ارائه میکند. تست عملکرد پیشرو یک شبیه سازی از معاملات واقعی است و شامل پیگیری منطق سیستم در یک بازار زنده است. این نیز به عنوان معامله کاغذ نامیده میشود چونکه تمام معاملات تنها بر روی کاغذ اجرا میشود؛ یعنی ورود و خروجهای معامله به همراه هر گونه سود یا زیان سیستم ثبت شده است، اما معاملات واقعی انجام نمیشود. یک جنبه مهم تست عملکرد پیشرو است که دقیقاً منطق سیستم را دنبال کند. در غیر اینصورت، ارزیابی این گام فرآیند، اگر نه غیر ممکن بلکه مشکل میشود. معامله گران باید در مورد هر یک از ورود و خروجهای تجاری صادق باشند. اگر معامله مطابق منطق سیستم اتفاق بیفتد، باید مستند و ارزیابی شود.
بسیاری از کارگزاران یک حساب معاملاتی شبیه سازی شده را ارائه میدهند که میتوان معاملات را انجام داد و سود و زیان مربوطه محاسبه نمود. با استفاده از یک حساب معاملاتی شبیه سازی میتواند فضای نیمه واقع گرایانه ای ایجاد نمود که در آن معامله عملی انجام و ارزیابی سیستم ایجاد میشود.
شکل ۲ نیز نتایج تست عملکرد پیش رو در دو سیستم را نشان میدهد. باز هم، سیستم نمایش داده شده در نمودار چپ، بر اساس آزمایش اولیه خوب عمل نمیکند. اما سیستم نمایش داده شده در نمودار راست، همچنان به خوبی در تمام مراحل، از جمله آزمایش عملکرد پیشرو ادامه مییابد. یک سیستم که نتایج مثبت با همبستگی خوب بین آزمون درون نمونه، برون نمونه و عملکرد پیش رو نشان میدهد اماده اجرا در بازار زنده میباشد.
مطلب آخر
بک تست گرفتن یک ابزار ارزشمند در اکثر پلتفرمهای تجاری است. تقسیم دادههای تاریخی به مجموعههای چندگانه برای ارائه آزمون درون نمونه و برون نمونه میتواند به معامله گران یک ابزار عملی و کارآمد برای ارزیابی یک ایده و سیستم معاملاتی ارائه نماید. از آنجایی که اکثر معامله گران روشهای بهینه سازی را در بک تست گرفتن به کار میگیرند، ارزیابی، سیستم بر روی دادههای پاک، برای تعیین پایداری آن، امری مهم میباشد. ادامه آزمایش برون نمونه با تست عملکرد پیش رو یک لایه ایمنی دیگر را قبل از قرار دادن سیستم در بازار پرریسک واقعی فراهم میکند. نتایج مثبت و همبستگی خوب بین بک تست درون نمونه و برون نمونه و آزمایش عملکرد پیش رو احتمال اینکه یک سیستم در معامله واقعی خوب عمل کند را افزایش میدهد.چنین قابلیتی در متاتریدر 5 تعریف شده است و می توان بر اساس مقاله بالا در متا تریدر 5 عمل نمود.
– – –
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف، میتوان استراتژیهای بر مبنای مباحث حجم یا هر یک از مباحث تحلیل تکنیکال را به وسیلهی سفارش کد پایتون یا سفارش کد mql و سفارش اکسپرت کد کرد و در پروسهی بک تست اعتبار سنجی نمود. همچنین میتوان از طریق سفارش اندیکاتور به آنها یک جنبهی نمایشی نمایانتری برای تسهیل تحلیل در سابقهی نماد داد.
در مقاله پیشین از سری مقالات مرتبط با برنامه نویسی در بازارهای مالی به شرح و بررسی «اکسپرت چیست» پرداختیم. در این مقاله به بررسی «چرا اکسپرت» میپردازیم.
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف برای اعمال هر یک از این مفاهیم در استراتژیهای معاملاتی میتوانید از سفارش کد پایتون، سفارش کد mql و … برای کد کردن و بهینه یابی استراتژیهای خود استفاده کنید. و در عین حال سوای امکان سفارش اکسپرت میتوانید از سفارش اندیکاتور برای دریافت یک نمایش گرافیکی از محاسبات استراتژی خود بهره ببرید.
– – –
اکسپرت شبیه یک دوست خوبه.؛
منتها این دوست خوب ما فقط پیشنهادی به ما میده که ما از قبل بهش گفتیم و این یکی از مزایای اکسپرت هست.
– – –
دلایل زیادی میتوان برای این موضوع آورد.؛ محدودیتهای و خطاهای انسانی میتواند محورهای خوبی برای پاسخ به این سوال باشند. برای آمادهسازی یک اکسپرت بعد از به نتیجهرسیدن و مطمئن شدن از یک استراتژی در تریدهای دستی در یک بازهی مشخص. میتوان از سفارش کد پایتون (python) یا سفارش کد mql برای سفارش اکسپرت اقدام نمود. برنامه نویسی و بک تست فایل اکسپرت باعث میشود خیلی راحتتر بتوان دربارهی کلیت یک سیستم معاملاتی اظهار نظر کرد.
جلوگیری از تاثیر هیجانهای کاذب بر نتیجهی معاملات : چون تریدرها یا معاملهگران در نوسانات بازار (سود یا ضرر زیاد) رفتار هیجانی از خودشون سر می زنه پس برای جلوگیری از این هیجانهای کاذب بهتره یک سیستم نرمافزاری کنار تریدر باشه، تا جلوی این خطاها رو بگیره پس اکسپرت شبیه یک دوست خوب میمونه منتها این دوست خوب ما فقط پیشنهادی به ما میده که ما از قبل بهش گفتیم و این یکی از مزایای اکسپرت هست. همچنین استفاده از نرم افزار بهینه یابی و نرم افزار مدیریت سرمایه میتواند کمک بسیار خوبی برای بهبود سیستم معاملاتی ما باشد.
افزایش سرعت آنالیز دیتای بازار : تریدرهای که در بازار سهام فعالیت میکنند واقفند که ما تقریبا 2400 نماد (فعال و غیر فعال ) در بورس و فرابورس و … داریم. کی میتونه همه نمادها رو تو یک بازه زمانی کم بررسی کنه؟! من که نمی تونم و خیلی هنر کنم روزی 30 تا نماد رو بررسی کنم و این یعنی اینکه خیلی فرصتها رو از دست میدیم که اینجا اکسپرت میتونه همه نمادها رو بررسی کنه، اونم ظرف چند دقیقه و این یعنی لذت استفاده از دانش برای به دست آوردن ثروت. پس اکسپرت نیروی ما میشه منتها یک نیروی خوب که مثل مرغ تخم طلا میمونه واسه ما …
جلوگیری از تکرار : فرض که ما یه عالمه کار کردیم و رسیدیم به یک استراتژی پول ساز، آخرش هر روز باید با این استراتژی رو ، روی تک تک نمادها بررسی کنیم و این یعنی تکرار. البته اخر بیشتر کارها تکرار و هر جا که به تکرار رسیدیم بهتره از کامیپوتر استفاده بشه اصلا کامیپوتر ساخته شده که انسان کارهای تکراریش رو بده به ماشین خوب حالا استراتژی رو میدیم به ماشین خودش میگه چی بخرین و چی بفروشین. عجب اکسپرت با شعوریه
جلوگیری از محدودیتهای زمانی : خارجیهای که تو بازار جهانی کار میکنن و این بازار هم که 24 ساعته ، حالا فکر کنید شب تا صبح شما خوابی و بیدار میشی می بینی فلان قدر کار کردی البته با فرض داشتن یه استراتژی خوب چه کیفی میده!!! یا اینکه با خانواده تو تفریحی و سیستم داره برات کار میکنه حالا یه لحظه چشات و ببند و بهش فکر کنپس اکسپرت عجب کارای میکنه.
سرعت عمل خصوصا در پریود های زمانی کوتاه تر : تو تایم های کوچیک مثل 5 دقیقه و یک دقیقه احتمال اینکه انسان اشتباه کنه زیاده که اینجا اکسپرت عالی می کنه.
امکان مسیج دهی : میشه اکسپرت رو کاری کرد که به موبایل شما پیام بده که من تو سودم یا ضررم یا مثلا من همچنان Buy یا Sell هستم خوب حالا فکر کن یک پوزیشن گرفتی و کاری پیش اومده باید بری بیرون دیونه میکنه چون پولت درگیره و تو خبری ازش نداری ولی اگر شما اکسپرت داری که برات پوزیشن میگره و بعدش هم اکسپرت بهت می گیه دوست من سیستم همچنان بای و برات تریل بکنه محشره (مخصوصا دوستان بورسی و آتی سکه کارا)
مزیت استفاده از اکسپرت روی چند حساب : فرض شما یه اکسپرت خیلی خوب داری که مثلا دو سه سال از اجراش میگذره و خوب داره کار میکنه حالا میتونی پرینت حساب رو به یه سری از کساییکه که میشناسن بدی و اونها هم حاضر باشن سرمایه گذار بشن کافیه که این اکسپرت روی حسابشون ران کنی این یعنی که یکسری درآمد ایجاد کردی و این درآمد به صورت ماهانه و… برات میاد الیته یادمون باشه اینکار مسئولیت هم داره که باید احتیاط کرد.
قابلیت تست راحتتر استراتژی در بازههای زمانی طولانی : یکی از ویژگیهای اکسپرت قابلیت تست استراتژی در بازههای طولانی است یعنی اینکه میتوان استراتژی خود را که تبدیل به اکسپرت شد را در یک هر مدت زمانی که دیتا آن وجود دارد تست گرفت و بعد به بررسی نقاط ضعف و قدرت استراتژی خودمون بپردازیم.
استفاده از محاسبات اتوماتیک : پیادهسازی استراتژیهای محاسباتی روی اکسپرت و محاسبه اتوماتیک اکسپرت در کسری از ثانیه پس خطا ما کم میشه و درگیر کارهای تکراری نمی شه.
استفاده از الگوریتم های هوش مصنوعی و شبکه عصبی : پیادهسازی الگوریتمهای هوش مصنوعی و شبکه عصبی و.. برای تریدرهای که علاقمند به ترید با این سبک هستند.
مسابقات بروکرها : شرکت در مسابقات بروکرها با داشتن یک اکسپرت خوب که البته این مسابقات نوعهای مختلفی داره مثلا بیشترین ترید پر سود و…
فقط باید یادمون باشه اکسپرت یک ماشین یا یک نرم افزار و دقیقا همون کاری رو میکنه که ما بهش گفتیم نه کمتر نه بیشتر پس اگر ما اطلاعات غلط بهش دادیم همون میشه و اگر هم اطلاعات درست طبیعتا رفتار درست انجام میده. پس برای داشتن یک اکسپرت خوب باید روی یک استراتژی که با شرایط روحی ما سازگاری داره باید تمرکز کرد و هی بک تست و آزمون تست و اصلاح قرار داد تا یک سیستم قابل کنترل بشه ازش درآورد.
اونوقت میتونیم بگیم که من یک اکسپرت خوب دارم. اکسپرتی که میشه بهش اعتماد کرد و میشه سرمایه وارد کرد بدون اینکه کمترین ترسی داشته باشم. بهتر بگم ما کار می کنیم تا پول بدست بیارم که ازش با آسایش برسیم حالا اگر اون کار آرامش ما رو بهم بزنه ارزشی نداره چیزیکه متاسفانه بیشتر تریدرها فراموش می کنن، وقتیکه یک پوزیشن رو باز دارن دیگه زندگی ندارن.
در جواب تریدرهای که اعتقادی به اکسپرت ندارن بگم شما تو زندگیتون همش دارین از ماشین استفاده میکنین: مثل ماشین(کامپیوترش) خود کامپیوتری که ازش استفاده می کنی موبایل، ماشین لباسشویی و … حالا چطور اینجا مخالفت میکنی میگی نمیشه؟!!! در تعریف علم :مشاهده ی منظم پدیده های طبیعی و شرایط موجود آن، که بتوان واقعیت های مربوط به آن را کشف و قوانین و اصول مبتنی بر آن واقعیت ها را فرمول بندی کرد. پس اگر ما بتونیم یک پدیده یا یک الگو در نمودارهای سهام و… پیدا کنیم که زیاد تکرار می شود و آن را مدل کنیم و سپس آن مدل را تبدیل به یک الگوریتم و سپس تبدیل به یک اکسپرت کنیم آنوقت همه چی درست می شود قبول دارم که سخت هست ولی کاملا به دلایل بالا ارزش آن را دارد که ما یک اکسپرت داشته باشیم. یه مثال ساده :
فرض ما میخواهیم یک Stop Loss یا SL مناسب بذاریم آیا گذاشتن sl ثابت کار درستی است؟!!! مسلما نه چون بازار دایما در هر حال تغییر است و در بازار دائما در حال تغییر استفاده از اعداد ثابت خطای ما را بالا خواهد برد
راه حل: حالا فرض ما بیایم و الگوریتم مد در آمار را در اینجا بصورت اکسپرت پیاده کنیم یعنی با استفاده از مد در آمار بیایم متوسط قد کندل در ده سال گذشته را بدست آوریم فرضا 100 واحد باشد و این 100 واحد در ده سال گذشته 75% از قد کندلهای ده سال گذشته باشد این یعنی اینکه با احتمالا 75% اگر مقدار sl خود را 105 واحد بذارم درست کار میکند ایا اشتباه است؟!!! مسلما نه پس اگر هم به اکسپرت اعتقادی ندارید حداقل به انسان + ماشین فکر کنید مثلا میتونید سیستم تریل Trail خودتون رو به اکسپرت بسپارید تا فقط براتون تریل کنه.
– – –
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف، میتوان استراتژیهای بر مبنای مباحث حجم یا هر یک از مباحث تحلیل تکنیکال را به وسیلهی سفارش کد پایتون یا سفارش کد mql و سفارش اکسپرت کد کرد و در پروسهی بک تست اعتبار سنجی نمود. همچنین میتوان از طریق سفارش اندیکاتور به آنها یک جنبهی نمایشی نمایانتری برای تسهیل تحلیل در سابقهی نماد داد.
در مقاله پیشین از سری مقالات مرتبط با برنامه نویسی در بازارهای مالی به شرح و بررسی «پلتفرم معاملاتی» پرداختیم. در این مقاله به بررسی «اکسپرت چیست» میپردازیم.
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف برای اعمال هر یک از این مفاهیم در استراتژیهای معاملاتی میتوانید از سفارش کد پایتون، سفارش کد mql و … برای کد کردن و بهینه یابی استراتژیهای خود استفاده کنید. و در عین حال سوای امکان سفارش اکسپرت میتوانید از سفارش اندیکاتور برای دریافت یک نمایش گرافیکی از محاسبات استراتژی خود بهره ببرید.
– – –
معنی اکسپرت در لغت به معنی “متخصص و کارشناس” است.هرگاه استراتژی مالی Financial Strategy خود را در محیط پلتفرم معاملاتی برنامهنویسی کرده و اجازه دهیم تا کامپیوتر جای ما عملیات خرید یا فروش را انجام دهد یک اکسپرت ساختهایم.
در دستهبندی انواع روشهای تحلیل سه روش وجود دارد:
تحلیلگر فاندامنتال
Fundamental analyst
تحلیلگر تکنیکال
Technical Analyst
ترکیبی از دو حالت قبل که تکنو فاندامنتال گویند.
Techno fundamental Analyst
تحلیلگران تکنیکال از یک سری نمودارChart و یک سری ابزارهای گرافیکی که به آن اندیکاتورIndicator میگویند استفاده میکنند مانند Moving ,Atr, Sar,… و برای اینکه نماد رو خرید Buy کنند بعضاً از ترکیب این اندیکاتورها و یک سری ابزارها و روشهای دیگر استفاده میکنند. از ترکیب این ابزارها قواعدی ساخته میشود که به آن استراتژی میگویند.
برای مثال:یک استراتژی ساده
دو اندیکاتور مووینگ اوریج Moving Average با پریودهای زیر
Moving Average 1: Period=11, Price close, Shift=0
Moving Average 2: Period=21, Price close, Shift=0
یک اندیکاتور Rsi
Rsi Period=11,Price=Close
قواعد استراتژی :
هرگاه Ma fast > Ma Slow که بهاصطلاح میگویم کراس Cross کرد و شیب به سمت بالا باشد میگویم محیط Buy شده و هرگاه Ma Fast
مرحله بعد چک میکنم آیا Rsi در محدوده زیر 50 برای Buy خرید و بالای 50 برای فروش هست
مقدار sl:Buy کوچکترین Low پنجتا کندل قبل از ورود
مقدار sl:Sell بزرگترین High پنجتا کندل قبل از ورود
فرض قواعد بالا استراتژی من باشد و حالا این قواعد را فرضاً در بازار سهام میخواهم مورد بررسی قرار دهم. باید تکتک سهمها نمودارش را بازکنیم و ببینیم آیا شرایط بالا را دارد تا خرید کنیم!!! خوب حالا کل نمادهای بورس 2400 (فعال و غیرفعال) و حدود 500 تا 600 نماد هم بهطور متوسط باز هستن زمان زیادی خواهد برد و یه کار کسلکننده است اینجاست که با داشتن اکسپرت همه این مشکلات حل خواهد و ظرف چند دقیقه همه اینها بررسی میشن.
پس به دلایل بالا و خیلی دلایل دیگر ضرورت برنامه نویسی و داشتن اکسپرت Expert اهمیت پیدا میکنند.
پس اکسپرت یک برنامه کامپیوتری است که استراتژی ما تبدیل به برنامه شده و جای ما رفتار میکند. پس برای نوشتن اینچنین برنامهای باید به یک برنامهنویس کامپیوتر که هم برنامهنویسی بلد باشه + بورس و سهام و آتی سکه و … بدونه چیه و تجربه این کار رو داشته باشه، مراجعه کرد تا بتونم با سفارش اکسپرت حالا یا از طریق سفارش کد پایتون یا سفارش کد mql به برنامه نویس اکسپرت خودم رو سفارشی کنم.
حالا برنامه نویس چیکار می کنه:
برنامه نویس میاد از یک پلت فرم معاملاتی که توش بشه برنامه نویسی کرد مثل برنامه معروف متا تریدر MetaTradr که برای سهام ایران نرم افزار پارس رسا (متا ورژن 4) و مفیدر تریدر (متا ورژن 5) استفاده میکنه و در این پلت فرم در بخش برنامه نویسیاش که متا ادیتور MetaEditor هست برنامه نویسی میکنه و پس از تست و اتمام کار اون فایل رو به من میده تا بتونم روی حسابم چک کنم استفاده میکنم.
برنامه MetaTrader ماله یه شرکت روسی به نام Meta Quotes متاکویتز که انصافاً هم خوب دارن کار میکنه و بخش پشتیبانی اونها هم قوی کار میکنن.
راههای داشتن یک اکسپرت:
از اینترنت رایگان دانلود کنیم
خرید اکسپرت از اینترنت و دوستان و…
از دوستی بگیریم
از کتابی بخونیم
یه شخصی داشته باشه و اون رو روی حساب ما ران کنه و بخشی از سود ما رو بگیره
بهترین حالت اینکه خودم بسازم.
یه نکته خیلی مهم اکسپرت خوب مثل مرغ تخم طلاست و هر آدم عاقلی مرغ تخم طلاشو که نمیفروشه پس باید احتیاط کرد.
بازم مسئلهی مرغ تخم طلا مطرح میشه!!! ولی یه نکته داره استراتژیهای عمومی کامل نیستن اما غلط هم نیستن پس بهتره تا میتونم استراتژی بخونم و مزایا و معایب هر کدوم رو در بیارم بعد بیام بر اساس تجمیع تفکر استراتژیهای که مطالعه کردم استراتژی خودم رو بسازم. تو این مرحله هر چقدر وقت بذاریم ارزش داره.
حالا استراتژی رو هم ساختم چطور اکسپرت کنم:
سفارش اکسپرت رو بدم یه برنامه نویسی متا تریدر که واسم اکسپرت رو بسازه Expert یا اکسپرت نویسی کنه
خودم کد بنویسم
بهترین حالتش حالت دومه منتها یه مسئله اینکه کدنویس+طراح استراتژی بهتره یکی نباشن چونکه خطا بالا میره و دلیل دیگه اینکه برنامه نویسی یه کار تخصصی و تا من به اونجا برسم زمان میبره پس بهتره با یه برنامه نویس MQL صحبت کنم و در شروع اون بهم کمک کنه بعد از اینکه به یه استراتژی خوب رسیدم مطمنا هم میتونم استراتژیهای دیگه رو بسازم پس از اونجا به بعد خودم به موازات کارای دیگم میرم برنامه نویسی MQL رو یاد میگرم و خیالم راحت یک استراتژی دارم و درآمد ماهانه پس هزینه کردن کلاسهای آموزشی برام توجیه پیدا میکنه.
یه نکته دیگه اینکه برای ساخت یک اکسپرت خوب باید تستهای خوبی روش بشه که اینجا به نظرم از یه شخص دیگه استفاده شه که به آمار مسلط باشه و بتونم با استفاده از روشهای آماری خطای سیستم رو بگه. خوبیش اینکه یکی استراتژی رو طراحی میکنه یکی کد مینویسه یکی هم خطا رو درمیاره و امکان نداره جواب نگیرین فقط اصل تمرکز فراموش نشه.
– – –
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف، میتوان استراتژیهای بر مبنای مباحث حجم یا هر یک از مباحث تحلیل تکنیکال را به وسیلهی سفارش کد پایتون یا سفارش کد mql و سفارش اکسپرت کد کرد و در پروسهی بک تست اعتبار سنجی نمود. همچنین میتوان از طریق سفارش اندیکاتور به آنها یک جنبهی نمایشی نمایانتری برای تسهیل تحلیل در سابقهی نماد داد.
اگر هم خواستین خودتون اکسپرت نویسی رو یاد بگیرن ما تو همین سایت محصولی آموزشی؛ آموزش اکسپرت نویسی در متا تریدر رو تولید کردیم و در خدمت شما تریدهای عزیز هستیم.
در نخستین مقاله از سری مقالات مرتبط با برنامه نویسی در بازارهای مالی به شرح و بررسی «پلتفرم معاملاتی» میپردازیم.
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف برای اعمال هر یک از این مفاهیم در استراتژیهای معاملاتی میتوانید از سفارش کد پایتون، سفارش کد mql و … برای کد کردن و بهینه یابی استراتژیهای خود استفاده کنید. و در عین حال سوای امکان سفارش اکسپرت میتوانید از سفارش اندیکاتور برای دریافت یک نمایش گرافیکی از محاسبات استراتژی خود بهره ببرید.
– – –
به نرمافزاری که از طریق آن معامله گران میتوانند، یک Position یا معامله را باز کنند یا ببندند، یک پلت فرم معاملاتی گویند.
پلت فرم معاملاتی معمولاً توسط کارگزاریها یا Broker ها بهصورت رایگان در اختیار معامله گران قرار میگیرد و کارگزاریها یا Broker ها درازای معاملات کارمزد یا Spread میگیرند. قابلیت اجرای اکسپرت و اندیکاتور و اسکریپت سفارشی (خودمان بسازیم) باید در پلتفرم معاملاتی فعال باشد. (میتوانیم از طریق سفارش کد پایتون، سفارش کد mql برای سفارش اکسپرت، سفارش اندیکاتور و سفارش اسکریپت اقدام کنیم.)
هر کارگزاری بسته به نیاز مشتریان یا معاملهگران خود، یک یا چند پلتفرم معاملاتی را برای سرویسدهی به مشتریان خود ارائه میدهد (استفاده از پلتفرم معاملاتی برای کارگزاری هزینه دارد ولی برای معاملهگر معمولاً رایگان است). مثلاً کارگزاری مفید از پلتفرم معاملاتی مفید تریدر (که در حقیقت متاتریدر نسخه 5) و مفید تریدر اندروید، همراه تریدرمفید، مفید آنلاین و وب سایت آنلاین و… استفاده میکند یا بعضی از کارگزاریها فقط از وبسایت آنلاین استفاده میکنند و یا بعضی از بروکرها مثل آلپاری از متاتریدر نسخه 4 و متاتریدر نسخه 5 استفاده میکنند.
بعضی از پلتفرمها قابلیت برنامهنویسی دارند مانند MetaTraderکه به محیط برنامهنویسی آن متا ادیتور Meta Editor و به زبان برنامهنویسی متاتریدر MQLگویند.
– – –
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف، میتوان استراتژیهای بر مبنای مباحث حجم یا هر یک از مباحث تحلیل تکنیکال را به وسیلهی سفارش کد پایتون یا سفارش کد mql و سفارش اکسپرت کد کرد و در پروسهی بک تست اعتبار سنجی نمود. همچنین میتوان از طریق سفارش اندیکاتور به آنها یک جنبهی نمایشی نمایانتری برای تسهیل تحلیل در سابقهی نماد داد.
– – –
در مقالهی بعدی به بررسی «اکسپرت چیست» میپردازیم.
در نخستین مقاله از سری مقالات مرتبط با فیلتر نویسی به شرح و بررسی «فیلتر نویسی در بورس» میپردازیم.
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف برای سنجش بازده استراتژیهای معاملاتی میتوانید از سفارش کد پایتون، سفارش کد mql و … برای کد کردن و بهینه یابی استراتژیهای خود استفاده کنید. و در عین حال سوای امکان سفارش اکسپرت میتوانید از سفارش اندیکاتور برای دریافت یک نمایش گرافیکی از محاسبات استراتژی خود بهره ببرید.
– – –
در بازارهای مالی، مانند بازار سهام یا بورس، فرابورس، بورس کالا و… همواره بهروز بودن اطلاعات، اهمیت فراوانی دارد. با توجه به اینکه تعداد نمادها یا شرکتهای سهامی در بورس و فرابورس فراوان است (حدود 2400 نماد) لذا استفاده از کامپیوتر، اهمیت فراوانی دارد؛ و با توجه به اینکه حجم اطلاعات هر سهم یا نماد فراوان است، زیاد بودن حجم اطلاعات، خود باعث، تناقضهای زیادی میشود چراکه ازلحاظ علم ریاضیات، فضای حالت زیاد شده نتیجتاً مجهولات مسئله زیاد خواهد شد. پس داشتن اطلاعات بهروز و از پیش تعیینشده اهمیت فراوانی خواهد داشت.
سازمان بورس و اوراق بهادار، همه اطلاعات مربوط به نمادها را در سایت tsetmcبه شکلی زیبا، گرد هم آورده است. از بدو ورود بورس به ایران؛ تاکنون، این اطلاعات به شکلهای مختلف، توسط شرکتهای زیادی دستهبندیشده و نمایش داده میشود. در چند سال اخیر، این اطلاعات توسط شرکت مدیریت فناوری بورس تهران که یکی از شرکتهای زیرمجموعه سازمان بورس و اوراق بهادار با هدف ارائه خدمات به چرخه کامل معاملات الکترونیکی، ابزارهای مالی به ارکان بازار سرمایه فعالیت میکند، بهصورت مدوّن و با ساختاری ثابت طراحیشده است و در هر مرحله قابلیتهای به این سایت بهعنوان یک سایت مرجع افزوده میشود.
در سالهای اخیر ضرورت سفارشی نمودن این سایت به سلیقه هر سهامدار ضرورت فراوانی پیدا نمود. لذا شرکت مدیریت فناوری بورس تهران قابلیتی به این سایت در قالب “فیلتر” نویسی در بورس اضافه نموده است. منطقا همچون هر ابزار دیگری بهترین راه برای ورود به این بحث دسترسی به یک منبع معتبر آموزش فیلتر نویسی در بورس میتواند مسیر را بسیار هموارتر کند. فیلتر نویسی در بورس که در بخش دیده بان بازار گزینه “فیلتر” وجود دارد میتوان شبه کدها یا اسکریپتهای که دارای یکسری عملگرها و فیلدهای از قبل آمادهشده (توسط شرکت مدیریت فناوری بورس تهران) استفاده و بخشی از نیازهای سفارشی نمودن اطلاعات را فراهم نموده است. هرچند که این قابلیت در ابتدای راه خویش است ولی شروع حرکتی، بزرگ است و جای تقدیر و تشکر دارد. طبیعی است هر ابزاری مزایا و معایبی دارد و در این مقاله هدف ما بررسی آن است.
پس فیلتر نویسی Query بخشی از سایت Tsetmc.com است و قابلیتی است که با استفاده از یکسری فیلدهای از پیش تعیین شده و ترکیب آنها با یکدیگر میتوان اطلاعات محدود و مورد نیاز خود را گلچین نمود و در کمترین زمان ممکن به آن دسترسی پیدا نمود. میتوانید با استفاده از آموزش فیلتر نویسی مهندس فرهاد سلطانی در سایت فراچارت بسیار راحتتر با این زبان اسکریپتنویسی آشنایی پیدا کنید.
مزایا استفاده از فیلتر نویسی در بورس Query
دستهبندی و انتخاب فیلدهای موردنیاز نمادها و سفارشی نمودن آن
تسریع و تجمیع اطلاعات فاندامنتال و تکنیکال
رصد نمودن بازار با استراتژیهای مختلف
استفاده از بخشی از اطلاعات فاندامنتال و بخشی از اطلاعات تکنیکال که استفاده از اطلاعات فاندامنتال تنها برتری فیلتر نویسی در بورس نسبت به زبان برنامهنویسی قدرتمند MQL است.
سرعت در اجرا و بازگردندان لیست سهامها، با شرایط موردنظر ما
عدم استفاده از نرمافزار و نصب آن؛ چون این قابلیت در سایت وجود دارد
ساده بودن محیط اسکریپت نویسی
معایب استفاده از فیلتر نویسی در بورس Query
این قابلیت (فیلتر نویسی) یکزبان برنامهنویسی مانند MQL در نرمافزار متاتریدر وجود دارد نیست بلکه یک محیط اسکریپت نویسی یا Query نویسی است و قاعدتاً هم محدودیتهای فراوانی دارد.
عدم استفاده از BackTest که با استفاده از این قابلیت میتوان بر اساس دادههای گذشته استراتژی معاملاتی خود را درگذشته آزمون نمود و تمام خطاهای آن را بدون آزمایش در محیط واقعی در محیط آزمایشی آزمود
محدودیت دسترسی به دادههای گذشته (تا لحظه تحریر این مقاله) حداکثر دادهای که در فیلتر نویسی در بورس میتوان دسترسی داشت، حداکثر 21 روز گذشته است.
عدم ثبت و دسترسی به دادهها در تایم فریمهای دیگر؛ عملاً فقط دادههای تایم روزانه در دسترس هست.
عدم ارتباط با سایر نرمافزارها که امروزه یک کاربرد معمولی برای همه نرمافزارها محسوب میشود
این قابلیت یک ویژگی بومی است و در سایر بازارهای مالی بدین شکل استفاده نمیشود (البته تحقیقاتی که تا اینجا نمودم)
مراحل یادگیری فیلتر نویسی در بورس
مطالعه یکی از کتابهای مبانی برنامهنویسی و آشنایی با دستورات اولیه آن زبان برنامهنویسی مانند کتاب آموزشی C++– انتشارات علوم رایانه – جعفر نژاد قمی و مطالعه 2 فصل اول این کتاب
آشنایی با تمامی اطلاعات نمادها هم از نظر فاندامنتال و هم از نظر تکنیکال
استفاده از بخش راهنمایی سایت tsetmc بخش دیده بان بازار
استفاده از آموزش تصویری فیلتر نویسی در سایت فراچارت مدرس: مهندس فرهاد سلطانی
آخرین مرحله تمرین تمرین تمرین …
– – –
در صورت برقراری شرایط معاملات الگوریتمی در بازار هدف، سوای این بحث که میتوان استراتژیهای معاملاتی خود را به وسیلهی سفارش کد پایتون یا سفارش کد mql و سفارش اکسپرت کد کرد و در پروسهی بک تست اعتبار سنجی نمود. همچنین میتوان از طریق سفارش اندیکاتور به آنها یک جنبهی نمایشی نمایانتری برای تسهیل تحلیل در سابقهی نماد داد.
– – –
در مقالهی بعدی به بررسی مفهوم دیگری از مفاهیم مرتبط با فیلترنویسی میپردازیم.