10 راه استراتژی تجارت شما می تواند شکست بخورد

ساخت وبلاگ

تجارت الگوریتمی سعی می کند احساسات را هنگام تجارت از بین ببرد. ما با استراتژی های معاملاتی ارائه می دهیم که قوانینی را برای خرید و فروش دارایی ها تعیین کرده و آنها را قبل از استقرار کاملاً آزمایش می کند. با این حال ، برخی از خطاهای متداول وجود دارد که ما در طول فرآیند مرتکب می شویم. نادیده گرفتن آنها می تواند باعث شود استراتژی های ما با بدبختی شکست بخورد.

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

در این مقاله موارد زیر را پوشش می دهیم:

پیوند وبلاگ کامل در قالب Google Colab در پایان وبلاگ وجود دارد ، در صورت تمایل به امتحان کردن آن.

مسابقه 1-2

در زیر یک استراتژی معاملاتی است که بر روی داده های تاریخی آزمایش شده است. آیا خطای منطقی/فنی در آن وجود دارد؟

اگر چنین است ، این چیست؟

(دوره: 1-Jan-2019 تا 28-Jun-2019 ، فاصله: 1 دقیقه ، اسکریپت: اسکریپت)

ایده پشت استراتژی

  • if (sma_short/sma_long)>Long_ratio سپس در دهانه خریداری کرده و در بسته شدن دقیقه بعد بفروشید
  • if (sma_short/sma_long)
  • توجه: برای اهداف تظاهرات ، بازده فقط در درصد محاسبه می شود ، بدون اینکه حداقل واحدهای قابل تجارت ابزار را حساب کنند.

نتایج پشتی ما ویژگی های زیر را دارد

 

  • نسبت برد/باخت بیشتر از 23. 9 است. به نظر می رسد زیاد است.
  • میانگین بازده در هر معامله عمدتا کم و مثبت است. تعداد زیادی معاملات وجود دارد.
  • مجموع بازده در ٪ محاسبه شده زیاد است.
  • هزینه معامله که معمولاً قابل توجه است ، گنجانده نشده است.
  • از آنجایی که ما با داده های ناچیز کار کرده ایم ، فرض می کنیم که تمام سفارشات ما سفارشات بازار خواهد بود. از این رو باید تأثیر لغزش را در نظر بگیریم.
  • ما هنگام پر شدن سفارشات ، گسترش پیشنهادات را به حساب نیاورده ایم. بنابراین ما سعی خواهیم کرد که لغزش ها را پیش بینی کنیم (گسترش پیشنهاد). ما اکنون آن را درج کرده و فرض می کنیم که 0. 00001 ٪ از قیمت ابزار باشد. (ارزش خودسرانه به خاطر تظاهرات انتخاب شده است). حجم ابزار با گسترش پیشنهادات منفی ارتباط منفی دارد.

     

اکنون فاکتورهای ذکر شده در بالا را درج کرده و کد خود را مطابق شکل زیر اصلاح می کنیم.

رمز اصلاح شده

مشاهدات پس از ترکیب تغییرات

  • مجموع بازده در ٪ از +187 ٪ به +70 ٪ کاهش یافته است.
  • نسبت برد/باخت از 29 به نزدیک به 4. 02 کاهش یافته است.
  • عملکرد استراتژی در تمام پارامترها کاهش یافته است.

تعجب نکنید!

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

مسابقه 3-4

در زیر یک استراتژی معاملاتی است که بر روی داده های تاریخی آزمایش شده است. آیا خطای منطقی/فنی در آن وجود دارد؟

اگر چنین است ، این چیست؟

(دوره: 01-Jan-2008 تا 31-Aug-2020 ، فاصله: 1 روز ، اسکریپت: nifty)

در اینجا ویژگی های اصلی استراتژی که ما آزمایش کرده ایم آورده شده است.

  • برای مشاهده معاملات موجود در این استراتژی کوتاه به زیر مراجعه کنید
  • بازده ها به صورت محاسبه می شوند (sell_price-buy_price)*100/sell_price
  • فرض 1: حداقل تعداد واحدهای قابل تجارت 1 است.
  • فرض 2: انتظار می رود بازده دوباره سرمایه گذاری شود.
  • فرض 3: لغزش ها صفر هستند و هزینه معاملات 0 است.

مشاهدات و تصحیح

  • محاسبه فوق بازده قبلی در سرمایه گذاری مجدد را در نظر نمی گیرد.
  • محاسبه فوق بازده را با در نظر گرفتن محاسبه می کند ، واحدها را می توان در کسری خریداری کرد. این برای همه سازها صادق نیست.

پس از ترکیب موارد زیر

  • سرمایه گذاری بر اساس واحدهای کامل
  • بازده در پایان سرمایه محاسبه می شود

نتایج پشتیبان است

محاسبه صحیح

مشاهدات پس از ترکیب تغییرات

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

مسابقه 5

در زیر یک استراتژی معاملاتی است که بر روی داده های تاریخی آزمایش شده است. آیا خطای منطقی/فنی در آن وجود دارد؟

اگر چنین است ، این چیست؟

(دوره: 15-JUN-2019 تا 28-JUN-2019 ، فاصله: 1 دقیقه ، اسکریپت: اسکریپت)

ایده پشت استراتژی

سناریویی را در نظر بگیرید که در آن استراتژی پیش بینی جهت دقایقی بعدی با استفاده از یک مدل ML است. پشتی این استراتژی به شرح زیر است:

مشاهده و تصحیح

 

"با تقسیم داده های موجود در دو مجموعه ، ما به طور چشمگیری تعداد نمونه هایی را که می توان برای یادگیری مدل استفاده کرد ، کاهش می دهیم و نتایج می تواند به یک انتخاب تصادفی خاص برای جفت (قطار ، اعتبار سنجی) بستگی داشته باشد.

 

یک راه حل برای این مشکل روشی به نام اعتبار سنجی متقابل (CV برای کوتاه) است. یک مجموعه آزمایشی هنوز باید برای ارزیابی نهایی برگزار شود ، اما در هنگام انجام CV دیگر مجموعه اعتبار سنجی لازم نیست.

در رویکرد اصلی ، به نام K-Fold CV ، مجموعه آموزش به مجموعه های کوچکتر K تقسیم می شود (رویکردهای دیگر در زیر شرح داده شده است ، اما به طور کلی از همان اصول پیروی می کنند). روش زیر برای هر یک از «چین های k» دنبال می شود.

یک مدل با استفاده از چین ها به عنوان داده های آموزشی آموزش داده می شود. مدل حاصل در قسمت باقیمانده داده ها تأیید می شود (یعنی از آن به عنوان یک مجموعه آزمایش برای محاسبه یک اندازه گیری عملکرد مانند دقت استفاده می شود). "

منبع: Scikit-Lea. org

رمز اصلاح شده

اکنون فاکتورهای ذکر شده در بالا را درج کرده و کد خود را مطابق شکل زیر اصلاح می کنیم.

مشاهدات پس از ترکیب تغییرات

دقت مدل قبل از 100 ٪ بود ، اما پس از تأیید اعتبار متقابل ، تقریباً به 51 ٪ کاهش یافت.

مسابقه 6

در زیر یک استراتژی معاملاتی است که بر روی داده های تاریخی آزمایش شده است. آیا خطای منطقی/فنی در آن وجود دارد؟

اگر چنین است ، این چیست؟

(دوره: 5 سال گذشته ، فاصله: 1 روز ، اسکریپت: AAPL (اپل))

ایده پشت استراتژی

if sma_short>SMA_LONG سپس در افتتاح بازار خریداری کرده و در بسته شدن بازار همان روز به فروش می رسد.

بازده درصد کل عبارتند از: 166. 26

مشاهدات و اصلاحات

SMA_SHORT و SMA_LONG با استفاده از قیمت نزدیک روز محاسبه می شوند. و آنها از نزدیک روز فعلی استفاده می کنند. در حالی که ما در افتتاح روز فعلی موقعیت خرید را می گیریم.

در افتتاحیه روز ، الگو نزدیک روز را نمی دانست. Algo باید SMA_SHORT و SMA_LONG روز گذشته را گرفته بود.

این اشتباه بسیار رایج توسط معامله گران ALGO است. به همین دلیل ما در مقایسه با Backtesting نتایج متفاوتی در معاملات واقعی کسب می کنیم.

این نیز به عنوان تعصب نگاه به عنوان نگاه می شود.

کد/منطق اصلاح شده

بازده درصد کل عبارتند از: 74. 32000000000001

مشاهدات پس از ترکیب تغییرات

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

مسابقه 7

در زیر یک استراتژی معاملاتی است که بر روی داده های تاریخی آزمایش شده است. آیا خطای منطقی/فنی در آن وجود دارد؟

اگر چنین است ، این چیست؟

(دوره: 10 سال گذشته ، فاصله: 1 روز ، فیلمنامه: کلیه ترکیبات Nifty50)

ایده پشت استراتژی

این منطق برای همه ترکیبات Nifty50 قابل اجرا است:

  • این به معنای منطق برگشت مجدد با فرض اینکه Nifty50 سهام با کیفیت است. در هر شیب می توان آنها را خریداری کرد و هر قیام آنها را به صورت مربع می کند. این منطق بر اساس استفاده از نشانگر باند بولینگر برای محاسبات است.
  • Long Entry Criteria: if ((sma-bb_width std)>close_price) سپس موقعیت طولانی را بگیرید*
  • معیارهای خروج طولانی: از موقعیت طولانی خارج شوید ((SMA+BB_WIDTH STD)

تعریف پارامترها

  • BB_WIDTH تعداد STD فاصله از SMA است.
  • (sma-bb_width std) سطح پایین تر می شود*
  • (SMA+BB_WIDTH STD) سطح بالایی می شود*

مشاهدات و اصلاحات

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

در حالی که شاخص Nifty50 دارای افزودن و حذف منظم در ترکیبات است. برای درک عملکرد الگوریتم بهتر است که اسکریپت های حذف شده/حذف شده بهتر در نظر گرفته شوند.

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

اکنون AlgorirthM را روی چند اسکریپت که در گذشته از فهرست Nifty 50 حذف شده اند ، آزمایش خواهیم کرد.

کد/منطق اصلاح شده

مشاهدات پس از ترکیب تغییرات

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

مسابقه 8

در زیر یک استراتژی معاملاتی است که بر روی داده های تاریخی آزمایش شده است. آیا خطای منطقی/فنی در آن وجود دارد؟

اگر چنین است ، این چیست؟

(دوره: 10 سال گذشته ، فاصله: 1 روز ، فیلمنامه: کلیه ترکیبات Nifty50)

ایده پشت استراتژی

  • این استراتژی با استفاده از شمع های Heikin Ashi مبتنی بر منطق حرکت است
  • معیارهای ورود طولانی: (شمع فعلی و شمع قبلی سبز است) و (دو شمع آخر آن را ویک پایین تر ندارند)
  • معیارهای خروج طولانی: (شمع فعلی و شمع قبلی قرمز است)
  • معیارهای ورود کوتاه: (شمع فعلی و شمع قبلی قرمز است) و (دو شمع آخر که فتیله فوقانی ندارند)
  • معیارهای خروج کوتاه: (شمع فعلی و شمع قبلی سبز است)
  • فرض: در دوره آزمایش هیچ تغییری در ترکیبات شاخص Nifty50 مشاهده نشده است

مشاهدات و اصلاحات

اگر به روش استخراج شمعهای HA نگاه کنیم ، آنها به هیچ وجه مشابه OHLC واقعی واقعی شمعدان معمولی نیستند. شمع OHLC از HA با استفاده از دو شمع آخر شمعدان های معمولی مشتق شده است. به عبارت دیگر ، سری قیمت با استفاده از شمع HA صاف می شود. اما دقیقاً با سری قیمت واقعی مطابقت ندارد.

بنابراین استفاده از OHLC از HA برای گرفتن موقعیت های تجاری صحیح نیست. مسئله مشابه با چند نمودار دیگر مانند Kagi و Renko است.

اکنون AlgorirthM را با استفاده از قیمت نزدیک شمع معمولی آزمایش خواهیم کرد.

کد/منطق اصلاح شده

مشاهدات پس از ترکیب تغییرات

بازده Total_retus و AVG در هر معامله پس از اصلاح در کد به میزان قابل توجهی کاهش یافته است.

اشتباه 9

دخالت در سیستم تجارت یا پارامترهای Algo.

بر خلاف سناریوهای ذکر شده ، این یک مسابقه نیست. با این حال این یک اشتباه بسیار رایج است.

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

مراحل یا مراحل در فرآیند تجارت الگوریتمی به شرح زیر است:

  1. مفهوم/منطق تجارت را تدوین کنید
  2. معیارهای فیلتر برای انتخاب اسکریپت ها
  3. تأیید منطق (در سطح بالا)
  4. بهینه سازی پارامترها/بازیابی مدل
  5. توسعه و بازگشت به الگوریتم
  6. تجارت کاغذ یا آزمایش یا تجارت یا تجارت شبیه سازی در محیط واقعی
  7. استقرار در محیط واقعی
  8. به صورت دوره ای (شاید مبنای ماهانه) به مرحله 4 برگردید (تکرار)
  9. به صورت دوره ای (در بازه طولانی تر شاید سالانه) برای تأیید منطق پایه به مرحله 1 برگردید و دامنه پیشرفت ها را بررسی کنید

اگر مراحل معاملات الگوریتمی که در بالا ذکر شد به درستی دنبال شود و اشتباهات یا خطاهای احتمالی به سطح رضایت بخش بررسی شود ، توصیه نمی شود تنظیم معاملات ALGO را تغییر دهید مگر اینکه خطای بالقوه ای را در دامنه عملکردی/فنی/فرآیند کشف کنیدواد

ما فرصتی برای ایجاد تغییرات خواهیم داشت زیرا چرخه معاملات Algo قدم بهینه سازی پارامترها و تأیید/به روزرسانی منطق پایه را در مبنای دوره ای دارد.:)

اشتباه 10

رانش مفهومی - به طور مرتب از بازآموزی/احترام نیست

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

و در یک محیط تجارت زنده نیز ، عملکرد همانند مجموعه داده های آزمون بود. اما بعد از 3 ماه ، مشاهده کردید که دقت پیش بینی به همان اندازه که در ابتدا در ابتدا دقیق نیست.

چه عواملی ممکن است در این زمینه وجود داشته باشد؟

  • آیا تغییرات محیطی را در نظر گرفته اید که می تواند در رابطه بین برچسب ها و متغیر هدف مدل شما تأثیر بگذارد؟
  • در طی یک دوره زمانی ، وزن و اهمیت برچسب ها برای پیش بینی متغیر هدف تغییر می کند.

برای حل این مسئله

  • ممکن است ما نیاز به بازیابی مدل با مجموعه داده جدید داشته باشیم. مجموعه داده جدید ممکن است نیاز به کاهش داده های دوره قدیمی داشته باشد و جدیدترین و داده های مرتبط را شامل شود.
  • همچنین ممکن است لازم باشد که مدل را با برچسب های مرتبط تر با وزن و اهمیت صحیح بازسازی کنید.

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

توجه داشته باشید

  • لطفاً توجه داشته باشید که این مسئله محدود به مدل یادگیری ماشین نیست ، هر مدل ریاضی/آماری می تواند این مسئله را داشته باشد. اما روش حل مسئله یکسان است.
  • عدم کاهش این مسئله ممکن است منجر به عدم موفقیت مدل تجارت/پیش بینی به روشی بزرگ شود.

خلاصه

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

به طور خلاصه ، ما با کمک مثالها خطاها و اصلاحات آنها را یاد گرفته ایم:

  • حسابداری برای هزینه معامله نیست
  • در نظر گرفتن لغزش ها
  • محاسبه اشتباه بازده با عدم در نظر گرفتن واحدها به عنوان تعداد کامل
  • محاسبه اشتباه با عدم ترکیب بازده
  • بیش از حد
  • تعصب به جلو نگاه کنید
  • تعصب زنده ماندن
  • مراجعه به قیمت اشتباه ابزار برای گرفتن موقعیت
  • دخالت در سیستم تجارت یا پارامترهای ALGO
  • رانش مفهومی - به طور مرتب از بازآموزی/احترام نیست

انجام اقدامات پیشگیرانه در مرحله پشتی ، باعث کاهش چشمگیر شکاف عملکرد بین پشتی و تجارت واقعی خواهد شد

مسابقه غافلگیرانه

برای نشان دادن اینکه ارتکاب و نادیده گرفتن یکی از این اشتباهات چقدر آسان است ، ما به طور عمدی یکی از این موارد را در آزمونهای فوق قرار داده ایم تا بتوانید بفهمید.

و ما توضیح نداده ایم که خطا در بخش مشاهده/توضیح مسابقه.

اگر این کار را انجام دادید ، در بخش نظرات به ما اطلاع دهید که چگونه ما در این مثال توانسته ایم پشتوانه خود را شکست دهیم.

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

تشکر ویژه از Vivek Krishnamoorthy ، Ashutosh Dave و Mario P برای ورودی های ارزشمند آنها.

وبلاگ کامل با فرمت Google Colab:

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

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

برچسب : نویسنده : مرجان شیرمحمدی بازدید : 39 تاريخ : سه شنبه 26 ارديبهشت 1402 ساعت: 11:19