کار مشاور در بازه زمانی معین. چگونه زمان معاملات مشاوران فارکس را محدود کنیم؟ کارشناس سفارشات معلق
احتمالاً متوجه شده اید که معاملات در روزها یا حتی ساعات خاصی ضرر دارد. به عنوان مثال، اینها می تواند معاملات عصر جمعه باشد، که نتیجه آن، زمانی که در آخر هفته منتقل می شود، اغلب غیرقابل پیش بینی است. چه کار کنم؟ به صورت دستی مشاور را فعال و غیرفعال کنید؟ این خیلی راحت نیست، و همه ما انسان هستیم - شما به سادگی می توانید انجام آن را فراموش کنید.
حل مشکل - مشاور کمکی زمانبندی تجارت، که به شما امکان می دهد زمان کار سایر کارشناسان را طبق برنامه زمانی تعیین شده توسط معامله گر محدود کنید. به عنوان مثال، می توانید معاملات ربات را از ساعت 7 تا 11 صبح روز دوشنبه محدود کنید. این توسعه از دوستان ما می آید ArgoLab و امروز به تفصیل با آن آشنا خواهیم شد.
تجزیه و تحلیل آمار
قبل از محدود کردن کار مشاور، ابتدا باید تعیین کنید که استراتژی در چه زمانی ضعیف می شود. برای این کار می توانید از یکی از سرویس های مانیتورینگ مانند myfxbook استفاده کنید که آمار دقیق معاملات را در طول زمان ارائه می کند. برای اینکه تجزیه و تحلیل قابل اعتماد باشد، توصیه می شود که آمار معاملات حداقل برای سه ماه باشد.
بنابراین، ابتدا باید نظارت بر myfxbook را شروع کنید. اطلاعاتی در مورد نحوه انجام این کار در وب سایت ما وجود دارد. . اجازه دهید نظارت مشاور را به عنوان مثال در نظر بگیریم.شکارچی فارکس.
همچنین می توانید گزارشی را از تستر استراتژی در سایت دانلود کنید. این در درجه اول برای کسانی ضروری است که هنوز مقدار کافی سابقه انباشته شده در یک حساب واقعی ندارند، اما رباتی دارند که می تواند در یک تستر آزمایش شود. چگونه این کار را انجام دهید، دوباره بخوانیدمقاله جداگانه .
در مرحله بعد، پس از دانلود و پردازش مانیتورینگ، به بخش آمار پیشرفته، به تب "روزانه" بروید. تعداد سودآور و معاملات از دست دادنبر اساس روز هفته همانطور که مشاهده می کنید، در روزهای پنجشنبه و جمعه بیشترین تعداد نسبی معاملات زیانده به ترتیب 73 و 74 درصد است. این بدان معناست که شرایط بازار این روزها برای این استراتژی مناسب نیست، پیش بینی ها از دقت کمتری برخوردار است و مشاور ضرر می کند. برای بهبود اثربخشی استراتژی خودکار، عاقلانه است که این روزها را از معاملات حذف کنید.
سپس به آمار ساعتی نگاه می کنیم. فلش های موجود در اسکرین شات ساعت ها را با علامت گذاری می کنند بزرگترین عددمعاملات از دست دادن علاوه بر این، در طول شب (عمدتاً جلسه آسیایی) نه تنها تراکنشهای بسیار کمتری نسبت به اواسط روز انجام میشود، بلکه کیفیت ورودیها نیز جای تامل دارد.
این بدان معنی است که اگر کار مشاور را در روزهای پنجشنبه و جمعه مسدود کنیم و روزهای دیگر را از ساعت 11 تا 19 به کار خود رها کنیم، نتیجه تضمینی بهبود می یابد.
تنظیمات مشاور برای تغییرات در مثال بالا به شکل زیر خواهد بود:
نصب و پیکربندی
مشاور به روش استاندارد نصب شده است. دایرکتوری داده ترمینال را از طریق File - Open directory data باز کنید و به فهرست MQL4 - Experts بروید. در اینجا ما فایل EA دانلود شده قبلی را با پسوند ".ex4" کپی می کنیم. برای اینکه مشاور در پنجره ناوبر ظاهر شود، ترمینال را مجددا راه اندازی کنید.
در تنظیمات باید زمان کار را با توجه به روزهای هفته مشخص کنید. برای هر روز سه پارامتر ورودی وجود دارد. اولی مسئول فعال/غیرفعال کردن معاملات در یک روز خاص است، دومی - برای زمان شروع معامله، سوم - زمان پایان معامله. زمان را می توان تا نزدیکترین دقیقه مشخص کرد. زمان شروع ممکن است بیشتر از زمان پایان باشد، به عنوان مثال، 19:00 و 9:00. در این صورت معاملات از ساعت 00:00 الی 9:00 و از ساعت 19:00 الی 24:00 مجاز خواهد بود.
پارامتر اضافی CloseBeforeSwitchOFF مسئول بستن تمام موقعیت ها بلافاصله قبل از خاموش کردن معاملات خودکار است. در مجموع، پارامتر می تواند سه مقدار داشته باشد: خیر - موقعیت ها بسته نیستند. CloseAllProfitable - فقط موارد سودآور بسته می شوند. CloseAll - از همه موقعیت های باز خارج شوید. پارامتر لغزش مسئول حداکثر لغزش است.
فراموش نکنید که تجارت خودکار و وارد کردن توابع از DLL را فعال کنید.
زمان باید بر اساس زمان پایانه که در سربرگ پنجره نمای کلی بازار نمایش داده می شود، مشخص شود. این هم زمان کارگزار شماست.
همچنین، سعی نکنید چندین نمونه از مشاور را در یک حساب نصب کنید - فقط یک نمونه کافی است. در غیر این صورت، هیچ یک از آنها به درستی کار نمی کند.
نتیجه گیری
محدود کردن کار با زمان ساده ترین و راه موثرعملکرد معاملاتی خود را بهبود بخشید به عنوان مثال، اگر مشاور به طور مداوم از 4 به 8 بازنده شود، الگوی دیگری در بازار وجود دارد که ربات قادر به پردازش آن نیست. صرفاً با معامله نکردن در این دوره، سودآوری کلی خود را افزایش می دهید و سپرده خود را از معاملات غیر ضروری خلاص می کنید.
موضوع انجمن
با احترام، الکسی ورگونوف
TradeLikeaPro.ru
منبع http://tradelikeapro.ru/sovetnik-tradescheduler/
دستیابی به موفقیت در بازار فارکس امروزه تقریبا غیرممکن است که یک الگوی رفتار قیمتی باثبات را در نظر بگیریم، که می تواند در هر یک از اقدامات آن بیان شود.
یکی از این الگوهای چشمگیر که تقریباً برای هر معاملهگری آشناست، در فعالیت قیمت در زمان خاصی از روز ظاهر میشود.
در واقع، به همین دلیل است که اکثر مشاوران و استراتژی های معاملاتی، امروزه مجهز به فیلتر معاملاتی زمانی هستند، زمانی که معامله گر معامله در استراتژی را در یک دوره زمانی نامطلوب ممنوع می کند.
تجارت بزرگ فقط با یک کارگزار پیشرو
با این حال، عامل زمان اغلب می تواند یک الگوی سیگنال باشد و معامله گر باید به نحوی آن را پیاده سازی کند.
به طور طبیعی، همیشه نمی توان به طور مداوم در یک زمان خاص با دقت چند ثانیه در مانیتور حضور داشت تا یک موقعیت برنامه ریزی شده باز شود.
به همین دلیل است که معاملهگران از اسکریپتها و مشاوران ویژهای استفاده میکنند که به آنها امکان میدهد در یک زمان مشخص موقعیت باز کنند. در واقع در این مقاله با یکی از این مشاورین آشنا می شویم.
Time Advisor OpenTime 2 یک کارشناس معاملاتی کاملاً مستقل برای پایانه معاملاتی MT5 است که به شما امکان می دهد استراتژی هایی را بر اساس الگوی حرکت قیمت در زمان خاصی از روز پیاده سازی کنید.
یکی از ویژگی های قابل توجه OpenTime 2 این واقعیت است که عملکرد ربات به آن اجازه می دهد تا به یک متخصص کاملاً مستقل تبدیل شود و الگوهای حرکت قیمت در یک دارایی خاص را با استفاده از بهینه سازی پیدا کند.
بنابراین، یک معامله گر می تواند استراتژی هایی را بر اساس الگوهای زمانی ایجاد کند و همچنین از آن به عنوان دستیار برای اجرای ایده های خود استفاده کند، به عنوان مثال، برای باز کردن معاملات در طول انتشار اخبار (معامله بر اساس انتظارات).
نصب اسکریپت روی نمودار
اولین نسخه از مشاور زمان برای پایانه تجاری MT5 در سال 2017 توسعه یافت، اما عملکرد ربات آنقدر محدود بود که به راحتی میتوان آن را بهعنوان اسکریپتهای ساده طبقهبندی کرد تا رباتهای کامل.
با این حال، پس از گسترش عملکرد در سال 2018، به دنبال توصیه های بسیاری از معامله گران، این ربات نه تنها محبوبیت یافت، بلکه دو نسخه از آن در کتابخانه رسمی توسعه دهندگان MT5 منتشر شد.
بنابراین، مشاور را می توان به دو روش نصب کرد، یعنی از طریق کتابخانه در MT5 شما، یا از طریق دایرکتوری داده برای طرح استاندارد.
برای نصب مشاور از طریق کتابخانه، ترمینال تجاری MT5 خود را راه اندازی کنید و به پانل "ابزارها" بروید، جایی که اطلاعات موقعیت ها و موجودی شما قرار دارد.
سپس به تب "کتابخانه" بروید و یک مرتب سازی ساده انجام دهید تا فقط مشاوران در لیست ظاهر شوند.
پس از مرتب کردن لیست، مشاور زمان OpenTime 2 را در آن پیدا کنید و با استفاده از منوی اضافی همانطور که در تصویر زیر نشان داده شده است آن را دانلود کنید:
اگر نصب به این روش مشکل ایجاد کرد، به انتهای مقاله رفته و فایل ربات را دانلود کنید که طبق طرح استاندارد آن را نصب خواهید کرد.
برای انجام این کار، فقط باید فایل ربات دانلود شده را در دایرکتوری ترمینال MT5، یعنی در پوشه Experts رها کنید.
صرف نظر از روش نصبی که انتخاب کردید، پس از نصب اکسپرت، باید راه اندازی مجدد کنید پایانه تجارییا آن را در پنل Navigator به روز کنید، در غیر این صورت OpenTime 2 در لیست مشاوران ظاهر نمی شود.
با استفاده از OpenTime 2 Time Advisor
همانطور که قبلاً در ابتدای مقاله اشاره کردیم ، مشاور زمان OpenTime 2 دستیار است که به شما امکان می دهد استراتژی هایی را بر اساس الگوی حرکت قیمت در یک زمان خاص از روز پیاده سازی کنید.
نسخه دوم ربات مستقل تر و انعطاف پذیرتر شده است که به شما امکان می دهد سیستم را برای باز کردن و حفظ تراکنش ها با دقت بیشتری پیکربندی کنید.
بنابراین در خطوط Use closing interval و Closing time interval #2 می توانید اجازه دهید بسته شدن زودهنگاممعاملات در بازه های زمانی اول و دوم، در حالی که زمان هر یک از بازه های بسته شدن را می توان در خطوط بازه زمانی بسته شدن 1،2 تنظیم کرد.
متغیر Trailing stop به شما این امکان را می دهد که توقف انتهایی را فعال کنید و مرحله حرکت استاپ در خط Trailing step نشان داده شده است.
در متغیرهای Trade on Monday – Friday می توانید معاملات را در یک روز خاص از هفته ممنوع کنید و در خطوط بازه زمانی شروع افتتاح و بازه زمانی پایان باز کردن می توانید دوره زمانی را که در طی آن موقعیت باید باز شود را تعیین کنید.
متغیر Duration in seconds مسئول زمان نگهداری موقعیت باز است و در خط Type of trade in time interval می توانید جهت معامله یعنی خرید یا فروش را مشخص کنید.
متغیر حجم معاملات مسئولیت لات معاملاتی سفارش در حال باز شدن را بر عهده دارد و در متغیرهای بازه زمانی StopLoss و فاصله زمانی TakeProfit می توانید سود و سفارش توقف را برای موقعیت خود مشخص کنید.
در پایان، شایان ذکر است که مشاور زمان OpenTime 2 یک دستیار پیشرفته و مستقل است که به شما امکان می دهد استراتژی هایی را بر اساس باز کردن موقعیت ها در یک زمان خاص از روز پیاده سازی کنید.
از مقاله یاد خواهید گرفت:
عصر بخیر، خوانندگان و مهمانان عزیز وبلاگ. امروز ما در مورد چگونگی وجود مشاوران کمکی که سفارشات مبتنی بر زمان و در انتظار را انجام می دهند و همچنین نحوه بسته شدن تراکنش ها صحبت خواهیم کرد.
بهترین دلال
مشاوری که سفارش ها را هر ساعت یا بر حسب زمان باز می کند، ابزاری است که در موقعیت های مختلف معاملاتی کمک می کند. به طور کلی، تا آنجا که من می توانم بگویم، علاقه به چنین مشاورانی که اقدامات مشابهی را انجام می دهند، برای مدت طولانی وجود داشته است. و در سال 2006 چنین روباتهایی وجود داشت و در سال 2008، بر اساس درخواستها، میتوانید علاقه به آنها را پیگیری کنید و اکنون درخواستها برای تولید چنین کارشناسانی همچنان ظاهر میشوند. در همان زمان، معامله گران اغلب با تجربه، و نه فقط معامله گران، بلکه کسانی که در تجارت مشغول هستند، به تازه واردان کمک می کنند. به طور کلی، این یک سنت خوب است. معمولاً مبتنی بر مبادله متقابل است. تازه کار ایده هایی را ارائه می دهد و با تجربه حق استفاده از ایده را پیدا می کند و کد تخصصی ایجاد می کند که با شریک زندگی خود به اشتراک می گذارد.
زمانی که شرایط برای استفاده از این کارشناسان فراهم شود
با این حال، بریم سر اصل مطلب! داستان امروز من داستانی در مورد یک متخصص برای ثبت سفارش در زمان مناسب است. برای اهداف مختلفی استفاده می شود. به عنوان مثال، سیستم های معاملاتی وجود دارند که به شدت با شروع یک کندل یا جلسه مرتبط هستند. به عنوان مثال، وجود دارد و طبق تحقیقات کم من، شباهت خاصی از چنین امواجی در واقعیت وجود دارد، اما آنها در بازه های زمانی مختلف ظاهر می شوند و دوره هایی با مدت زمان متفاوت وجود دارد. برای مثال می توانید آنها را در USDCAD در Mn پیدا کنید.
هر ماه شمع هایی وجود دارند که شباهت زیادی به یکدیگر دارند. به عنوان مثال، در ژانویه، به عنوان مثال، برای شش سال یک روند صعودی یا یک روند نزولی وجود دارد، این موضوع نیست. برای دریافت درآمد حاصل از استفاده از این رویکرد، باید در جهتی که به روش تحقیق در ابتدای ماه تعیین شده است، سفارش دهید و در پایان آن را حذف کنید و این کار را فقط در ماه های خاصی از سال انجام دهید. دقیقاً به همین دلیل است که کارشناس سفارشات را بر اساس تاریخ، ساعت و دقیقه انجام می دهد.
متخصصی که در زمان مناسب سفارش می دهد، وظایف دیگری را نیز اجرا می کند، به عنوان مثال، مشخص است که فردا روندی در بازار وجود دارد و ایده معاملاتی مستلزم گرفتن موقعیت در هر کندل ساعتی در جهت روند است. و شما باید سفارشات را در پایان روز معاملاتی لغو کنید.
بنابراین، سفارشات در قالب چنین شبکه ای ظاهر می شوند. در صفحه ای که در آن انجام می شود، می توانید ببینید که چگونه این کار به طور متفاوت انجام می شود. تا پایان روز کاری، سفارشهای توقف خرید، فروش یا سفارشهای بازار نیز در لحظه مناسب حذف میشوند.
چرا اینطور است؟ زیرا من این رویکرد را در اصلاح زیر دیدهام: ثبت سفارش برای هر شمع با یک سفارش بازار یا همچنین روی هر شمع، اما با توقف خرید و فروش در جهت مخالف. در حالت دوم، ممکن است حتی ندانید بازار به کدام سمت حرکت خواهد کرد، اما به سادگی حرکت را بگیرید، گویی از یک توری پروانه ای استفاده می کنید. همچنین هنگام قرار دادن دستور توقف خرید و فروش در هر دو جهت، شاید تا پایان روز یکی از آنها باز نشود و معلق بماند.
دانلود کنید
بنابراین، مشخص می شود که امروزه سه نوع متخصص کمکی در این زمینه وجود دارد.
- نوع اول متخصص برای ثبت سفارش در بازار با در نظر گرفتن ساعات و دقایق خاص
- نوع دوم کارشناس سفارشات معلق بر حسب ساعت و دقیقه است.
- نوع سوم را می توان در دو مورد اول یا be پیاده سازی کرد برنامه جداگانه. در مثال ما دقیقاً همینطور است.
کارشناس سفارش بازار
وقتی می دانید که روند صعودی از ساعت 23:50 شروع می شود، بنابراین قیمت قطعا از 60 پیپ با حد ضرر 30 پیپ می گذرد و شما متخصصی دارید که استاپ ضرر را دنبال می کند، بنابراین به سفارش نیاز خواهید داشت. در عین حال، شما چندان دور نخواهید بود، بنابراین صدایی که از باز شدن خبر می دهد به کارتان می آید. در چنین شرایطی به متخصص نوع اول نیاز خواهید داشت. در این مورد، کارشناس e-OpenByTime است. این اکسپرت که با استفاده از دکمه های اجتماعی قابل دانلود است دارای پارامترهای زیر است:
- TimeTrade - در اینجا شما لحظه دقیق باز شدن سفارش را تعیین می کنید. فرمت داده hh:mm.
- مدت زمان - دوره ای بر حسب ثانیه که در طی آن کارشناس سعی می کند سفارشی را ثبت کند.
- فروش - در اینجا باید نوع سفارش را درست مشخص کنید - به این معنی که سفارشی برای فروش دارایی در بازار باز می شود. مقدار false مربوط به سفارش خرید است.
- لات – این گزینه لات تجاری شما را به مقدار مشخصی محدود می کند.
- SopLoss – استاپ ضرر برای کارگزاران چهار رقمی طراحی شده است، بنابراین برای تعیین اندازه آن در 30 نقطه، باید مقدار را روی 300 تنظیم کنید.
- TakeProfit - همان داستان برداشت سود.
- MagicNumber - من فکر می کنم همه چیز اینجا روشن است.
- UseSound – در مرحله بعدی تنظیمات صدا هستند.
- NameFileSound - در اینجا ما یک فایل صوتی را انتخاب می کنیم.
- از میان تنظیمات باقیمانده، فقط MaketWatch ممکن است سؤالاتی را ایجاد کند. به نظر می رسد که این تنظیم برای اطمینان از ارسال درخواست های تجاری مطابق با قوانین نظارت بر بازار که برخی کارگزاران نیاز دارند، مورد نیاز است.
کارشناس سفارشات معلق
دومین نوع کارشناسانی که روی باز کردن سفارشات معلق کار می کنند، کارشناسان سیستم های معاملاتی مختلف جعبه هستند. مشابه
این بار، به اصطلاح، یک خبره کمکی را شرح می دهم که بدون توجه به روندها و سایر نشانه های نمودار، دو معامله خرید و فروش توقف در هر دو جهت باز می کند.
ما در مورد متخصص 37_Exp-TimeOpenBuy صحبت می کنیم. راه اندازی بسیار ساده است.
- BuyStopOpen و SellStopOpen - هر دو در این مورد درست تعریف می شوند.
- فاصله - تعیین می کند که این سفارش ها در چه فاصله ای از قیمت فعلی قرار می گیرند. لطفا توجه داشته باشید که مقدار در اینجا و در سطر بعدی برای یک کارگزار چهار رقمی محاسبه می شود، بنابراین برای تعیین فاصله باید از یک عدد مثلا 30 امتیاز استفاده کنید و در پایان 0 دیگری اضافه کنید.
- TPBuyStop، SLBuyStop، TPSellStop، SLSellStop - به شما این امکان را می دهد که فاصله گرفتن سود و توقف ضرر را برای هر سفارش تعیین کنید. (در اینجا نیز یک صفر به عدد آخر اضافه می کنیم.)
- CloseAfterOpen – به شما امکان می دهد معامله ای را که پس از شروع یکی از سفارشات توقف خرید و فروش باقی می ماند را حذف کنید.
- لغزش تنظیمی است که طبق تجربه من باید روی هر مقداری غیر از صفر تنظیم شود تا سفارشات انجام شود. این حداکثر مقدار لغزش است.
- CloseIfNotOpen – به عنوان تابعی در نظر گرفته شد که تمام توقف های خرید و فروش ناموفق را در یک زمان جدید حذف می کند. با این حال، هر چقدر تلاش کردم از این عملیات استفاده کنم، هیچ نتیجه ای حاصل نشد.
- گزینه های باقی مانده برای تعیین لحظه ورود به بازار و خروج از آن مورد نیاز است.
متخصص حذف رسوبات
در نهایت مشاور سوم که با استفاده از کد mql4 که من کامپایل کردم حذف خریدها را به موقع و دقیقتر از همه آنها انجام می دهد. به طور کلی، اکنون شما یک مجموعه کامل از مشاوران برای قرار دادن سفارشات خرید، فروش توقف و در بازار و یک متخصص خواهید داشت که سفارشات را به موقع می بندد. برای انجام این کار، قبل از چرخه، که به سادگی سفارشهای buy-، sellstop را میبندد، در واقع، یا بهتر است بگوییم: آنها را حذف میکند، باید بررسی کنید که (TimeCurrent()>=BlackTime). در این حالت، زمانی به متغیر اختصاص داده می شود که پس از آن سفارشات حذف می شوند.
نتیجه گیری
امروز با مجموعه بسیار مفیدی از مشاوران کمکی آشنا شدیم که در موارد مختلف قابل استفاده هستند شرایط بازار. برای استفاده از آنها به یک راه اندازی سریع و نوعی پیش بینی بازار نیاز دارید. در نتیجه استفاده از آنها، می توانید ورودی ها و خروجی های کاملاً مستقل و تقریباً کاملاً خودکار را سازماندهی کنید. حتی می توانم بگویم که همه چیز به طور خودکار اتفاق می افتد، اما فقط در چارچوب چند اقدام، سپس تنظیمات کارشناسان باید تغییر کند. با این حال، این در حال حاضر کمک خوبی برای کسانی است که وقت ندارند بدون محدودیت جلوی یک مانیتور بنشینند. دوستان عزیز همین. امیدوارم این صفحه برای شما جالب بوده باشد.
(2 رتبه بندی، میانگین: 5,00 از 5)اگر شما سیستم معاملاتیبر اساس مسابقات خبری نیست، توقف کار مشاور قبل از انتشار اخبار مهم می تواند برای سلامت مالی و روانی بسیار مفید باشد. و بعد از اینکه نوسانات کم شد، بعد از چند ساعت دوباره آن را روشن کنید. خوب است اگر به یک ترمینال فعال دسترسی دارید. اگر نه؟ اینجاست که اتوماسیون این گونه فعالیت ها مفید واقع می شود.
یکی از گزینه های حل مشکل ما جمع آوری یک فایل با برنامه زمانبندی رویدادهای مهم است. خواندن این فایل توسط کارشناس ما، و تعیین اینکه چه زمانی می توانید کار کنید و چه زمانی نه. کتاب درسی MQL4 نمونه ای از کار با یک فایل متنی CSV را ارائه می دهد، و ما آن را به عنوان مبنایی در نظر می گیریم و همزمان از شر چند اشتباهی که نویسندگان ناخواسته یا به منظور آزمایش دقت ما مرتکب شده اند خلاص می شویم (که خود آنها در مورد آن هشدار می دهند - ما نباید کورکورانه به کسی اعتماد کنیم، اشتباهات همیشه اتفاق می افتد).
بنابراین، بیایید برنامه ای از رویدادهای مهم برای آن تهیه کنیم هفته آیندهدر قالب زیر:
تاریخ و زمان رویداد
2016.04.01 14:00;USD;شاخص فعالیت تجاری ISM در بخش تولید 2016.04.01 14:00;USD;شاخص شتاب تدریجی تورم از ISM 2016.04.04 09:00;EUR indexerm; ) 04.04.2016 09:00;EUR;شاخص قیمت تولیدکننده (سالانه) 2016.04.05 04:30;AUD;تصمیم بانک مرکزی استرالیا در مورد نرخ بهره 2016.04.05 04:30;Reservey of theAc بانک استرالیا 2016.04.06 07: 00;EUR;نشست ECB 2016.04.06 18:00;USD;صورتجلسه جلسه کمیته بازار آزاد فدرال ایالات متحده 2016.04.07 11:30;EUR؛اطلاعات در مورد نشست ECB در مورد پولی سیاست
بیایید آن را در فایل ht-news.csv بنویسیم و در دایرکتوری مورد نیاز \MQL4\Files\ht-news.csv قرار دهیم، جایی که مشاور ما می تواند آن را بخواند.
ابتدا، اجازه دهید متغیرهای خارجی را برای پیکربندی تنظیم کنیم.
Extern string startNewsEvent="محدودیت کار در اخبار"; ورودی bool StopOnNewsEvent=true; //رشته ورودی محدودیت را فعال کنید NewsEventFileName="ht-news.csv"; //فایل با ورودی زمانبندی uint LoadNewsEventTimerInDay=7;//هر چند وقت یک بار در روز بارگیری مجدد فایل ورودی uint StopPriorEventHours=2; //توقف X ساعت قبل از ورود رویداد StartAfterEventHours=3; //شروع X ساعت بعد از رویداد خارجی رشته stopNewsEvent="----------------";
ساختار زیر به ما کمک می کند تا به توضیحات رویداد در حال پردازش دسترسی پیدا کنیم:
Struct NEWS_EVENT (تاریخ رویداد زمان؛ // رشته زمان رویداد؛ //رشته ابزار رویداد رویداد Comment؛ //نظر رویداد);
عملکرد سفارشی برای خواندن اطلاعات از یک فایل
Bool LoadNews() ( int handle; // ابزار رشته توصیفگر فایل، // نام واحد پول رویداد firstInstrument، secondInstrument، // قسمت اول و دوم نام جفت فعلی eventComment، // متن شرح رویداد stringDateTime; // بیان رشته ای از تاریخ و زمان رویداد datetime eventDateTime // تاریخ و زمان رویداد در قالب datetime handle=FileOpen(NewsEventFileName,FILE_CSV|FILE_READ,";");// باز کردن فایل if(handle;<0) // Неудача при открытии файла { int lastError=GetLastError(); if(lastError==4103) // Если файла не существует, сообщим Alert("Нет файла с именем ",NewsEventFileName); else // При любой другой ошибке Alert("Ошибка при открытии файла ",NewsEventFileName," :",lastError); PlaySound("Bzrrr.wav"); // Громко ругнемся и вернем фалсе return false; } int cnt=0; while(FileIsEnding(handle)==false) { stringDateTime =FileReadString(handle);// Дата и время события instrument=FileReadString(handle); //Инструмент eventComment =FileReadString(handle);// Текст описания события, может не быть eventDateTime =StrToTime(stringDateTime); // Преобразование типа данных firstInstrument=StringSubstr(Symbol(),0,3);// Извлекаем первые 3 символа secondInstrument=StringSubstr(Symbol(),3,3);// Извлекаем вторые 3 символа if(StringCompare(instrument,firstInstrument,false)!=0 && StringCompare(instrument,secondInstrument,false)!=0) { continue; //не наши инструменты } cnt++; ArrayResize(NewsEvent,cnt,1000); //изменяем размер массива с запасом для ускорения ArrayResize(NewsEventTime,cnt,1000); NewsEvent.EventTime= eventDateTime; NewsEvent.Instrument=instrument; NewsEvent.EventComment=eventComment; NewsEventTime=eventDateTime; //удобнее искать в одномерном массиве } FileClose(handle); // Закрываем файл ArraySort(NewsEventTime,WHOLE_ARRAY,0,MODE_ASCEND); //сортируем массив для последующего поиска return true; }
ما زمان مورد نیاز را در آرایه NewsEventTime جستجو می کنیم و در صورت یافتن زمان، توضیحات آن را از آرایه ساختار NewsEvent آنها دریافت می کنیم.
رشته GetEventInfo (تاریخ تاریخ) ( for(int i=0;i تابع Helper برای تعیین اینکه آیا زمان فعلی در زمان بیکار قرار می گیرد یا خیر //بررسی کنید که آیا باید مشاور اخبار را غیرفعال کنیم True - work False - rest bool CheckEnableNewsWork() ( if (ArraySize(NewsEventTime)==0) true را برگرداند؛ //به دلایلی آرایه با زمانبندی خالی بود، به این معنی ما در حال کار هستیم //اکنون باید نزدیکترین تاریخ را در NewsEventTime پیدا کنیم که قبل از آن باید کار را برای StopPriorEventHours ساعت datetime timeCurrent =TimeCurrent(datetime timeStopWork=timeCurrent+StopPriorEventHours*3600) متوقف کنیم که کمتر از timeStopWork است، پس از آن ما کار را متوقف می کنیم timeStartWork=foundEventTime+StartAfterEventHours*3600 بیایید بررسی کنیم که آیا اکنون timeCurrent بین timeStopWork و timeStartWork هستیم.<=timeStartWork)
{
DrawLabel("EnableNewsWork","Не работаем, новость: "+GetEventInfo(foundEventTime)+"",5,80,Red);
return false;
}
else
{
DrawLabel("EnableNewsWork","Нормальная работа, новостей нет",5,80,Green);
return true;
}
}
برای خواندن دورهای از یک فایل با یک زمانبندی، به یک تایمر نیاز داریم که برای مثال، هفتهای یکبار، طبق پیکربندی اجرا شود. // وجود یک فایل خبری را با استفاده از تایمر void OnTimer() بررسی کنید ( if (StopOnNewsEvent) ( LoadNews(); //خواندن فایل ) ) هنگام تنظیم اولیه مشاور، باید تایمر را راه اندازی کنید و برای اولین بار اخبار را بخوانید OnInit() .... اگر (StopOnNewsEvent) //اگر تنظیم شد، فایل را با اخبار بارگیری کنید ( bool tm=EventSetTimer(LoadNewsEventTimerInDay*86400)؛ //تایمر را شروع کنید تا فایل با برنامه بارگذاری شود اگر (!tm) هشدار("خطای EventSetTimer :"GetLastError()); در هر تیک بررسی می کنیم که آیا می توانیم موقعیت ها را باز کنیم یا خیر. به هر حال، این نباید روی تریلینگ تأثیر بگذارد. OnTick() .... bool enableNewsWork=true; //شما می توانید روی رویدادهای خبری کار کنید اگر (StopOnNewsEvent) (enableNewsWork=CheckEnableNewsWork(); //اگر محدودیت خبری وجود دارد، زمان را بررسی کنید) if (HaveMoney && enableNewsWork) Traiding(Pairs); //شرایط را بررسی کنید و روی یک جفت معامله باز کنید همین. متأسفانه، من هنوز این کد را روی یک حساب واقعی آزمایش نکرده ام، زیرا آن را در آخر هفته نوشتم، تیک ها را با یک تایمر شبیه سازی کردم و زمان فعلی را که در آخر هفته متوقف می شود، به صورت دستی تغییر دادم. اما هفته آینده من به زندگی واقعی نگاه خواهم کرد، در نسخه جدید "Forex Grail 1.11"، جایی که کد بالا را جاسازی کردم. در آینده، ممکن است نیاز داشته باشید که یک ابزار مناسب برای تولید فایل ht-news.csv ایجاد کنید، به عنوان مثال در همان فایل این مشاور برای کسانی که بر اساس سطوح و هر استراتژی که از سفارشات محدود معلق استفاده می کنند معامله می کنند ایده آل است. مشاور سفارشات را در زمان مناسب و در فاصله مناسب از قیمت فعلی انجام می دهد! در تنظیمات ربات، می توانید ضررهای توقف، سود سفارشات و همچنین مقدار هر سفارش را تنظیم کنید. همه چیز برای هر سفارش به طور جداگانه تنظیم شده است. شما می توانید فقط محدودیت خرید، یا محدودیت فروش، یا هر دو سفارش را با هم قرار دهید! مشاور آماده کار بر روی هر ابزار معاملاتی، در هر پایانه معاملاتی متاتریدر 4 است. یعنی می توانید هر تعداد جفت را باز کنید و روی آنها یک مشاور نصب کنید و به هر کدام شماره جادویی و تنظیمات زمان خود را بدهید. پس از آن، هر یک از زوج ها به طور جداگانه کار خواهند کرد. اگر هنوز با سفارشات محدود به صورت دستی کار می کنید، این ربات برای شما مناسب است!