سلام بچه ها ، من از Python برای Backtest یک استراتژی تجاری بسیار محبوب نشان داده شده در فیلم YouTube Trader Trader استفاده می کنم. استراتژی معاملاتی شامل ترکیبات استحکام تصادفی ، نسبی (RSI) و میانگین متحرک واگرایی همگرایی (MACD) است.
در این استراتژی خاص ، تصادفی برای شناسایی شرایط بیش از حد و بیش از حد استفاده می شود. معمولاً وقتی هر دو خط k ٪ و d ٪ بالاتر از 75 ٪ باشند ، این یک سیگنال بیش از حد ایجاد می کند. و هنگامی که هر دو خط k ٪ و d ٪ زیر 25 ٪ قرار می گیرند ، این یک سیگنال فراگیر ایجاد می کند. با این حال ، یک اشتباه رایج که بسیاری از معامله گران مرتکب می شوند این است که آنها صرفاً برای خرید سیگنال های خرید و فروش خود به تصادفی متکی هستند و در نتیجه نرخ پیروزی کم است. در عوض ، تصادفی باید با سایر شاخص ها ترکیب شود تا یک استراتژی بهتر ایجاد شود.
شاخص دوم در این استراتژی RSI است. RSI اغلب به عنوان یک شاخص بیش از حد/oversold استفاده می شود. با این حال ، برای این استراتژی ترکیبی ، ما در حال حاضر شاخص تصادفی برای انجام آن کار داریم. در عوض ، ما از RSI به عنوان یک نشانگر تأیید روند استفاده خواهیم کرد. به عبارت ساده ، اگر RSI بالاتر از 50 باشد ، ما روند قیمت را به سمت بالا فرض می کنیم و این را به عنوان یک سیگنال خرید طبقه بندی می کنیم. برعکس ، اگر RSI زیر 50 سقوط کند ، فرض می کنیم که قیمت به سمت پایین رو به پایین است و بنابراین ما این را به عنوان یک سیگنال فروش می دانیم.
نشانگر سوم در استراتژی ما MACD است. MACD اغلب به عنوان یک ردیاب حرکت استفاده می شود. یک روش متداول استفاده از MACD این است که اگر MACD از بالای خط سیگنال عبور کند و اگر MACD از زیر خط سیگنال عبور کند ، موقعیت خرید را بدست آورید. با این حال ، این استراتژی اغلب در بازارهای جانبی سیگنال های کاذب می دهد. بنابراین ، ما از MACD با دو شاخص دیگر استفاده خواهیم کرد تا تأیید دیگری را ارائه دهیم که حرکت در سمت ما است.
پشتوانه استراتژی
کتابخانه ها را نصب و وارد کنید
اگر از نوت بوک Jupyter استفاده می کنید ، به سادگی از نصب PIP یا PIP نصب کنید.
داده های فنی cryptocurrency را دریافت کنید
برای این داده ها ، داده های قیمت را از YFInance بارگیری خواهیم کرد ، من از فواصل 30 دقیقه ای استفاده می کنم.
سپس شاخص های فنی را محاسبه می کنیم و ستون هایی را در DataFrame ایجاد می کنیم.
برای محاسبه تصادفی یک تابع ایجاد کنید. این عملکرد اجازه می دهد تا بررسی کند که آیا نشانگر تصادفی شرایط خرید را برآورده کرده است یا شرایط فروش را در پنجره خاص (تعریف شده توسط LAG ها) انجام داده است.
در مرحله بعد ما از عملکرد در DataFrame اصلی استفاده می کنیم. اگر شرایط برآورده شود ، ما 1 می گیریم ، و اگر نه 0 را دریافت می کنیم که من از 4 تاخیر در اینجا استفاده کردم ، بنابراین اگر K ٪ و D ٪ در هر یک از موارد قبلی از آستانه (25 ٪ یا 75 ٪) عبور کرده اند4 ردیف ، شرایط خرید یا فروش برآورده می شود.
سپس بسته به اینکه همه شرایط برآورده شود ، ستون هایی برای خرید یا فروش ایجاد می کنیم.
اکنون می توانیم دو لیست ایجاد کنیم: تاریخ خرید و تاریخ فروش. در اینجا ، ما یک تابع داریم که سیگنال خرید را در اصل در DataFrame بررسی می کند. در صورت ملاقات ، تاریخ را به یک لیست اضافه می کنیم. برای سیگنال فروش ، هنگام رعایت شرایط فروش ، از تاریخ خرید بررسی می کنیم.
از آنجایی که ما از آخرین داده ها استفاده می کنیم ، ممکن است با شرایطی روبرو شویم که تاریخ خرید داشته باشیم اما تاریخ فروش را نداریم زیرا شرایط فروش برآورده نشده است.
توجه کنید که در DataFrame ما تاریخ های همپوشانی داریم. ما نمی خواهیم قبل از بسته شدن آخرین موقعیت ، موقعیت جدید و جدید را باز کنیم. ما می توانیم با مشخص کردن اینکه تاریخ خرید باید بیشتر از تاریخ فروش ردیف قبلی باشد ، از این امر جلوگیری کنیم.
نتایج
سپس سود حاصل از هر تجارت را با استفاده از عملکرد زیر محاسبه می کنیم:
به طور کلی ما 6 معاملات با میانگین بازده 2. 43 ٪ در هر تجارت و بازده تجمعی 15. 39 ٪ داریم.
ما می توانیم داده ها را با استفاده از matplotlib. pyplot تجسم کنیم
همانطور که می بینید چندین تجارت عالی و برخی معاملات بد وجود دارد.
من همچنین این استراتژی را در مورد سایر ارزهای رمزپایه پشت سر گذاشتم.
با ETH-USD ، ما 5 معاملات با میانگین بازده 1. 16 ٪ و بازده تجمعی 5. 9 ٪ داریم.
سرانجام ، من این استراتژی را با BNB-USD با میانگین بازده 1. 34 ٪ و بازده تجمعی 7. 3 ٪ در 6 معاملات آزمایش کرده ام.
محدودیت ها
اخیراً ، ما شاهد روند صعودی در بازارهای رمزنگاری هستیم که شرایط ایده آل برای شاخص های تصادفی و RSI است. با این حال ، من هنوز استراتژی را در یک بازار جانبی پشت سر گذاشته ام ، جایی که این شاخص ها ممکن است مقدار نسبتاً خوبی از سیگنال های کاذب ایجاد کنند.
در این مطالعه ، من از نمودارهای 30 دقیقه ای استفاده کردم اما ارزهای رمزپایه بسیار بی ثبات هستند و ممکن است با استفاده از شمع 15 دقیقه یا حتی 5 دقیقه نتایج بهتری داشته باشید.
من این استراتژی را برای ارزهای رمزپایه با حجم معاملات کم توصیه نمی کنم زیرا گسترش بین خرید و فروش قیمت می تواند بسیار زیاد باشد.
احساس راحتی کنید که با تنظیمات بازی کنید و استراتژی را خودتان بهینه کنید. در اینجا پیوند نوت بوک Jupyter است.
سلب مسئولیت
این مقاله برای اهداف سرگرمی و آموزشی ساخته شده است و نباید به عنوان مشاوره مالی در نظر گرفته شود. لطفاً قبل از انجام هرگونه سرمایه گذاری مالی ، تحقیقات و دقت خود را انجام دهید. تجارت Cryptocurrency دارای ریسک زیادی است و ممکن است منجر به از دست دادن کل سرمایه سرمایه گذاری شده شما شود.
استراتژی های مؤثر فارکس...
ما را در سایت استراتژی های مؤثر فارکس دنبال می کنید
برچسب :
نویسنده : توران میرهادی
بازدید : <-PostHit->
تاريخ : شنبه
26 فروردين
1402 ساعت: 13:56