مولد استراتژی

تولیدکننده استراتژی

تولیدکننده استراتژی به شما اجازه می­‌دهد استراتژی­‌ها را بصورت خودکار یا نیمه خودکار تولید کنید. هر استراتژی در زبانه‌اش دارای تولیدکننده خود است. اگر چند تولیدکننده را در زمان واحد اجرا کنید بصورت مستقل و بدون تداخل با همدیگر عمل خواهند کرد. این­که چند تولیدکننده را می‌­توانید در یک لحظه همزمان استفاده کنید بستگی به انتخاب شما و سریع بودن کامپیوترتان دارد. یک کامپیوتر استاندارد می­‌تواند حداقل چند تولیدکننده را بطور همزمان داشته باشد.

رابط کاربری تولیدکننده بسیار مشابه رابط Editor (ویرایشگر) است: پارامترهای ورودی استراتژی، اسلات­‌های استراتژی و مشخصات آن و همچنین indicator chart (چارت اندیکاتور)، ارقام و چارت توازن.

این ابزار به این جهت طراحی شده است که شما به راحتی بتوانید استراتژی­‌های جدید را امتحان کنید، استراتژی­‌هایی ایجاد کنید که در شرایط مختلف کار می‌­کنند و سودآوری می­‌نمایند.

 

شروع سریع

acceptance criteria (معیار پذیرش) را قبل از اجرای تولیدکننده معین کنید.

قبل از این­که شروع کنید به تولید یک استراتژی­، باید مطمئن شوید همه چیز در ابتدا تعیین شده است. تولیدکننده محیط استراتژی را تولید نمی­‌کند. بلکه تنها خود راهبرد را تولید می‌­نماید. به عبارت دیگر تولیدکننده نمی­‌تواند انتخاب کند استراتژی از کدام جفت ارزی یا دوره ارزی استفاده خواهد کرد. شما باید اینها را بصورت دستی وارد کنید زیرا تولیدکننده برای تولید استراتژی، بدون تغییر محیط، طراحی شده است.

پارامترهایی که باید در صفحه ویرایشگر استراتژی قبل از تولید تعیین شوند عبارتند از:

  • Profile (پروفایل) پروفایل حاوی همه تنظیمات حساب است: حساب اولیه، اهرم، تغییر نسبت غیرمعین، نرخ تبادل پول حساب…
  • منبع داده تعیین می­کند چه مجموعه دادهای استفاده شود. حاوی تنظیمات نماد است: گسترش، معاملات پایاپای، افت، ارقام.
  • نماد و دوره این دو بازاری را تعیین می‌­کنند که استراتژی در آن داد و ستد می­‌کند.
  • مشخصات استراتژی همه حساب­‌های داد و ستد: باز کردن دسته­‌ها، اضافه کردن دسته‌ها، حداکثر دسته‌ها (lots)…
  • شرط بندی

 

پارامترهایی که ممکن است در ویرایشگر تعیین شوند توسط تولیدکننده تغییر کنند:

  • Strategy Protections (حفاظت از استراتژی­) – Stop Loss (توقف اتلاف)، Take Profit (سودآوری)، Break Even  (سر به سر شدن).
  • قواعد متوسط گیری – رفتار سیگنال همان مسیر و سیگنال مسیر مخالف

 

در نوار کنترل برروی دکمه «Start» کلیک کنید.

۱_نوار ابزار Generator

سه دکمه اولِ ابزار Generator درواقع سه پنل را باز می‌­کند که در ادامه جزئیات آنها را شرح می‌­دهیم. مورد بعدی منوی «out of sample» است. این یکی در ویرایشگر وجود ندارد.

۱-۱ اختیارات رایج

[us_cta title=”” color=”custom” bg_color=”#fff79f” text_color=”#565656″ btn_label=”” btn_size=”” btn_color=”primary”]ایده خوبی است که همیشه قبل از تولید یک استراتژی از این پنل استفاده شود. شما باید از آن برای تخصیص گزینه‌ها برای Stop Loss, Take Profit و مشخص ساختن این که آیا سیگنال های میانگین گیری باید توسط تولیدکننده قابل تغییر باشند یا خیر، استفاده نمایید. [/us_cta]

این پنل شامل تنظیمات پایه مربوط به تولیدکننده است. می­‌توانید با کلیک برروی دکمه «Common» یا با باز کردن « Strategy Properties » آن را باز کنید. در اینجا تفاوت با Editor در این است که شما نمی­‌توانید استراتژی را ویرایش کنید. تنها می­‌توانید برخی پارامترهای تولیدکننده را تغییر دهید و استراتژی در محدوده‌­هایی که تعیین کرده ­اید ایجاد می­‌شود.

 

پنل اختیارات رایج به چند ناحیه تقسیم شده است:

مولد استراتژی

تولید سیگنال‌­های ورود اضافی

هرکدام از این دو فیلد در اینجا دارای یک مقدار چک باکس است. اگر بدون تیک بماند تولیدکننده این گزینه را تغییر نخواهد داد، و همانطور که در ویرایشگر بود دست نخورده می­‌ماند. اگر بخواهید تولیدکننده را قادر سازید یک گزینه را تغییر دهد، چک باکس را تیک بزنید. این گزینه‌ها تنها می­‌توانند نوع سیگنال را تغییر بدهند نه مقدار آن را. اندازه­‌های داد و ستد تنها در ویرایشگر تعیین می­‌شوند.

 

ایجاد حفاظت معامله

حفاظت معامله­‌ها Stop Loss (توقف اتلاف)، Take Profit (سودآوری) و Brake Even (سر به سر) هستند. سه دسته اختیارات وجود دارد. اولین گزینه در هر دسته به ما اجازه می‌­دهد تعیین کنیم آیا تولیدکننده از مقدار اصلی ویرایشگر استفاده خواهد کرد یا خیر – Keep original -. همچنین می­‌توانید آن را برابر با «Always use» (استفاده همیشگی) تعیین کنید. حتی اگر در ویرایشگر فعال نباشد تولیدکننده آن را فعال می‌­کند، «May use» (شاید استفاده شود) – به میل خود تصمیم می‌­گیرد آیا از این حفاظت استفاده کند یا خیر، «Do not use» (عدم استفاده) به معنی آن است که مهم نیست چه چیزی در ویرایشگر تعیین شده باشد به هرحال از حفاظت استفاده نمی‌­شود.

این رنج برحسب نقاط سنجیده می­‌شود. مقدار یک نقطه بستگی به تعداد ارقام در قیمت پیشنهادی دارد. برای مثال اگر ۵ رقم باشد، یک نقطه ۰٫۰۰۰۰۱ خواهد بود.

رنج‌­های برای چه چیزی استفاده می­‌شوند؟

واضح‌ترین بیان تعیین کردن مقادیر حداقل و حداکثر است. گزینه دیگر ایجاد یک نوع «relation» بین توقف اتلاف و سودآوری است. پیشنهاد می‌­شود در یک استراتژی توقف اتلاف بیشتر از سوداوری به قیمت ورود نزدیک باشد. دلیل این امر آن است که با این کار اگر قیمت پایین بیاید می­‌توانید اتلاف را محدود کنید و اگر بازار بالا برود می‌­تواند خرید ­تر شود. این یک رویکرد «تمایل به جلو» است. برای مثال می­‌توانید توقف اتلاف را برابر با ۱۰۰ تا ۲۰۰ نقطه، و سودآوری را برابر با ۱۸۰ تا ۳۸۰ نقطه تعیین کنید. اگر این مقادیر را اینگونه تنظیم کرده اید فراموش نکنید از اپرامتر استفاده مثلاً برای «May use» یا «Always Use» استفاده کنید.

 

حداکثر تعداد اسلات­‌ها

هر دو فیلد به شما اجازه می­‌دهند حداکثر تعداد اسلات­‌های مورد استفاده را تعیین کنید. از آنجایی که یک استراتژی همیشه یک نقطه سرآغاز معامله و یک نقطه خاتمه معامله دارد اما تعداد متغیری شروط منطق سرآغاز و شروط منطق خاتمه دارد، لذا می­‌توانید تنها دو مورد آخر را تعیین کنید.

 

۱-۲ تنظیمات تولیدکننده

مولد استراتژی

تنظیمات تولیدکننده کمتر استفاده می­‌شوند زیرا وقتی آنها را تعیین می‌­کنید به ندرت پیش می‌آید که بخواهید تغییرشان دهید.

گزینه بهترین جستجو به شما اجازه می­‌دهد انتخاب کنید تولیدکننده چگونه بهترین استراتژی را بردارد. گزینه پیش­فرض «Net balance» (موجودی خالص) اطمینان حاصل می­‌کند که شما تنها سودآورترین استراتژی را دیده‌اید. «نرخ سود/زیان» باید نسبت بین معاملات سودآور و زیان­‌آور باشد اما در عمل نسبت بین تعداد بردها و تعداد معاملات است. برای مثال اگر شما ۵ برد و ۳ باخت داشته باشید نسبت ۵/۸ خواهد بود. بنابراین نسبت برد/باخت با مقادیر بین ۰ و ۱ اندازه‌­گیری می­شود. ۱ مربوط به زمانی است که تنها معاملات برد وجود داشته باشد. بسیار مهم است که بدانید وقتی این پارامتر را انتخاب می­کنید می­‌تواند یک چاقوی دوسرتیز باشد زیرا یک استراتژی می­تواند نسبت برد/باخت ۱ داشته باشد حتی اگر تنها یک داد و ستد انجام داده و در یک دوره چند ساله ۱ ست سود کرده باشد ۱ (معامله برد) / ۱ (تعداد همه معاملات) = ۱٫ شما باید از گزینه ­های مختلف لیست «بهترین جستجو» آگاه باشید.

زمان فعالیت برحسب دقیقه به جریان فرایند تولید ارتباطی ندارد. تنها به شما اجازه می­‌دهد مشخص کنید تولیدکننده چقدر کار کند. تولیدکننده در هنگام کار واقعاً «state» (وضعیتی) ندارد. الگوریتم آن در انتخاب تصادفی اندیکاتور­ها، پارامتر برای آنها تنظیم می‌­کند و چک می­‌کند این­که آیا استراتژی ایجاد شده مطابق با معیارهای پذیرش است یا خیر. اگر استراتژی که از معیارهای پذیرش رد می­‌شود بهتر از استراتژی قبلی باشد این موضوع برای شما نشان داده خواهد شد و استراتژی به Collection (مجموعه) جاری اضافه می‌­شود. اگر بدون این­که بهتر از قبلی باشد از معیارهای پذیرش بگذرد تنها به مجموعه جاری اضافه خواهد شد.

پیشنهاد می‌­شود این پارامتر را زیر ۵ دقیقه تعیین نکنید زیرا تولیدکننده استراتژی­‌های زیادی برای زمان­‌های فروش تر پیدا نخواهد کرد. می­‌توانید آن را برای چند ساعت هم تعیین کنید. اگر یک ماشین قابل اعتماد دارید می­‌توانید اجازه دهید ۸ الی ۱۲ ساعت در طول شب کار کند و عصر شما باید یک مجموعه کامل از استراتژی­‌هایی را پیدا کنید که معیارهای پذیرش را برآورده می‌­کنند. اگر معیارها خیلی بالا باشند، ممکن است چیزی پیدا نکند زیرا این امکان وجود دارد یک استراتژی با معیارهایی مطابقت داشته باشد که اصلاً وجود ندارند. برای مثال اگر شما بخواهید یک استراتژی را در دوره M1 ایجاد کنید و بخواهید ۱۰۰ دلار آمریکا را روزانه بدست آورید این احتمالاً غیرممکن خواهد بود.

وقتی تجربه بدست می‌آورید و با تولیدکننده کار می­‌کنید تا حدی تنظیمات اختیاری که متناسب با تجربیات و قالب شماست را پیدا خواهید کرد.

Use default numeric values (استفاده از مقادیر عددی پیش­فرض) به صورت پیش­فرض غیرفعال است. اگر آن را فعال کنید تولیدکننده بصورت خودکار تنها منطق کاربرد اندیکاتور­ها را بدون تغییر مقادیر عددی تغییر می­‌دهد. پیش­فرض­‌ها برای تولیدکننده همانطور که بودند باقی می‌مانند. این گزینه برای پرهیز از فوق بهینه سازی استفاده می­‌شود.

اگر به تولیدکننده اجازه دهید مدت کافی را کار کند (مثلاً چند روز) این امکان وجود دارد که استراتژی را پیدا کند که مطابق با منحنی داده‌ها باشد. این باعث می‌­شود استراتژی مطلقاً مناسب منحنی باشد.

Generator uses statistical database (تولیدکننده از پایگاه داده­‌های آماری استفاده کند) تولیدکننده BSB Pro از تولیدکننده نسخه قدیمی هوشمندتر است. این تولیدکننده از داده­‌های رقمی و هوش مصنوعی برای یادگیری از روی استراتژی­‌های سودآور استفاده می­‌کند.

Optimize strategy (بهینه­ سازی استراتژی­) ویژگی بهینه­ سازی زبانه Strategy Tab نیست. اگر این گزینه فعال شود، تولیدکننده سعی می­‌کند از مقادیر و تنظیمات دیگر برای اندیکاتور­های استراتژی استفاده می­‌کند تا ببیند آیا می­‌تواند آن را کمی بهتر کند یا خیر. اگر بهینه سازی کامل شود و استراتژی هنوز از معیار پذیرش می­‌گذرد و بهتر از نسخه قدیمی باشد، نسخه جدید نشان داده شده و به مجموعه اضافه می­‌شود. فعال نگه داشتن این گزینه ایده خوبی است. این بهینه سازی کامل نیست. می­‌توانید از بهینه ­ساز برای آن استفاده کنید.

 

Normalize strategy (نرمال ­سازی استراتژی) این گزینه به معنی سودآورتر کردن یک استراتژی نیست، بلکه تنها ممکن است کمک کند. نحوه کار آن چگونه است:

  • اگر استراتژی با سه شرط منطق سرآغاز دارید، تولیدکننده بررسی می کند که اگر یکی را حذف کند پس استراتژی هنوز مفید و سودآور است. اگر استراتژی هنوز سودآور باشد این به معنی آن است که اندیکاتور بی فایده بود و حذف خواهد شد. این درواقع کمک کننده است زیرا اطمینان حاصل می‌کند که تا جای امکان اندیکاتورهای کمی وجود دارند. اندیکاتورهای بیشتر به معنی آن است که برخی از آنها ممکن است همبستگی داشته باشند و شروط منطقی یکی بسیار مشابه یکی دیگر است در نتیجه نیازی به محاسبه هر دوی آنها نیست.
  • کار دیگری که نرمال سازی انجام می‌دهد آن است که سعی می‌­کند پارامترهای اندیکاتور را تا حد امکان به مقادیر پیش فرض نزدیک‌تر کند. برای مثال مقدار پیش فرض میانگین متحرک برابر با ۱۴ است و MA در استراتژی برابر با ۵۰ است که از مقدار پیش فرض خیلی فاصله دارد و تولیدکننده سعی می‌کند آن را به مقدار پیش فرض نزدیک‌تر کند. در همین حال تولیدکننده مطمئن می‌شود استراتژی جدید بدتر از استراتژی حاضر نیست. ممکن است کمی بهتر باشد. این با حذف کردن شروط غیر مفید استراتژی را دقیق‌­تر می‌سازد. وقتی یک استراتژی اندیکاتور­ها و اختیاراتی دارد که بطور گسترده­‌تری استفاده می‌شوند، این امر موجب کاهش احتمال فوق بهینه سازی می شود.

تعداد تهدیدات موازی در اینجا شما می‌­توانید عددی بین ۱ و ۶۴ انتخاب کنید. از آنجایی که اکثر کامپیوترهای امروزی حداقل ۲ هسته دارند لذا مقدار پیش فرض را ۲ در نظر گرفته ­ایم. برای بهره ­وری کامل از پردازنده می‌توانید این فیلد را با عدد بزرگتری پر کنید. توصیه می­‌کنیم این گزینه را امتحان کنید تا مشاهده نمایید چه تنظیماتی بهترین کارایی را برای کامپیوتر شما دارند. به عقیده ما ۲ تا ۴ بند معمولاً برای اکثر کامپیوترها انتخاب خوبی است، به شرطی که در لحظه از یک تولیدکننده استفاده کنید. این عدد تنها برای تولیدکننده‌ه­ایی که در حال حاضر انتخاب شده است اعمال می شود. اگر بطور همزمان بیش از یک عدد از آنها را اجرا می‌کنید توصیه نمی‌کنیم این عدد را افزایش دهید زیرا تعداد کل نخ ها ممکن است از تعداد بسته‌های کامپیوتر شما فراتر برود، که این می تواند منجر به کند شدن فرایند شود.

 

۱-۳ اندیکاتورهای تولیدکننده

مولد استراتژی

بطور پیش فرض تولیدکننده از همه اندیکاتور­هایی که در برنامه هستند استفاده می‌کند. با این وجود شما ممکن است نخواهید از همه اندیکاتور­ها استفاده کنید (دلیل اصلی آن می‌توانید این باشد که اکثر اندیکاتور­ها همبستگی دارند، اکثر آنها به همدیگر شباهت زیادی دارند لذا از داده‌های مبنای یکسانی استفاده می‌کنند – قیمت – اما قیمت برای همه اندیکاتور­ها یکی است بطوری که نمی‌توانند خیلی از آن فاصله بگیرند).

این پنل به شما این امکان را می‌دهد که از چهار لیست اندیکاتور­ها انتخاب نمایید (می‌توانید اندیکاتور بالای پنل را انتخاب کنید). این لیست‌ها برای هرکدام از چهار نوع اسلاتی که یک استراتژی می‌تواند داشته باشد، وجود دارند.

دلیل انجام این کار آن است که یک اندیکاتور می‌تواند در زمان واحد در چند اسلات وجود داشته باشد. برای مثال می‌توانید میانگین متحرک را در نقطه سراغاز معامله و همچنین در یک شرط سراغاز داشته باشید. شما می‌توانید با استفاده از چک باکس‌ها (جعبه‌های انتخاب) یا با کلیک برروی خود اندیکاتور­ها در بالای پنل آنها را مجاز یا مسدود کنید. اگر همه اندیکاتور­های ممکن برای یک اسلات را مسدود کنید یک خطا در نزدیک دکمه شروع تولیدکننده دریافت خواهید کرد. دلیل این امر آن است که اگر اندیکاتوری برای انتخاب وجود نداشته باشد، قادر نخواهد بود یک استراتژی را ایجاد کند. اگر نمی‌خواهید اندیکاتور­هایی را به عنوان شروط سراغاز یا شروط خاتمه داشته باشید بهتر است در شروط منطق باز شدن/ خاتمه حداکثر از قسمت Common Options، عدد صفر (۰) را انتخاب کنید.

 

(۱-۴ Out of Sample OOS)

The default value here is “In Sample” which means that the Generator will use all the data you provided it with. However if you go “Out of Sample” and select a different option, when you press “Start” the generator will ignore the last X% percent of the bars where X is the percentage OOS you selected. The Generator will calculate a strategy without this end portion of bars. You can see the chart after the generator finished creating a strategy on the picture in the beginning of the article, pointed by the “Out of Sample Zone” bubble. The generator did not know anything about the data in the green area. Our generator works with a “real” OOS, which means the Generator literally has no clue about the data that being trimmed from the end of the chart while generating the strategy.

The main idea of OOS is to avoid over optimization or curve fitting. Curve fitting means that a strategy is fitting given data. So fitting that if you do a little change it will start experiencing losses instead of profits. So if you are generating a strategy without using OOS there is a chance you will experience unexpected behavior when trading it – new data comes in and the strategy is over-optimized for the old data.

The OOS is basically simulating the trading. So for example you have designed the strategy using the first X% of the data and after that you trade the strategy for the remaining Y% of the data. This is also called “future test in the past” or “testing with unknown data”. The goal of OOS is to achieve the most smoothly raising in the OOS Zone. If this is not the case the strategy is not fit to be traded. On the other hand even if the balance line is smoothly raising this in no way guarantees the strategy will be profitable, but it will certainly have a much bigger chance to make profits than one where the balance line is fluctuating a lot.

۱٫۵ Collection Name

This field allows you to specify a collection name. The collection is a virtual “folder” where the generator will add strategies while working. This is very useful for you because you do not need to always be checking the generator for new strategies. You can instead let the Generator work on its own. When generating a strategy the generator will show the best strategy but all the strategies that make it trough the acceptance criteria and showed some profit but are not as good are added to this collection and you can check them out later. You can see you collection in the Repository.

۲_ نوار ابزار استراتژی

دلیل این­که این نوار ابزار اینجا است، آن است که در مولد، شما نمی­توانید به صورت دستی اندیکاتورها را تغییر دهید. در عوض، نوار ابزار استراتژی به شما امکان انتخاب حفظ یک اندیکاتور و «میزان و مقدار آن» را می­‌دهد.

به طور پیش­فرض وقتی چشمک می‌­زند، مولد همه اسلات‌­هایی که لینک نباشند یا قفل نباشند را پاک خواهد کرد.

نوار ابزار استراتژی به شما اجازه می­‌دهد همه اندیکاتور­ها را یک­جا «لینک»، «قفل» یا «آزاد» کنید.

قفل (Lock) مولد قادر نخواهد بود اندیکاتور را از استراتژی حذف کند یا تغییر دهد.

لینک (Link) تولیدکننده بدون این­که بتواند اندیکاتور را حذف کند، از آن استفاده می‌کند؛ اما قادر است پارامترهایش را تغییر دهد.

آزاد (Unlock) این گزینه‌ی پیش­فرض است. مولد از این اندیکاتور چشم­ پوشی کرده و اسلات را تکمیل می­‌کند.

شما می­‌توانید هر اندیکاتور جداگانه را قفل، آزاد و لینک کنید. می­‌توانید با کلیک بر روی آن در لیست اسلات زیر نوار ابزار استراتژی، وضعیت آن را تغییر دهید.

دکمه «مقداردهی مجدد استراتژی» تنها بعد از این­که مولد کار خود را تکمیل کرد و یک استراتژی جهت نمایش پیدا کرد، فعال می­‌شود. اگر آن­چه مولد برایتان ایجاد کرده است را دوست نداشته باشید، کلیک برروی این دکمه استراتژی نقطه شروع شما را نشان می­‌دهد.

Undo و Redo نیز به صورت اختیاری فعال هستند و می­‌توانید از آنها برای تبادل بین گام­‌ها در تغییر استراتژی استفاده کنید.

 

۳_نوار فرمان

دکمه شروع/توقف درواقع تولید استراتژی‌­ها را شروع/ و متوقف می­‌سازد.

کاربران زیادی پرسیده‌اند چرا هیچ دکمه مکثی (pause) وجود ندارد. از آن­جایی که تولیدکننده استراتژی­‌ها را واقعاً سریع محاسبه و تست می­‌کند لذا در زمان توقف یا مکث هیچ وضعیتی را نگهداری نمی­‌کند. همه استراتژی­‌هایی که مطابق با معیارهای پذیرش هستند به یک مجموعه استراتژی به انتخاب شما اضافه می­‌شوند، اگر مجدداً تولیدکننده را اجرا کنید همه استراتژی­‌های جدیدی که به اندازه کافی مناسب هستند به مجموعه اضافه خواهند شد. توقف و مکث مولد برابر خواهد بود، زیرا همیشه به دنبال یک استراتژی تصادفی است که به اندازه کافی مناسب پذیرش معیارهایی که شما تعیین کرده­‌اید، باشد.

در حالت­‌هایی که مولد داده­‌ای را از قلم انداخته است یا اندیکاتورهای مجاز کافی نداشته باشد، ممکن است دکمه Start فعال نشود. این با یک آیکون قرمز نزدیک دکمه نشان داده می‌شود که شما می­‌توانید دلیل این وضعیت دکمه را بخوانید.

Calculated count (تعداد محاسبه شده) مولد هزاران استراتژی را محاسبه کرده و تنها آنهایی را که به اندازه کافی مناسب است گرداوری خواهد کرد. این شمارنده تعداد کل استراتژی­‌های محاسبه شده را نشان می‌دهد، نه فقط آنهایی که در مجموعه قرار می­‌گیرند.

Collected count (تعداد گرداوری شده) تعداد استراتژی را نشان می­‌دهد.

Shown Count (تعداد نشان داده شده) تعداد دفعاتی که تولیدکننده استراتژی بهتری از استراتژی جاری را پیدا کرده و در چارت توازن آن را نشان داده است. هر زمان تولیدکننده یک استراتژی بهتر را پیدا کند دومین استراتژی بهتر را جایگزین کرده و استراتژی بهتر جدید را نمایش می‌دهد.