استراتژی های معاملاتی را با استفاده از یک مدل یادگیری عمیق بسازید و سپس استراتژی ها را با استفاده از چارچوب بک تست Financial Toolbox™ آزمایش کنید. این مثال از Deep Leaing Toolbox™ برای آموزش یک مدل پیش بینی از مجموعه ای از سری های زمانی استفاده می کند و مراحل لازم برای تبدیل خروجی مدل به سیگنال های تجاری را نشان می دهد. استراتژی های معاملاتی مختلفی ایجاد می کند که داده های سیگنال را در یک دوره 5 ساله بک آزمایی می کند.
این مثال گردش کار زیر را نشان می دهد:
تمرکز این مثال بر روی گردش کار از داده ها، به یک مدل آموزش دیده، به استراتژی های معاملاتی، و در نهایت به یک آزمون پشتیبان از استراتژی ها است. مدل یادگیری عمیق، خروجی آن، سیگنال های معاملاتی بعدی و استراتژی ها تخیلی هستند. هدف فقط نشان دادن مراحل توسعه و استقرار این نوع مدل است.
بارگذاری داده ها
داده های قیمت تاریخی را بارگیری کنید. این مجموعه داده شامل قیمت های روزانه 12 محصول انرژی مختلف از سال 1986 تا 2021 است و از سری های زمانی زیر تشکیل شده است:
WTI - نفت خام سبک وست تگزاس اینترمدیت
برنت - نفت خام سبک برنت
گاز طبیعی - گاز طبیعی هنری هاب
پروپان - پروپان Mon Belvieu
نفت سفید - سوخت جت از نوع نفت سفید ساحل خلیج آمریکا
نفت گرمایش - بندر نیویورک شماره. 2 روغن گرمایشی
GulfRegular - بنزین معمولی ساحل خلیج آمریکا
LARegular - لس آنجلس بنزین معمولی RBOB را دوباره فرموله کرد
NYRegular - بنزین معمولی بندر نیویورک
GulfDiesel - سواحل خلیج آمریکا با سولفور بسیار کم شماره. 2 دیزل
لیدیزل - دیزل CARB با گوگرد فوق العاده کم لس آنجلس
NYDiesel - بندر نیویورک با سولفور بسیار کم. 2 دیزل
منبع این داده ها اداره اطلاعات انرژی ایالات متحده (نوامبر 2021) است.
پاک کردن و برش داده ها
مجموعه داده های قیمت همه به طور همزمان شروع نمی شوند. برخی از مجموعه داده ها دیرتر از سایرین شروع می شوند و نقاط داده کمتری دارند. نمودار زیر بازه زمانی هر سری قیمت را نشان می دهد.

برای جلوگیری از گستره وسیع داده های از دست رفته، مجموعه هایی را با تاریخچه های کوتاه تر حذف کنید.
متغیرهای جدول باقی مانده حاوی عناصر گمشده پراکنده (NaNs) به دلیل تعطیلات یا دلایل دیگر هستند. داده های از دست رفته بسته به مجموعه داده به روش های مختلفی مدیریت می شوند. در برخی موارد، ممکن است مناسب باشد که تابع fillmissing را درون یابی یا استفاده کنید. در این مثال، می توانید قیمت های NaN باقی مانده را حذف کنید.
سپس، داده های قیمت را با استفاده از تابع tick2ret (جعبه ابزار مالی) به یک سری بازگشتی تبدیل کنید. مجموعه داده نهایی شامل نه سری قیمت با داده های روزانه از سال 1997 تا 2021 است.
داده ها را برای آموزش مدل LSTM آماده کنید
برای آموزش مدل LSTM ، مجموعه داده را آماده و پارتیشن کنید. این مدل از یک پنجره نورد 30 روزه از داده های ویژگی های دنباله دار استفاده می کند و تغییر قیمت روز بعد برای چهار دارایی را پیش بینی می کند: نفت خام برنت ، گاز طبیعی ، پروپان و نفت سفید.
جدول زمانی RetuData را به یک آرایه سلول Numsample s-b y-1 تبدیل کنید. هر سلول حاوی یک ماتریس با طول - by- seql است. متغیر پاسخ یک ماتریس numsample s-by- numresponses است.
Network_features و Network_Responses را به سه بخش تقسیم کنید: آموزش ، اعتبار سنجی و پشتی. مجموعه پشتی را به عنوان مجموعه ای از نقاط داده های متوالی انتخاب کنید. باقیمانده داده ها به طور تصادفی به یک آموزش و یک مجموعه اعتبار سنجی تقسیم می شوند. برای جلوگیری از بیش از حد هنگام آموزش مدل ، از مجموعه اعتبار سنجی استفاده کنید. مجموعه پشتی در فرآیند آموزش استفاده نمی شود ، اما برای تست نهایی استراتژی نهایی محفوظ است.
معماری شبکه LSTM را تعریف کنید
معماری شبکه را به عنوان یک سری لایه ها مشخص کنید. برای کسب اطلاعات بیشتر در مورد شبکه های LSTM ، به شبکه های حافظه کوتاه مدت کوتاه مراجعه کنید. طراح شبکه عمیق ابزاری قدرتمند برای طراحی مدلهای یادگیری عمیق است.
گزینه های آموزش برای مدل LSTM را مشخص کنید
در مرحله بعد ، شما گزینه های آموزش را با استفاده از عملکرد TrainingOptions مشخص می کنید. بسیاری از گزینه های آموزشی در دسترس هستند و استفاده از آنها بسته به مورد استفاده شما متفاوت است. از مدیر آزمایش برای کشف معماری های مختلف شبکه و مجموعه هایی از هایپرپارامتر شبکه استفاده کنید.
مدل LSTM را آموزش دهید
شبکه LSTM را آموزش دهید. از عملکرد Traietwork برای آموزش شبکه استفاده کنید تا اینکه شبکه با معیارهای توقف مطابقت داشته باشد. این فرآیند بسته به رایانه ای که مثال را اجرا می کند می تواند چند دقیقه طول بکشد. برای کسب اطلاعات بیشتر در مورد افزایش عملکرد آموزش شبکه ، به مقیاس یادگیری عمیق به صورت موازی ، GPU و در ابر مراجعه کنید.
برای جلوگیری از انتظار برای آموزش شبکه ، با تنظیم پرچم Dotrain به False ، شبکه پیش ساخته را بارگیری کنید. برای آموزش شبکه با استفاده از Traietwork ، پرچم Dotrain را به درستی تنظیم کنید.
نتایج آموزش را تجسم کنید
با مقایسه مقادیر پیش بینی شده در برابر مقادیر واقعی از مجموعه اعتبارسنجی ، نتایج مدل آموزش دیده را تجسم کنید.



داده های واقعی دارای دمهای ضمنی تر از پیش بینی های مدل آموزش دیده است. پیش بینی های مدل دقیق نیستند ، اما هدف از این مثال نشان دادن گردش کار از بارگیری داده ها ، توسعه مدل ، تا پشتی است. یک مدل پیشرفته تر با مجموعه ای بزرگتر و متنوع تر از داده های آموزشی احتمالاً قدرت پیش بینی کننده تری دارد.
داده های پشتی را تهیه کنید
از پیش بینی های مدل LSTM برای ساختن استراتژی های بک تست استفاده کنید. شما می توانید خروجی مدل را به روش های مختلفی برای ایجاد سیگنال های تجاری پس پردازش کنید. با این حال، برای این مثال، خروجی رگرسیون مدل را بگیرید و آن را به جدول زمانی تبدیل کنید.
از پیش بینی با شبکه آموزش دیده برای تولید پیش بینی های مدل در دوره بک آست استفاده کنید.
پیش بینی ها را به جدول زمانی سیگنال معاملاتی تبدیل کنید.
جدول زمانی قیمت ها را مطابق با بازه زمانی پس آزمون بسازید. بک تست در داخل و خارج از چهار کالای انرژی معامله می شود. جدول زمانی قیمت ها قیمت پایانی روزی است که پیش بینی انجام می شود.
نرخ بدون ریسک را 1% سالانه تنظیم کنید. موتور بک تست همچنین از تنظیم نرخ بدون ریسک در جدول زمانی حاوی نرخ های روزانه تاریخی پشتیبانی می کند.
استراتژی های Backtest ایجاد کنید
از backtestStrategy (جعبه ابزار مالی) برای ایجاد چهار استراتژی معاملاتی بر اساس شاخص های سیگنال استفاده کنید. استراتژی های معاملاتی زیر به عنوان نمونه هایی برای نشان دادن چگونگی تبدیل سیگنال های معاملاتی به استراتژی های تخصیص دارایی قابل اجرا در نظر گرفته شده اند که سپس می توانید آنها را بک تست کنید:
Long Only - سرمایه گذاری تمام سرمایه در دارایی ها با بازده پیش بینی شده مثبت، متناسب با قدرت سیگنال آنها (بازده پیش بینی شده).
Long Short - سرمایه گذاری در دارایی ها، چه در موقعیت های خرید و چه در موقعیت های کوتاه، متناسب با قدرت سیگنال آنها.
بهترین شرط - تمام سرمایه را در دارایی واحد با بالاترین بازده پیش بینی شده سرمایه گذاری کنید.
Equal Weight - هر روز را مجدداً به تخصیص وزن برابر تغییر دهید.
استراتژی ها را در یک آرایه قرار دهید و سپس از backtestEngine (جعبه ابزار مالی) برای ایجاد موتور بک تست استفاده کنید.
Backtest را اجرا کنید
از runBacktest (جعبه ابزار مالی) برای بک تست استراتژی ها در محدوده بک تست استفاده کنید.
ویدیو های آموزشی فارکس...
ما را در سایت ویدیو های آموزشی فارکس دنبال می کنید
برچسب :
نویسنده : محبوب امانی
بازدید : 66
تاريخ : پنجشنبه
24 فروردين
1402 ساعت: 12:02