چگونه می توان قیمت واقعی یک جفت ارز دیگر را بخوانید ، که مستقیماً در یک تستر استراتژی - برای یک استراتژی چند سطحی در دسترس نیست؟

ساخت وبلاگ

در اینترنت ، در بسیاری از تابلوها می توان خواند که استفاده از عملکرد MarketInfo () در تستر استراتژی غیرممکن است. این محدودیت سکو است. من هیچ راه حلی برای این کار پیدا نکرده ام. با این حال ، از آنجا که نیاز مادر اختراع است ، و نیاز من تصمیم گیری در مورد بازار USDJPY با EA بود که بستگی به وضعیت بازار EURUSD دارد که من این راه حل را پیدا کردم (که برای من به اندازه کافی خوب است). من از IMA () با یک دوره یک و وضوح M1 استفاده می کنم.

IMA ("EURUSD" ، PRION_M1 ، 1 ، 0 ، MODE_SMA ، PRICE_MEDIAN ، I)

سؤال این است: از آنجا که Metatrader قادر است میانگین متحرک را برای یک ارز دیگر محاسبه کند (که مطمئناً براساس قیمت واقعی این جفت است!) ، Q1: چرا نمی توان به مقدار فعلی دسترسی داشت: مستقیم؟

و یک سؤال پیگیری: Q2: آیا برای این محدودیت هیچ راه حل دیگری (دقیق تر) وجود دارد؟

دنبال کردن 10. 7K 4 4 نشان های طلا 35 35 نشان نقره 57 57 نشان برنز از 10 آوریل 2016 ساعت 9:42 پرسید کوکیس کوکیس 4،443 5 5 نشان های طلا 26 26 نشان نقره 47 47 نشان برنز

2 پاسخ 2

مرتب شده توسط: تنظیم مجدد به طور پیش فرض

دلیل: دلیل این سوال به دلیل "تیک" است. از آنجا که یک "تیک" در یک ارز به طور مستقل از "تیک" ارز دیگر اتفاق می افتد ، نمی توان به طور دقیق قیمت یک ارز دیگر را برای "کنه" فعلی یک ارز تعیین کرد. IMA با استفاده از OHLC شمع M1 محاسبه می شود ، و نه "تیک" واقعی (که همان داده های "تیک" نیست) محاسبه می شود.

Rephrase: بیایید بگوییم که ما در USDJPY هستیم و این "تیک" در ساعت 12: 00: 00. 210 اتفاق می افتد (12 شب در ساعت 210 میلی ثانیه). وقتی این "تیک" اتفاق می افتد ، رویداد شروع () شروع می شود. در این عملکرد ، ما به دنبال پیشنهاد EURUSD هستیم. با این حال ، از آن زمان هیچ "تیک" برای EURUSD وجود ندارد (USDJPY و EURUSD همزمان "تیک" نمی کنند) ، بنابراین تعیین قیمت دقیق EURUSD در هر نقطه امکان پذیر نیستزمان.

There is no workaround because it is impossible to determine the price on the "Tick" level because MQL4's datetime variable is an integer and accurate only to the seconds, and the HistoryCenter>صادرات فقط OHLC است.

IMA () شما به همان اندازه خوب است.

دنبال کردن پاسخ 11 آوریل 2016 در 21:02 jlee88my jlee88my 2،915 20 20 نشان نقره 28 28 نشان برنز

Q1: توسط Josephlee به خوبی سرو شد + یک گزینه دیگر وجود دارد (در زیر) Q2: سزاوار یک کلمه است:

بله ، یک راه حل وجود دارد.

در حالی که Metatrader Terminal 4 دارای نقاط ضعف بسیاری است ، ارزش وقت خود را برای گذراندن وقت در اینجا ندارد ، اما کارهای خوبی نیز وجود دارد که می توان با آن انجام داد.

حدود پنج سال پیش ، یک پروژه نیاز به یکپارچه سازی یک پردازش توزیع شده برای MT4 وجود داشت ، تا به آن نقاط ضعف داده شود.

این اتفاق افتادبه این ترتیب شما می توانید از یک چارچوب پردازش توزیع شده بهره مند شوید و می توانید به چند نانو ثانیه (با تأخیر) قیمت های دقیق همه ابزارها (بر اساس یک پردازش نقل قول از راه دور) به طور مستقل از LocalHost MT4. Graph _symbol خود داشته باشید.

از سؤال بیشتر دریغ نکنید و به دنیای MQL4 خوش آمدید

New- MQL4. 56789 عملکرد ایکلوز () برای چند ارزی دارد

ارزش نزدیک قیمت را برای نوار نماد مشخص شده با بازه زمانی و تغییر باز می گرداند.

ICLOSE DOUBLE (نماد رشته ، // نماد int int ، // تغییر زمان تغییر int // Shift) ؛ 

نماد [در] نام نماد. تهی به معنای نماد فعلی است.

بازه زمانی [در] بازه زمانی. این می تواند هر یک از مقادیر شمارش enum_timeframes باشد. 0 به معنای بازه زمانی نمودار فعلی است.

شاخص [در] مقدار مقدار گرفته شده از بافر شاخص (تغییر نسبت به نوار فعلی مقدار مشخص دوره های قبل).

ارزش بازگشت ارزش نزدیک قیمت برای نوار نماد مشخص شده با بازه زمانی و تغییر. اگر تاریخ محلی خالی است (بارگذاری نشده است) ، عملکرد 0 باز می گردد. برای بررسی خطاها ، باید با عملکرد GetLasterror () تماس بگیرید.

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

چاپ ("اولین تاریخ در تاریخ برای EURUSD در [MT4Server] =" ، (DateTime) SeriesInFointeger ("EurusD" ، 0 ، Series_Server_FirstDate)) ؛ 

به طور مشابه نیاز به ارائه برخی از اقدامات برای مواردی که در بالا ذکر شده در بالا مورد نیاز ERR_HISTORY_WILL_UPDATED ظاهر می شود در حالی که سرور از راه دور آنلاین نیست / بازار بسته است err_market_closed / تاریخ درخواست شده قبل از series_server_firstdate و غیره است.

در یک مورد گوشه ، همیشه امکان ایجاد یک مجموعه ویژه با به روزرسانی گام به گام هر دو CCY_PAIR محلی و یک remote_ccy_pair کاملاً مستقل از وضعیت تجهیزات طرف کارگزار وجود دارد.

همه اینها جنبه های مهم این ویژگی جدید MQL4 است.

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

برچسب : نویسنده : مرجان شیرمحمدی بازدید : 111 تاريخ : سه شنبه 17 مرداد 1402 ساعت: 13:52