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

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

نکته : در جلسه قبلی مقدار swapshort و swaplong را توسط تابع ()MarketInfo دریافت کردیم و لازم به ذکر است که الزاما مقداری که برای swapshort  و swaplong برگردانده می شود بر حسب دلار نیست و ممکن است بر حسب points و یا margin currency باشد.

MODE_SWAPTYPE : این آرگمان مشخص می کند که نوع swapshort   و swaplong برای جفت ارز مورد نظر بر حسب دلار است یا  points  و یا margin currency؟

int  swaptype = MarketInfo ("EURUSD", MODE_SWAPTYPE);

MODE_PROFITCALCMODE :  مود محاسبه ی profit توسط این آرگمان بدست می آید . این mode می تواند Forex یا CFD یا  Futures  باشد.

string profit_calcmode = MarketInfo ("EURUSD", MODE_PROFITCALCMODE);

MODE_MARGINCALCMODE : مود محاسبه ی margin توسط این آرگمان بدست می آید. این mode می تواند Forex یا CFD یا  Futures یا CFD for indices باشد.

string  margin_calcmode = MarketInfo ("EURUSD", MODE_MARGINCALCMODE);

MODE_MARGININIT :  مقدار margin مورد نیاز برای باز کردن 1 lot می باشد. در برخی مواقع مقدار صفر بر می گرداند و بستگی دارد به اینکه در سرور بروکر ست شده باشد یا خیر؟

int  init_margin = MarketInfo ("EURUSD", MODE_MARGININIT);

MODE_MARGINMAINTENANCE :  مقدار margin  مورد نیاز برای نگه داشتن 1 lot پوزیشن باز می باشد. یعنی مقدار margin  که نیاز داریم تا پوزیشن باز با حجم 1 lot داشته باشیم را در اختیار ما قرار می دهد .

int  margin_maintain = MarketInfo ("EURUSD", MODE_MARGINMAINTENANCE);

MODE_MARGINHEDGED : برای اینکه بدانیم اگر بخواهیم hedge کنیم، برای پوزیشن با حجم 1 lot  چقدر margin   نیاز داریم از این آرگمان استفاده می کنیم .

double  margin_hedge = MarketInfo ("EURUSD", MODE_MARGINHEDGED);

MODE_MARGINREQUIRED : مقدار free margin  مورد نیاز برای باز کردن 1 lot  پوزیشن خرید را در اختیار ما قرار می دهد.

double  free_margin = MarketInfo ("EURUSD", MODE_ MARGINREQUIRED);

MODE_FREEZELEVEL : گاهی اوقات قیمت جاری مارکت به  stoploss  و یا Takeprofit نزدیک می شود و ما نیاز داریم که مقدار stoploss  یا Takeprofit را تغییر بدهیم ولی این امکان فراهم نیست و حتی نمی توانیم پوزیشن را close کنیم ، در این حالت پوزیشن freeze شده است. در این مواقع برای اینکه بتوانیم مقدار freezelevel  را که بر حسب point می باشد بدست بیاوریم از این آرگمان در تابع ()MarketInfo استفاده می کنیم.

double  freeze_level = MarketInfo ("EURUSD", MODE_FREEZELEVEL);

MODE_CLOSEBY_ALLOWED : زمانی که نیاز داریم hedge  انجام بدیم (پوزیشن خرید و فروش را با هم باز کنیم) می توانیم هر دو پوزیشن را با هم close کنیم و فقط اسپرد یکی از آنها را پرداخت کنیم. برای انجام این کار از تابع ()OrderCloseBy استفاده می کنیم. برای اینکه چک کنیم قابلیت OrderCloseBy در نماد مورد نظر ما وجود دارد یا خیر،  از آرگمان MODE_CLOSEBY_ALLOWED استفاده می کنیم .

double  closedby_allowed = MarketInfo ("EURUSD", MODE_CLOSEBY_ALLOWED);

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

You have to agree to the comment policy.