جلسه یازدهم – تابع MarketInfo (بخش دوم)

در جلسه یازدهم از آموزش دوره اسکریپت نویسی،  با آرگمان های دیگری از تابع ()MarketInfo در زبان برنامه نویسی MQL آشنا خواهید شد.

تابع ()MarketInfo : این تابع داده های تمامی نمادهایی که در پنجره  Market Watch لیست شده اند را بر می گرداند و خروجی این تابع از نوع double  می باشد. در صورتی که نیاز داشته باشیم داده های جفت ارزی غیر از جفت ارز جاری را دریافت کنیم از این تابع استفاده می کنیم .

برای بدست آوردن stoplevel  (حداقل فاصله ی stoploss  و takeprofit با قیمت باز شدن پوزیشن) از تابع ()MarketInfo  استفاده می کنیم . گاهی مواقع مقدار stoplevel صفر می باشد که دو مفهموم می تواند داشته باشد :

  1. هیچ محدودیتی برای میزان stoplevel در نظر گرفته نشده است . یعنی میتوانیم حتی 1point به عنوان مقدار stoplevel یا takeprofit تعیین کنیم و هیچ محدودیتی برای این مقدار وجود ندارد .
  2. سرور بروکری که روی آن پوزیشن باز می کنیم به صورت داینامیک مکانیزمی برای فاصله ی stoplevel   یا takeprofit  در نظر گرفته است ،  در این حالت می توان مقدار تابع ()GetLastErr را چک کرد که اگر برابر با 130 باشد  یعنی سرور بروکر یک مکانیزم شناور برای stoplevel در نظر گرفته است و ممکن است در شرایط مختلف این مقدار متفاوت باشد.

MODE_STOPLEVEL : برای دریافت stoplevel   از این آرگمان استفاده می کنیم .به عنوان مثال :


int stoplevel = MarketInfo ("EURUSD", MODE_STOPLEVEL);

MODE_LOTSIZE : برای دریافت lotsize (هر lotsize برای جفت ارز مورد نظر چند دلار در نظر گرفته شده است) از این آرگمان استفاده می کنیم. به عنوان مثال :


int lotsize = MarketInfo ("EURUSD", MODE_LOTSIZE);

MODE_TICKVALUE :  برای دریافت tickvalue (ارزش هر point یا هر تیک چند دلار می باشد)  از این آرگمان استفاده می کنیم. به عنوان مثال :

int  tickvalue = MarketInfo ( "EURUSD", MODE_TICKVALUE);

MODE_TICKSIZE :  برای دریافت ticksize (کوچکترین گام حرکتی) از این آرگمان استفاده می کنیم .به عنوان مثال :

int  ticksize = MarketInfo ("EURUSD", MODE_TICKSIZE);

MODE_SWAPLONG  :  نرخ بهره ی شبانه را در پوزیشن buy بر می گرداند و نشان دهنده این است که اگر پوزیشن به مدت یک شبانه روز باز باشد نرخ بهره شبانه از آن کم شود و یا اینکه به بالانس اضافه شود. برای بدست آوردن swaplong توسط تابع ()MarketInfo  از این آرگمان استفاده می کنیم .به عنوان مثال :

int  swaplong   = MarketInfo ("EURUSD", MODE_SWAPLONG);

MODE_SWAPSHORT  : نرخ بهره ی شبانه را در پوزیشن sell بر می گرداند.  برای بدست آوردن swapshort  از این آرگمان استفاده می کنیم .به عنوان مثال :

int  swapshort = MarketInfo ("EURUSD", MODE_SWAPSHORT)

MODE_TRADEALLOWED : نمایانگر این است که آیا در حال حاضر اجازه ترید روی نماد داریم یا خیر؟ (ممکن است برای برخی نمادهای CFD یا فلزات در آن لحظه اجازه ترید روی آن نماد را نداشته باشیم) و اگر خروجی تابع ()MarketInfo   صفر باشد نشان دهنده این است که اجازه ترید نداریم و اگر خروجی برابر با یک بود یعنی اجازه ترید روی آن نماد را داریم.

bool tradeallowed = MarketInfo ("EURUSD", MODE_TRADEALLOWED);

MODE_MINLOT : حداقل مقدار lotsize  که اجازه داریم با آن مقدار، پوزیشن باز کنیم را بر می گرداند.

double minlot = MarketInfo ("EURUSD", MODE_MINLOT);

MODE_MAXLOT : حداکثر مقدار lotsize  که اجازه داریم با آن مقدار، پوزیشن باز کنیم را بر می گرداند.

double maxlot = MarketInfo ("EURUSD", MODE_MAXLOT);

MODE_LOTSTEP  : در واقع مقدار گام افزایشی یا کاهشی lotsize را بر می گرداند . برای برخی نمادها تا 0.01 می توانیم حجم lotsize را افزایش و یا کاهش بدیم  و برای برخی نمادها باید به اندازه ی 0.1 حجم نماد را افزایش و یا کاهش بدیم.

double lotstep = MarketInfo ("EURUSD", MODE_LOTSTEP );

دیدگاهتان را بنویسید

You have to agree to the comment policy.