روند تطبیقی به دنبال استراتژی معاملاتی بر اساس رنکو

ساخت وبلاگ

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

  1. مفهوم
  2. شرح الگوریتم
  3. توسعه استراتژی تجارت
  4. پشتی و تجزیه و تحلیل نتیجه
  5. بحث بیشتر بحث
  6. نتیجه گیری

مفهوم

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

بهینه سازی کیفیت در طول زمان در این زمینه "سازگاری" نامیده می شود.

شرح الگوریتم

این استراتژی معاملاتی یک روند معمولی در زیر است ، اما موارد زیر بر اساس آخرین جهت Renko ، نه قیمت میانگین حرکت. مراحل اساسی عبارتند از:

  1. اگر نمودار Renko خالی است ، با استفاده از بهینه سازی اندازه آجر ، نمودار را بسازید. سازگاری به این معنی است که سطح نوسانات می تواند برای بهینه سازی فرآیند مهم باشد. در این مثال ، اندازه آجری بهینه در IQR تغییرات قیمت مطلق (به عنوان مثال روزانه) برای روزهای گذشته است. همچنین ، می توانید هر محدوده ای را برای بهینه سازی (بر اساس نشانگر ATR ، ثابت یا درصد آخرین قیمت) انتخاب کنید.

2. اگر نمودار Renko خالی نیست ، آخرین قیمت بازار را دریافت کنید و به Renko اضافه کنید. اگر آجر جدید ساخته نشده است ، به تکرار بعدی منتقل شوید. در غیر این صورت ، اگر آجر جدید از جهت فعلی پیروی کند ، باید بخشی از موقعیت فعلی (0 - 100 ٪) پوشانده شود. اگر آجر جدید در جهت مخالف ساخته شود ، موقعیت فعلی باید بسته شود ، به این معنی است که روند تغییر یافته است. نمودار رنکو باید خالی باشد.

3. این مراحل را تکرار کنید در حالی که داده های قیمت همچنان به تغذیه ادامه می یابد.

توسعه استراتژی تجارت

من از چارچوب کاتالیزور برای توسعه استراتژی تجارت استفاده خواهم کرد. نحوه نصب چارچوب و چند نمونه که می توانید در وب سایت پیدا کنید.

کاتالیزور یک کتابخانه تجارت الگوریتمی برای دارایی های رمزنگاری شده در پایتون است. این اجازه می دهد تا استراتژی های معاملاتی به راحتی در برابر داده های تاریخی (با وضوح روزانه و دقیقه) بیان و پشتوانه شوند ، و تجزیه و تحلیل و بینش هایی را در مورد عملکرد یک استراتژی خاص ارائه دهند.

اساساً ، کاتالیزور اسکریپت از چند قسمت تشکیل شده است: اولیه ، Handle_data ، تجزیه و تحلیل و اجرای run_algorithm. بیایید الگوریتم را کد کنیم.

اول از همه ، کتابخانه های مورد نیاز باید مشخص شود ، ماژول پیرنکو که می توانید در GitHub پیدا کنید.

برخی از اطلاعات مربوط به آموزش:

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

اولیه (زمینه)

Handle_data (زمینه ، داده)

قبل از شروع الگوریتم ، کاتالیزور عملکرد اولیه () را فراخوانی می کند و در یک متغیر متن عبور می کند. زمینه یک فضای نام مداوم برای شما است تا متغیرهایی را که برای دسترسی به یک تکرار الگوریتم به آن دسترسی دارید ، ذخیره کنید.

پس از شروع الگوریتم ، کاتالیزور عملکرد Handle_data () را در هر تکرار فراخوانی می کند ، بسته به فرکانس ما برای اجرای شبیه سازی خود ، یک روز در روز (روزانه) یا هر دقیقه (دقیقه) است. در هر تکرار ، Handle_Data () همان متغیر زمینه و یک قاب رویداد را به نام داده هایی که حاوی نوار معاملاتی فعلی با قیمت های باز ، بالا ، پایین و نزدیک (OHLC) و همچنین حجم برای هر دارایی رمزنگاری در جهان شما است ، عبور می دهد.

عملکرد اولیه ما به این شکل است:

ما با جفت رمزنگاری ETH/BTC کار می کنیم. بازه زمانی اصلی ساعتی (60T) است. نمودار Renko از 15 روز (15 * 24 ساعت) داده استفاده می کند. ما 16. 6 ٪ از مقدار موقعیت را بعد از هر آجر جدید در جهت فعلی پوشش می دهیم. کمیسیون مشابه کمیسیون مبادله Bitfinex است. همچنین ، ما از مقدار لغزش استفاده می کنیم ، بیشتر به نظر می رسد که چگونه در حالت واقعی پیش می رود.

منطق کلی الگوریتم در عملکرد Handed_Data است:

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

اطلاعات اضافی با استفاده از عملکرد ضبط منتقل شده است. این اطلاعات مورد استفاده در عملکرد تجزیه و تحلیل که پس از اجرای الگوریتم اجرا می شود. در این عملکرد می توانیم برخی از نمودارها را ترسیم کنیم ، عملکرد الگوریتم را محاسبه کنیم و غیره.

قسمت آخر اسکریپت run_algorithm است که شامل دوره ای از پشتی ، سرمایه ، رمزنگاری و نام کارکردهایی است که در بالا توضیح دادیم.

در این مثال ، ما با تغذیه روزانه داده ها (پارامتر data_frequency) کار می کنیم.

استراتژی ترید...
ما را در سایت استراتژی ترید دنبال می کنید

برچسب : نویسنده : مرجان شیرمحمدی بازدید : 38 تاريخ : سه شنبه 26 ارديبهشت 1402 ساعت: 14:48