
یکی از عناصر مشترک برای کلیه قوانین و استراتژی هایی که در این وبلاگ مورد مطالعه قرار گرفته است این است که همه آنها می توانند به صورت عینی تعریف شوند. از این گذشته ، عینیت یک شرط لازم برای تکرارپذیری است و تکرارپذیری در هسته روش علمی است. همه باید بتوانند یک آزمایش را تولید کنند و نتایج آن را تأیید کنند. این کار فقط در صورتی انجام می شود که آزمایش به صورت عینی تعریف شود. وقتی نوبت به تجارت ابزارهای مالی می رسد ، اکثریت قریب به اتفاق سیستم ها مبتنی بر مفاهیم حوزه های پشتیبانی و مقاومت هستند.
شما احتمالاً می دانید که من در مورد چه چیزی صحبت می کنم. خطوط یا محدوده های پشتیبانی مناطقی هستند که قیمت در گذشته نتوانسته است پایین بیاید ، در حالی که خطوط یا محدوده های مقاومت مناطقی هستند که قیمت در گذشته نتوانسته است بالاتر برود. یک منطقه پشتیبانی پس از شکسته شدن می تواند به عنوان یک مقاومت عمل کند و برعکس. یا حکمت محبوب می رود. مشکل واقعی در مورد این مفاهیم این است که هیچ تعریف عینی از مقاومت و پشتیبانی وجود ندارد. شما می توانید از ده معامله گر مختلف بخواهید که به همان نمودار نگاه کنند و آنها با ده خط مختلف که در بالای آن ترسیم شده اند ، ظاهر می شوند. این یک مشکل بزرگ است ، زیرا این بدان معنی است که تمام استراتژی های معاملاتی مبتنی بر مناطق پشتیبانی و مقاومت ثابت و همچنین در خطوط روند ، کدگذاری در یک برنامه رایانه ای دشوار یا غیرممکن است. و اگر آنها نتوانند کدگذاری شوند ، نمی توانند به راحتی از آنها استفاده شوند و بهینه شوند. به عبارت دیگر ، آنها قابل تکرار نیستند.
در این مقاله بیشتر به این مشکل می پردازم و برخی از تکنیک های محاسباتی را که می توانند برای شناسایی الگوریتمی مناطق پشتیبانی و مقاومت در یک نمودار قیمت استفاده شوند ، شناسایی می کنم.
شناسایی سری زمانی افراطی
اولین موضوعی که در شناسایی خطوط یا مناطق پشتیبانی/مقاومت مطرح می شود ، یافتن افراط و تفریط سری زمان قیمت شما ، یعنی حداقل و حداکثر است. از این گذشته ، قیمت ظاهراً از خطوط پشتیبانی و مقاومت دور می شود ، بنابراین در مجاورت آن مناطق افراطی را تشکیل می دهد. اگر بتوانیم افراطی را به درستی شناسایی کنیم ، برای آنچه در آینده به وجود می آید ، در شکل خوبی قرار داریم.
این مشکل خاص توسط نویسندگان دیگر در ادبیات برطرف شده است. به عنوان مثال ، لطفاً به این مقاله متوسط توسط Gianluca Malato نگاهی بیندازید ، جایی که نویسنده از یک الگوی ساده 5 $ -CandLestick برای شناسایی نکات معکوس استفاده می کند. در این پست می خواهم از یک رویکرد مشابه اما تا حدودی متفاوت استفاده کنم. به طور خاص من از Method Signal. argrelextrema () از بسته محبوب Python Scipy استفاده خواهم کرد. این عملکرد با نگاه کردن به امتیازات $ $ $ به سمت چپ و امتیاز N $ $ به سمت راست هر نقطه انتخاب شده در سری زمانی خود ، امتیاز معکوس را مشخص می کند و Extrema را در آن پنجره مشخص می کند.
واضح است که نتیجه این الگوریتم به مقدار پارامتر $ n $ بستگی دارد. اگر این مقدار بسیار ناچیز باشد ، الگوریتم بسیاری از افراط و تفریط را شناسایی می کند - در حد وصل که در هر امتیاز $ 0 $ در هر امتیاز در سری زمانی یک افراط و تفریط خواهد بود (به طور دقیق تر ، همزمان حداقل و حداقل خواهد بودحداکثر)اگر مقدار $ $ $ بسیار بزرگ باشد ، الگوریتم فقط چند افراط را مشخص می کند. بدیهی است ، در هر استراتژی معاملاتی مبتنی بر مناطق پشتیبانی و مقاومت ، ارزش N $ $ یک پارامتر رایگان برای بهینه سازی بر اساس Backtesting خواهد بود.
بگذارید نمونه ای از نحوه عملکرد این الگوریتم را ارائه دهم. بیایید (به طور دلخواه) بازه زمانی 4 تا $ ساعت برای جفت ارز NZD/CHF را در نظر بگیریم. شکل زیر قیمت بیش از 1500 دلار از این دوره را نشان می دهد ، که تقریباً مربوط به یک سال معاملاتی است. طبق معمول ، این داده ها از طریق چارچوب API Oanda به دست آمده است.

اکنون ، من عملکرد Signal. Argrelextrema () را برای این سری زمانی با اندازه پنجره نسبتاً کوچک از $ n = 5 $ اعمال می کنم. افراطی که از این طریق مشخص شده است در شکل زیر نشان داده شده است. مینیما و حداکثر به ترتیب به رنگ قرمز و سبز نشان داده شده اند.

همانطور که می بینید ، از این طریق ما در سری زمانی خود بسیاری از افراط و تفریط را شناسایی می کنیم. در واقع کمی بیش از حدبه عنوان مثال ، روند نزولی کاملاً واضح که در قسمت میانی این رقم مشاهده می شود ، با این انتخاب پارامتر در نویز از بین می رود. بیایید ببینیم اگر پارامتر الگوریتم را تا $ n = 20 $ افزایش دهیم ، چه اتفاقی می افتد. این در شکل زیر نشان داده شده است.

این بسیار بهتر به نظر می رسد ، و تنها با دنبال کردن نقاط قرمز یا سبز ، روندهای اصلی به راحتی قابل تشخیص هستند. در باقیمانده این پست ، بنابراین من $ n = 20 $ فرض کردم. اکنون ، بیایید با مشکل اساسی چگونگی شناسایی الگوریتمی مناطق پشتیبانی و مقاومت روبرو شویم.
حمایت و مقاومت
یک بار دیگر ، هدف ما این است که بتوانیم پشتیبانی و مقاومت را به صورت الگوریتمی شناسایی کنیم. به عبارت دیگر ، ما می خواهیم بتوانیم به یک کامپیوتر دستور دهیم که خطوط افقی را در مناطقی که قیمت آن بیشتر به احترام می رود ، ترسیم کند. بیایید با پشتیبانی شروع کنیم. رویکردی که من استفاده کردم به شرح زیر است: برای هر یک از حداقل مشخص شده در بالا ، من به دنبال دو حداقل زیر هستم که میزان قیمت آنها در 0. 5 $ $ از اولی است. اگر اینها وجود داشته باشند ، من یک خط افقی را از طریق حداقل اول ترسیم می کنم. سپس همان روش را برای همه حداقل در نمودار تکرار می کنم. بدیهی است که از این طریق خطوط پشتیبانی بسیاری از نزدیک به یکدیگر بدست می آید. من این موضوع را با حذف هر خط پشتیبانی بعدی که با 0. 5 $ $ از یک قبلی قبلی است ، می پردازم. شکل زیر نتیجه این رویکرد را نشان می دهد.

همانطور که مشاهده می کنید ، برخی از این خطوط پشتیبانی همزمان با آنچه احتمالاً به صورت دستی ترسیم شده است ، به عنوان مثال خط پایین ترین. از این رو به نظر می رسد که این نتیجه معنی دارد. همچنین لازم به ذکر است که شرط 0. 5 $ $ $ که من برای استفاده از چندین خط پشتیبانی چندگانه درخواست کردم دلخواه است و این پارامتر دیگری است که باید در برنامه های معاملاتی واقعی بهینه شود. شکل زیر نتیجه یکسان را برای خطوط مقاومت نشان می دهد.

این در حال حاضر یک نتیجه جالب به خودی خود است و می توان از آن برای آزمایش الگوریتمی قوانین معاملات بر اساس سطح پشتیبانی افقی و مقاومت و همچنین مدل های مبتنی بر عقب نشینی های فیبوناچی استفاده کرد.
خطوط
با موفقیت در شناسایی پشتیبانی و مقاومت ، مرحله منطقی بعدی استفاده از Extrema از سری زمانی برای شناسایی صعودها و نردبان ها است. به عبارت دیگر ، ما می خواهیم به یک دستگاه دستور دهیم که خطوط پشتیبانی و مقاومت شیب دار را ترسیم کند. بگذارید ابتدا رویکرد خطوط پشتیبانی رو به بالا را شرح دهم. برای هر یک از حداقل مشخص شده در نمودار قیمت من حداقل $ M $ $ را انتخاب کردم و سپس با استفاده از مختصات زمان به عنوان متغیر مستقل منحصر به فرد و قیمت به عنوان متغیر وابسته ، رگرسیون خطی را انجام دادم. اگر نمره R^2 $ رگرسیون بالاتر از 0. 5 $ $ باشد (دوباره ، آستانه ای بهینه سازی شده) ، من خط رگرسیون مربوطه را ترسیم کردم.
آستانه نمره $ r^2 $ تضمین می کند که رگرسیون خطی یک تناسب نسبتاً خوب است ، یا با کلمات مختلف که مینیما در رگرسیون در نظر گرفته می شود نسبتاً نزدیک به یک خط مستقیم است. من این کار را برای $ M در [3 ، 10] $ تکرار کردم. پس از حذف آن خطوط رگرسیون با یک شیب منفی ، من با شکل زیر باقی مانده بودم.

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

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

ما را دنبال کنید
فارکس را از کجا شروع کنیم...
ما را در سایت فارکس را از کجا شروع کنیم دنبال می کنید
برچسب :
نویسنده : لیما اصغرپورسازونی
بازدید : 36
تاريخ : دوشنبه
13 شهريور
1402 ساعت: 3:56