این قابلیت از بیلد 127 در دسترس است. لطفاً همچنین توجه داشته باشید که این قابلیت در آخرین بیلدها از نشانگرهای داده سفارشی به نشانگرهای خارجی تغییر نام داده است.
اگر اندیکاتوری دارید که میخواهید در StrategyQuant استفاده کنید، اما هنوز در آنجا پشتیبانی نمیشود، دو گزینه دارید:
- نشانگر سفارشی را در جاوا در StrategyQuant CodeEditor پیاده سازی کنید – این به دانش برنامه نویسی نیاز دارد. نشانگر اضافه شده به این روش درست مانند هر نشانگر دیگری که SQ پشتیبانی می کند کار خواهد کرد
- اندیکاتور سفارشی را به عنوان داده وارد کنید – به این ترتیب StrategyQuant میتواند از نشانگر استفاده کند بدون اینکه بداند دقیقاً چگونه مقادیر آن را محاسبه کرده است. این سادهتر است، اما محدودیتهایی دارد - شما باید مقادیر اندیکاتور را از پلتفرم معاملاتی خود با استفاده از یک اسکریپت خاص صادر کنید و سپس آنها را به SQ وارد کنید. علاوه بر این، دادهها فقط برای نماد و بازه زمانی که آنها را محاسبه کردهاید معتبر خواهند بود. برای مثال، اگر نشانگر سفارشی خود را بر روی EURUSD / H1 محاسبه کنید و میخواهید از آن برای GBPUSD / H1 یا حتی EURUSD / M30 استفاده کنید. باید داده ها را از پلتفرم معاملاتی خود دوباره صادر کنید.
این مستندات در مورد گزینه 2 است. - وارد کردن شاخص ها به عنوان داده.
توجه داشته باشید!
اندیکاتورهای سفارشی وارد شده به عنوان داده در MetaTrader، Tradestation یا دیگر پلتفرم معاملاتی شما محاسبه می شوند، نه در SQ. برای به دست آوردن نتایج صحیح، باید از داده های سابقه یکسانی در StrategyQuant و MT4 استفاده کنید. محاسبه شاخص سفارشی خود در متاتریدر با داده های کارگزار و سپس استفاده از آنها در StrategyQuant بر روی داده های منبع دیگر کارساز نخواهد بود. قبل از استفاده از نشانگرهای سفارشی، دادههای سابقه خود را همگامسازی کنید تا هم SQ و هم MT4 از یک تاریخچه استفاده کنند
در این مثال نشانگر RVI را که یک نشانگر نمونه استاندارد در پلتفرم MT5 است پیاده سازی می کنیم:
مرحله 1: شاخص خارجی جدید خود را در StrategyQuant تعریف کنید
Go to Data manager ->تب نشانگرهای خارجی را بزنید و روی افزودن جدید کلیک کنید.
یک گفتگوی نشانگر جدید باز می شود که در آن ویژگی های شاخصی را که اضافه می کنید مشخص می کنید:
نام
نام نشانگر است که تحت آن آن را در SQ خواهید دید. باید منحصر به فرد باشد و شامل هیچ کاراکتر خاصی نباشد. از آنجا که نشانگر سفارشی به طور خاص برای یک نماد و بازه زمانی محاسبه میشود، تمرین خوبی است که نماد استفاده و TF را نیز در نام آن تنظیم کنید، مانند مورد ما: RVI_EURUSD_H1.
نوع برگشت
یک نوع محاسبه شاخص ارزش بازگشتی است، StrategyQuant از آن برای تطبیق صحیح این اندیکاتور سفارشی با سایر بلوکهای ساختمان در برنامه استفاده میکند، به طوری که قیمت را با قیمت مقایسه میکند، نه برای مثال قیمت با مقدار CCI. می تواند هر دو باشد:
- عدد - اگر نشانگر باشد مانند CCI، RSI، MACD و غیره.
- قیمت - اگر مقدار شاخص قیمت باشد، مانند میانگین متحرک یا باندهای بولینگر.
- محدوده قیمت - اگر مقدار نشانگر محدوده قیمت باشد (تفاوت بین دو قیمت)، مانند ATR یا Bollinger Bands Rage.
- سیگنال - اگر می خواهید از نشانگر به عنوان یک بلوک سیگنال سفارشی استفاده کنید، از این گزینه استفاده کنید. شما می توانید از نشانگر سیگنال به عنوان مثال برای تشخیص الگوهای شمع یا اجرای قوانین معاملاتی ساده خود استفاده کنید.
نحوه تصمیم گیری در مورد نوع بازگشت مناسب
به طور کلی، اگر اندیکاتور خطوط خود را روی همان نمودار قیمت بکشد، نوع بازگشت آن قیمت است. اگر خطوط خود را در یک پنجره جداگانه در زیر نمودار اصلی ترسیم کند، عدد است، به جز شاخصهای خاصی مانند ATR که تفاوت قیمت یا محدوده را محاسبه میکنند.
مقادیر نشانگر (خطوط)
اینها خروجی های شاخص مقادیر هستند. اگر اسکرین شات نشانگر RVI را در زیر بررسی کنیم، میبینید که دو مقدار در پنجره داده خروجی میدهد و آنها با خط RVI (سبز) و سیگنال (قرمز) در نمودار مطابقت دارند.
مقادیر باید به همان ترتیبی که در اندیکاتور ایجاد شده اند تعریف شوند.
سپس یک بخش جالب وجود دارد - می توانید کد منبع را برای هر پلت فرم معاملاتی برای هر خط تعریف کنید. این برای نشانگر کار در SQ ضروری نیست، اما لازم است SQ بداند چگونه کد منبع استراتژی را برای هر پلتفرم تولید کند.
شما نیازی به تعریف منابع برای هر سه پلتفرم (MT4، MT5، EasyLanguage) ندارید. اگر فقط از MT5 استفاده می کنید، کافی است فقط آن کد را مشخص کنید.
کد نحوه استفاده از این اندیکاتور در کد پلت فرم معاملاتی خود است، برای متاتریدر معمولا چیزی شبیه به:
iCustom(NULL، 0، «RVI»، 10، 0،#Shift#)
توجه داشته باشید که می توانید استفاده کنید#Shift#ثابت برای کد MT4 - با تغییر واقعی بلوک ساختمان در طول تولید کد جایگزین می شود.
Shift در MetaTrader5 به روشی متفاوت استفاده می شود و نیازی به محاسبه ندارد.
روی OK کلیک کنید و نشانگر جدید ایجاد می شود:
هنوز نمی توان از آن استفاده کرد، زیرا این فقط یک تعریف است - ما باید داده ها را به این اندیکاتور وارد کنیم تا SQ بتواند از آن استفاده کند.
مرحله 2: دریافت مقادیر از متاتریدر
شاخص های سفارشی به گونه ای کار می کنند که استراتژی از مقادیر خود را که در برنامه دیگری محاسبه شده است ، به عنوان مثال در Metatrader استفاده می کند. این بدان معنی است که ما باید شاخص را در Metatrader محاسبه کنیم و سپس مقدار (های) آن را به SQ وارد کنیم.
این کمی پیچیده است ، اما از طرف دیگر به ما این امکان را می دهد تا تقریباً از هر شاخصی موجود برای Metatrader استفاده کنیم ، حتی اگر نمی دانیم دقیقاً چگونه محاسبه می شود.
برای محاسبه مقادیر شاخص ، ما از EA ساده به نام SQIndicatorValuesexportea استفاده خواهیم کرد.
این EA سفارشی از StrategyQuant است که می تواند برای صادرات مقادیر شاخص از Metatrader استفاده شود. می توانید این پرونده را در پوشه Custom_indicatorsMetatrader5experts پیدا کنید
In order to use it in your MetaTrader you must copy it there. Start your MetaTrader 5, go to File ->پوشه داده را باز کنید. این پوشه داده MT5 را باز می کند. به MQL5Experts این EA را در آنجا کپی کنید.
سپس Metatrader خود را مجدداً راه اندازی کنید و EA جدید در دسترس خواهد بود.
قبل از اینکه بتوانیم از آن استفاده کنیم ، باید آن را اصلاح کنیم تا مقادیر نشانگر RVI را درست همانطور که می خواهیم صادر کند.
Open MT5 -> Tools ->ویرایشگر زبان Metaquotes را پیدا کرده و این EA جدید را از پوشه متخصصان پیدا کرده و باز کنید.
استفاده از کد نسبتاً ساده است ، شما باید در چند مکان تغییراتی ایجاد کنید:
- در OnInit باید نام پرونده صادرات و کد ICUSTOM را مشخص کنید:
- در ONTICK باید به روز کنید که کدام مقادیر (خطوط نشانگر) محاسبه و صادر می شود:
اگر نشانگر چندین خط دارد ، مانند در مورد RVI ، باید خطوط را تکرار کنید:
جایی که شماره تعدادی از خط از 0 شروع می شود و Buffer_Name نام آرایه بافر است. در ابتدای پرونده دو آرایه بافر وجود دارد:
اگر نشانگر بیش از دو خط داشته باشد می توانید بیشتر اضافه کنید.
- در ادامه در ONTICK باید کدام روش FileWrite را به روز کنید و بافر را اضافه کنید تا به انتها صادر شود:
این همه چیز است ، اکنون می توانید EA را کامپایل کنید ، آماده استفاده است.
اجرای EA صادرات در Metatrader
هنگامی که پرونده sqindicatorvaluesexportea بدون مشکل اصلاح و گردآوری می شود ، می توانیم آن را برای صادرات مقادیر اجرا کنیم.
به تستر استراتژی MT5 بروید ، این متخصص را انتخاب کنید و نماد و بازه زمانی را که می خواهید داده های شاخص را صادر کنید انتخاب کنید.
شما باید نماد و بازه زمانی را انتخاب کنید که نشانگر باید محاسبه شود ، و همچنین محدوده تاریخ مناسب.
سپس Start را فشار داده و صبر کنید تا صادرات به پایان برسد.
پس از اتمام تست EA ، پرونده صادرات باید در پوشه داده MT5 در دسترس باشد ، اما یک ترفند وجود دارد. پرونده تولید شده در پوشه ترمینال شما نیست ، بلکه در پوشه تستر است.
هنگامی که پوشه داده را از MT5 باز می کنید ، پوشه ترمینال خود را به شما نشان می دهد:
اما فایل موجود نیست. شما باید به Tester بروید و در آنجا به Agent/MQL5/Files آزمایشی خود بروید تا فایل صادر شده را پیدا کنید:
اکنون میتوانید وقتی فایل را پیدا کردید، آن را در مقصدی راحتتر کپی و جایگذاری کنید.
مرحله 3: مقادیر شاخص را به StrategyQuant وارد کنید
هنگامی که داده های اندیکاتور را آماده کردیم، می توانیم آنها را به اندیکاتور سفارشی خود در StrategyQuant وارد کنیم.
Go to Data manager ->برگه نشانگرهای خارجی، نشانگر جدید خود را انتخاب کرده و روی Import indicator data کلیک کنید.
در آنجا فایل را پیدا کنید و ستون های واردات را مشخص کنید.
اگر EA را مرور کنید، دادههای نشانگر به عنوان دو مقدار آخر صادر شدهاند:
بنابراین دو ستون آخر را به عنوان Value1 و Value2 انتخاب کنید.
روی Start import کلیک کنید و نشانگر باید با موفقیت وارد شود.
اکنون نشانگر برای استفاده در SQ آماده است.
مرحله 4: استفاده از نشانگر خارجی
When he indicator is successfully imported it can be used like any other building block. Go to Builder -> Settings ->بلوک های ساختمانی و شما باید نشانگر RVI جدید ما را در آنجا ببینید:
If you don’t see it, please check if you have the correct timeframe in Settings ->داده ها .
به یاد داشته باشید، داده های شاخص همیشه برای یک بازه زمانی خاص محاسبه می شوند و نمی توان آنها را در بازه زمانی دیگری استفاده کرد. اگر بازه زمانی را به عنوان مثال به M30 تغییر دهید، فقط نشانگرهای خارجی را خواهید دید که برای داده های M30 وارد شده اند.
وقتی بلوک های ساختمان را پیکربندی کنیم، می توانیم ساخت را شروع کنیم.
پس از مدتی، بانک اطلاعات را با استراتژی های جدیدی پر می کند که از شاخص خارجی جدید ما استفاده می کنند.
وقتی استراتژی را باز می کنیم، می توانیم کد شبه را بررسی کنیم:
میتوانیم ببینیم که این استراتژی، شاخصهای RVI_EURUSD_H1 ما را مقایسه میکند.
هنگامی که کد منبع را به متاتریدر 5 تغییر می دهیم، کد MT5 معتبری تولید می کند که می تواند در MT5 کامپایل و اجرا شود:
همچنین می توانید ویدیوی گام به گام را بررسی کنید که در آن برنامه نویس ارشد ما نحوه کدنویسی نشانگر سفارشی شما را نشان می دهد. لینک ویدیو: https://www. youtube. com/watch? v=veiqIh0BS10& t=26s& ab_channel=StrategyQuant
مقادیر شاخص (خطوط): بد توضیح داده شده است. برای TradeStation چطور؟چگونه از نام استفاده می شود؟چه مقادیری باید در قسمت "Code" برای TradeStation قرار گیرد؟
محصولات
منابع
شرکت
ما را دنبال کنید
افشای ریسک: معاملات آتی و فارکس حاوی ریسک قابل توجهی است و برای هر سرمایهگذاری مناسب نیست. یک سرمایه گذار به طور بالقوه می تواند تمام یا بیشتر از سرمایه گذاری اولیه را از دست بدهد. سرمایه ریسک پولی است که می تواند بدون به خطر انداختن امنیت مالی یا سبک زندگی افراد از دست برود. فقط باید از سرمایه ریسک برای معاملات استفاده کرد و فقط کسانی که سرمایه ریسک کافی دارند باید معامله را در نظر بگیرند. عملکرد گذشته است لزوما نشان دهنده نتایج آینده نیست.
افشای عملکرد فرضی: نتایج عملکرد فرضی محدودیت های ذاتی بسیاری دارد که برخی از آنها در زیر شرح داده شده است. هیچ نمایندگی ای ارائه نمی شود که هر حساب کاربری یا احتمالاً به سود یا ضرر مشابه با موارد نشان داده شده دست یابد. در حقیقت ، بین نتایج عملکرد فرضی و نتایج واقعی متعاقباً توسط هر برنامه معاملاتی خاص حاصل می شود. یکی از محدودیت های نتایج عملکرد فرضی این است که آنها به طور کلی با بهره مندی از عقب آماده سازی می شوند. علاوه بر این ، معاملات فرضی شامل ریسک مالی نیست و هیچ سابقه معاملات فرضی نمی تواند به طور کامل تأثیر ریسک مالی تجارت واقعی را به خود اختصاص دهد. به عنوان مثال ، توانایی مقاومت در برابر ضررها یا رعایت یک برنامه تجاری خاص علیرغم ضرر معاملات ، نقاط مادی است که می تواند بر نتایج واقعی معاملات تأثیر منفی بگذارد. بسیاری از عوامل دیگر در رابطه با بازارها به طور کلی یا اجرای هر برنامه تجاری خاص وجود دارد که در تهیه نتایج عملکرد فرضی و همه آنها می توانند بر نتایج تجارت تأثیر بگذارند.