بدون هیچ مقدمهای شروع میکنم... پس از گذراندن دورهی تحلیل تکنیکال با کمی چاشنی تحلیل فاندمنتال پیش استادم، فکر میکردم که دیگر همهچیز را خوب یاد گرفتهام و آمادهام تا در بازارهای مالی—که آن زمان فقط بازار فارکس را میشناختم—به کسب درآمدهای سرشار بپردازم. و ابداً فکرش را هم نمیکردم که این حوزه چقدر میتواند گسترده باشد.
امروز هم عدهای مثل من فکر میکنند. اینکه تحلیل تکنیکال و معامله کردن بهصورت دستی (Manual Trading) آنها را به درآمدهای دلاری سرشار میرساند.
کمتر افرادی هستند که علمی و اساسی دنبال یادگیری در بازارهای مالی هستند. آنهایی هم که هستند، اسمی از اَلگوتریدینگ یا هوش مصنوعی، و در نهایت اسم نرمافزار FSB را شنیده باشند، که بیشتر به همان شنیدههای خودشان اکتفا کرده و هرگز دنبال یادگیری درست و اصولی نرفته و بیشتر با تکرار اصطلاحات تخصصی عامل سردرد اطرافیان خود هستند که ما خیلی بلد هستیم!
اما در مسیر بازارهای مالی، از بخت و اقبال بلندم، به نرمافزار استراتژی کوآنت (Strategy Quant) برخوردم که کاملترین و جامعترین و بهترین نرمافزاری است که در تمام دنیا برای اَلگوتریدینگ و تولید استراتژیهای معاملاتی وجود دارد. در این مطلب میخواهم به این نرمافزار بپردازم و کلیت آن را برای شما توضیح دهم؛ باشد که لایک کنید!
استراتژی کوآنت؛ آزمایشگاه یک دنیا
برای اینکه بتوانید در بازارهای مالی کار کنید، قطعاً نیاز به یک استراتژی دارید. منظور از استراتژی، مسیر یا همان نقشهی راه است. بله، شما باید بدانید از چه مسیری بروید و چه بکنید و چه نکنید! استراتژی به بیان ساده یعنی من کجا باید وارد معامله شوم، و کجا از معامله خارج شوم. همین. ورود و خروج درست به ما کمک میکند، در درجهی اول جلوی ضرر را تا حد امکان بگیریم؛ سپس به کسب سود فکر کنیم.
اما دو نکته وجود دارد. تولید استراتژی، اگر دستی باشد، یعنی روی کاغذ استراتژی خود را از ابتدا تا انتها بنویسیم، بسیار زمانبر خواهد بود. نکتهی بعدی این است که چطور میتوانیم به این استراتژی اطمینان کنیم؟ از کجا بدانم با این استراتژی موفق خواهم بود؟ از کجا معلوم با این استراتژی ضرر نمیکنم؟
پس تا اینجا دو مطلب را فهمیدیم. اولاً تولید استراتژی با دست و قلم و کاغذ، بسیار وقتگیر است. و ثانیاً نمیشود به آن استراتژی اطمینان کرد.
جواب هر دو سوال در نرمافزار استراتژی کوآنت نهفته است. این نرمافزار را مانند یک آزمایشگاه بزرگ ببینید. انتهای این مطلب، این حرف را بهتر درک خواهید کرد.
بیایید با این آزمایشگاه آشنا شویم و ببینیم هر بخش از این آزمایشگاه چه کاری را برای ما انجام میدهد. این نرمافزار بهقدری گسترده است که برای توضیح کامل آن بیش از 100 ساعت آموزش نیاز دارید! تایپ کردن 100 ساعت مطلب آموزشی، آنهم در لول استراتژی کوآنت، یعنی مطلبی بهاندازهی 2 برابر رمان دون کیشوت اثر سروانتس که تقریباً هیچکس آن را کامل نخوانده است.
در این مطلب تا حد ممکن، مختصر و مفید در مورد قسمتهای مختلف استراتژی کوآنت برای شما صحبت خواهم کرد. این را هم بدانید که مسیر معاملات الگوریتمی، چه بخواهید و چه نخواهید، از این نرمافزار میگذرد و بدون این نرمافزار باید عمر نوح داشته باشید تا بتوانید برای بازارهای مالی استراتژی خوب تولید کند؛ عالیاَش بماند!
نرمافزار را که باز کنید، با چنین صحنهای مواجه خواهید شد:
این صفحۀ اول نرمافزار استراتژی کوآنت است که هیچ کاری با آن نداریم!
اصل کار ما و قدم اول، با قسمت Data Manager یا همان مدیریت داده آغاز میشود. دادهها، اساس کار تولید استراتژی هستند. بدون در اختیار داشتن دادههای کافی، هرگز نمیتوانید استراتژی تولید کنید.
وارد قسمت Data Manager میشویم:
در این قسمت باید ابتدا سهمهای مختلف بازار را به برنامه اضافه کنید. بهترین دادههای دنیا برای تمام سهمها تنها با اتصال به اینترنت در اختیار شما خواهند بود. دقیقترین و باکیفیتترین داده را میتوانید از دوکاسکپی که معتبرترین مرجع برای دریافت دادههای تیک بازار است، دریافت کنید. برای مثال برای EUR/USD قصد دارم دادههای تیک را دانلود کنم.
این دادهها از سال 2003 در همین لحظهای که شما این مطلب را میخوانید در اختیار شماست. این یعنی 18 سال دیتا داریم. و در بکتست حداقل دادۀ مورد نیاز 8 سال است و 18 سال یعنی عالی!
کمی صبر میکنیم تا دادهها دانلود شوند. اکنون فونداسیون کار را چیدهایم و شناژبندی هم کردهایم. برای هر سهمی که میخواهید، میتوانید داده را دانلود کنید. آمادهایم که سراغ تولید استراتژی برویم.
در قسمت Builder، تب اول، یعنی Progress را داریم که خلاصهی تنظیمات را به شما نشان میدهد، و دکمهی استارت تولید استراتژی در اینجاست. اما قبل از شروع باید، تنظیمات نسبتاً مفصلی را انجام دهیم.
به بخش Full Settings میرویم. در این قسمت، تبهایی داریم که آنها را تا حدی که زیادهروی نباشد، توضیح میدهم.
تب اول: What to Build
در قسمت بالا، میتوانید حالت ساخت استراتژی را مشخص کنید.
اینکه از سبک خود نرمافزار پیروی کنید، یا اینکه برای چند سهم مختلف یا چند تایمفریم مختلف، همزمان، استراتژی بسازید، یا اینکه از قالبی از-قبل-آمادهشده استفاده کنید، و در نهایت اینکه یک استراتژی را ارتقاء دهید، همه گزینههایی هستند که در این قسمت برای استفاده ی شما موجوداند.
در قسمت پایین نیز، میتوانید مشخص کنید، اولاً استراتژی شما فقط معاملات Buy بگیرد یا Sell و یا هر دو. سپس باید الگوریتم تولید استراتژی را مشخص کنید (تصادفی باشد یا ژنتیک) که در مورد این دو الگوریتم بهزودی مطلب خواهم نوشت. بعد از آن باید محدودهای برای حد سود و حد ضرر مشخص کنید و در نهایت، تعداد شرطهای ورود به معامله و خروج از معامله و دورۀ اندیکاتورها و شیفت را باید برای برنامه تعریف کنید. اینکه برای مثال از 3 شرط برای ورود به معامله استفاده شود یا از 5 شرط، دست شماست. طبیعتاً هرچه تعداد شرطها برای ورود یا خروج بیشتر باشد، تولید استراتژی بیشتر زمان میبرد.
تب بعدی Data یا همان قسمت دادهها است.
در این قسمت شما باید دادههایی که از قبل دانلود کردهاید را همراه با سهم مورد نظر انتخاب کنید. مواردی مثل اِسپرد یا همان کارمزد، دقت ساخت استراتژی، کمیسیون، اِسلیپیج، قاب زمانی (تایمفریم) و انتخاب متاتریدر 4 یا 5، نینجاتریدر یا پلتفرمهای دیگر، اینجا کاملاً قابل تنظیم هستند.
نکتهی مهم این بخش، تقسیم دادهها به IS یا In Sample (درون نمونه) و OOS یا Out Of Sample (خارج از نمونه) است. درون نمونه، محدودهای که استراتژی بر اساس آن ساخته میشود، و خارج از نمونه، محدودهای از دیتا است که استراتژی آن را ندیده است، و در این محدوده، استراتژی تست میشود و در نهایت نتیجهی تست استراتژی به شکل زیر به ما نشان داده میشود:
قسمت سبز رنگ، همان OOS است که استراتژی در آن تست شده است.
قسمت بعدی، Trading Options، همان جایی است که مشخص میکنید استراتژی شما از چه ساعتی تا چه ساعتی معامله کند؛ یا اینکه اصلاً محدودیتی نداشته باشد. آیا آخر هفته مجاز به معامله کردن هست یا خیر. در طی روز حداکثر چند معامله داشته باشد، آیا قبل از 12 شب معاملات را ببندد یا خیر و چندین مورد دیگر که همگی دلخواه شما هستند.
این هم شکل و شمایل این قسمت:
و اما یکی از مهمترین بخشها، بلوکهای ساختاری یا همان Building Blocks
این قسمت بدون شک، قلب تپندهی تولید استراتژی است. در اینجا شما باید انتخاب کنید برای تولید استراتژی یا همان ربات معاملهگر از چه ابزارهایی استفاده شود؟ منظور از ابزار در اینجا یعنی از چه اندیکاتورهایی استفاده شود؟ از چه عملگرهایی؟ از چه چیزهایی برای ورود یا خروج از معامله سیگنال بگیریم؟ تمام چیزهایی که شما بلد هستید و بسیاری از مواردی که بلد نیستید، اینجا موجود است. کافیست انتخاب کنید. همینطور امکاناتی مثل معاملات Pending یا معوق یا همان معاملات Stop و Limit، Breakeven، تریلینگ اِستاپ، و خروج بعد از تعداد مشخصی کندل را در اختیار دارید.
دو تب بعدی یعنی ATM و Money Management، هر دو مربوط به مدیریت سرمایه هستند.
مدیریت سرمایه... سرمایۀ اولیۀ شما بر چه اساسی در معاملات مختلف استفاده شود؟ آیا درصد ثابتی از سرمایه اولیه را میخواهید در هر معامله ریسک کنید؟ در بازار کریپتو میخواهید سرمایهگذاری کنید؟ یا سهام؟ یا شاید هم روش مارتینگل را دوست داشته باشید! که البته مارتینگل یعنی اشتباه مطلق!
تمام این حالتها را در مدیریت سرمایه دارید.
به تب Ranking میرویم. میخواهیم مشخص کنیم رباتهای معاملهگر ما بر چه اساسی ساخته شوند. یعنی چه فیلترهایی را باید با موفقیت پشت سر بگذارند تا بتوانند در لیست رباتها قرار گیرند.
در حد چند خط بخواهم توضیح بدهم، ابتدا باید تعداد استراتژیهایی که میخواهید تولید بشود را مشخص کنید. برای مثال من همیشه خودم عدد 1000 را ترجیح میدهم. یعنی وقتی 1000 استراتژی با شرایط دلخواه من تولید شد، دیگر ادامه نده. مورد بعدی معیار سنجش استراتژیها است. استراتژی بر اساس Net Profit یا سود خالص اَرزیابی شود یا نسبت سود/ضرر (Return/Drawdown)؟ اینها همه به انتخاب خود شماست. اما من همیشه Ret/DD را ترجیح میدهم. و در نهایت باید فیلترهای مد نظرمان را مشخص کنیم. با مثال بهتر متوجه میشود.
# of trades > 1000
Winning Percentage > 30%
Stagnation < 365
و اما توضیح این موارد: مورد اول یعنی اِی نرمافزار! اگر برای من استراتژی یا همان ربات معاملهگر پیدا میکنی، آنهایی را نگه دار که در طول 15 سال گذشته بیشتر از 1000 معامله انجام دادهاند. کمتر از این را دور بریز. مورد دوم یعنی درصد سودآوری استراتژی اگر بیشتر از 30 درصد بود، آن را برای من نگه دار. و مورد سوم، اگر استراتژی در طول این 15 سال (بسته به دادهای که داریم، بیشتر یا کمتر میشود) بیش از 1 سال راکد بود و معامله نکرد، آن را کنار بگذار.
به همین ترتیب هر تعداد فیلتر که بخواهید میتوانید از لیست فیلترها انتخاب کنید.
در تب Results هم میتوانید آمار و ارقام مربوط به استراتژی، منحنی سودآوری، لیست معاملات، و کد برنامهنویسی آن استراتژی را ببینید.
از منوی عمودی سمت چپ به قسمت Retest میرویم. همان تبها و گزینههای قبلی را اینجا هم داریم. اما چیزی که اینجا برای ما اهمیت دارید، Cross Checks یا تستهای استحکام در قسمت Full Settings است.
روز رستاخیز استراتژیهای تولیدشده فرا رسیده است!
صدها یا هزاران استراتژی تولید کردهایم. اکنون نوبت آن رسیده است که آنها را تحت فشار بگذاریم. اجازه دهید یک مطلب را برایتان روشن کنم. این استراتژیها در گذشتهی بازار از سال 2003 تست شدهاند و نتیجهی عملکرد آنها، سوددهی را نشان میدهد. هیچ راهی برای اینکه بفهمیم رباتهای معاملهگر در آینده هم سودده هستند، وجود ندارد زیرا هیچکس آینده را نمیداند! شما سال 1394 فکر میکردید روزی کرونا بیاید؟
برای همین باید استراتژیها را در شرایط بسیار بسیار سخت و غیرعادی و غیرمنطقی و فوق بدبینانه قرار دهیم تا ببینیم باز هم میتوانند سوددهی خودشان را تکرار کنند یا خیر. برای همین در تب Cross Checks یا تستهای استحکام میتوانیم شرایط فوق بدبینانهی غیرقابل تصور را برای استراتژیها شبیهسازی کنیم و آنها را یکبار دیگر تست کنیم. در تصویر زیر، من یک استراتژی را به صد حالت مختلف تست کردهام و نتیجهاش را میتوانید ببینید که موفقیتآمیز بوده است. پس این استراتژی به احتمال زیاد میتواند در آینده هم خوش بدرخشد.
هر یک از این خطها نشاندهندهی یک تست است. یک استراتژی را 100 بار تست کردهایم و نتایج را میبینید. همه خوب بودهاند. خیال من تا حدی راحت است که حسابم با این ربات صفر نمیشود! توضیح هر تست بماند برای بعد! حداقل باید 10000 کلمه برای هر تست بنویسم!
اما قسمت نهایی ما، بهینهسازی...
اول بهینهسازی را کمی توضیح بدهم.
شرایط بازار هیچگاه ثابت نمیماند. ما انسانها در حال تغییر هستیم و مدام خودمان را با شرایط جدید تطبیق میدهیم! بهویژه مردم ایران که استاد تطبیق با شرایط جدید هستند! رباتها نیز به همین صورت باید بعد از مدتی بهروز شوند. یعنی پارامترهای آنها را بهتر کنیم. ربات معاملهگر نیز مانند یک کودک خردسال نیاز به رسیدگی دارد. اگر بهینهسازی نکنید، ربات شما پس از مدتی قدیمی میشود و شرایط جدید بازار را درک نمیکند.
در قسمت بهینهسازی، چهار ماژول بهینهسازی ساده، متوالی، واکفوروارد، و ماتریس واکفوروارد را داریم. هر یک از 4 حالت، عملکرد خاص خود را دارد.
برای مثال، واکفوروارد به ما میگوید چند روز دیگر باید بهینهسازی را انجام دهیم، و بهترین مقادیر پارامترهای مختلف چیست تا آنها را همانطور تنظیم کنیم.
این هم نمونهای از نتیجهی بهینهسازی یک استراتژی با نرمافزار استراتژی کوآنت:
در خصوص AlgoWizard هم کمی توضیح دهم. اگر جایی شنیدید یک استراتژی سودده است، یا یک استراتژی را در ذهن خود دارید و میخواهید آن را به ربات تبدیل کنید، میتوانید با AlgoWizard این کار را انجام دهید.
تمام منطقها، شرطها، و هر آنچه هست و هر آنچه نیست، اینجا در اختیار شماست. کافیست برای گرفتن سیگنال، ورود به معامله، و خروج از معامله شرایط را مشخص کنید و در همان لحظه آن استراتژی را تست کنید و عملکرد آن را ببینید.
این بود مطلب من در مورد نرمافزار استراتژی کوآنت. این نرمافزار بهقدری گسترده است که این مطلب به زحمت بتواند 0.0001 درصد از عملکرد و قابلیتهای این نرمافزار را توضیح دهد.
برای یادگیری این نرمافزار و تمام قابلیتهای آن حداقل 6 ماه آموزش لازم دارید.
کارهایی که با این نرمافزار در تولید، تست، و بهینهسازی استراتژیهای معاملاتی میتوانید انجام دهید، فراتر از حد تصور است! سرعت این نرمافزار در مقایسه با تستر متاتریدر، هزاران برابر است. این نرمافزار میتواند 70 هزار استراتژی را در کمتر از 1 ساعت بسازد و برای شما تست کند. ذهن انسان هیچگاه نمیتواند با هوش مصنوعی این نرمافزار رقابت کند.
آنهایی که تجربه دارند، خوب میدانند که ساخت یک استراتژی معاملاتی آن هم با ذهن و نوشتن روی کاغذ و برنامهنویسی، در صورتی که برنامهنویسی، مهندسی نرمافزار، تحلیل داده، و الگوریتم بلد باشید، حداقل 3 ماه از شما زمان میگیرد. 3 ماه و 1 استراتژی! 1 ساعت و 70 هزار استراتژی! قیاس این دو مورد با هم طنز است!
برای کار در بازارهای مالی نیاز به ابزارهای حرفهای و بهروز دارید. به شما اطمینان میدهم بهروزتر از نرمافزار استراتژی کوآنت در هیچ کجا پیدا نخواهید کرد!
راستی، برای دریافت، استفاده و همینطور دورههای آموزشی این نرمافزار میتونید به بنده پیام بدید.
موفق باشید.
محمدجواد آقابابایی