توابع پوزیشن گیری و مدیریت پوزیشن (بخش دوم) – درس پنجم – کتاب آموزش زبان mql (دوره متوسطه)

آموزش ام کیو ال

توابع پوزیشن گیری و مدیریت پوزیشن (بخش دوم)

درس چهارم

 

OrderModify :

برای Modify  کردن stoploss  و Takeprofit مورد استفاده قرار می گیرد . یا به تعبیر دیگر مدیریت پوزیشن هاست. که در ادامه با آرگمان های تابع آشنا خواهید شد :

توابع پوزیشن گیری

ticket : این پارامتر مقدار ticket number می باشد .
Price : این پارامتر مربوط به قیمت باز شدن پوزیشن می باشد. اگر پوزیشن از نوع pending باشد و بخواهیم قیمت باز شدن را تغییر دهیم اینجا قیمت جدید را وارد می کنیم
Stoploss: این پارامتر بر حسب قیمت می باشد و مقدار Stoploss را تعیین می کند.
Takeprofit : این پارامتر بر حسب قیمت می باشد و مقدار Takeprofit را تعیین می کند.
Expiration : این پارامتر مربوط به تاریخ انقضای order های pending می باشد.
arrow_color :  این پارامتر رنگ فلشی است که پس از باز کردن پوزیشن روی چارت قرار می گیرد.

لازم است بدانید چنانچه مقداری را نخواهید تغییر دهید باید مقدار قبلی آن را بنویسید. یکی از راه این است که زمان باز کردن پوزیشن جدید، مقدارها را در یک متغیر یا چند متغیر بنویسید. راه دیگر آن انتخاب یک پوزیشن می باشد و هرآنچه از آن مدنظر دارید را تغییر دهید. به عنوان مثال در فضای متاتریدر زیر سه پوزیشن باز شده که می توان یکی از آن ها را انتخاب نمود.

پوزیشن گیری

همچنین می توانید از پوزیشن های باز یا پوزیشن های در history استفاده کنید.

توابع پوزیشن گیری

برای انتخاب پوزیشن، شماره تیکت می باشد. برخی مواقع این شماره در دسترس نمی باشد. البته باید بدانید که شماره پوز از بالاترین ردیف از صفر شروع شده و به ترتیب پایین آمدن پوزیشن ها 1 و 2 و 3 می باشد.

آموزش اکسپرت نویسی

برای history نیز به همین ترتیب شماره گذاری می شوند. اینک به شیوه انتخاب پوزیشن چه با شماره پوز چه با شماره تیکت را توجه نمایید. برای انتخاب پوزیشن از تابع OrderSelect استفاده کنید.

 

تابع OrderSelect :

قبل از استفاده از تابع OrderOpenPrice حتما باید order ما select  شود که با استفاده از تابع OrderSelect این کار را انجام می دهیم و این تابع یکی از پر کاربرد ترین توابع در اکسپرت می باشد که در ادامه با آرگمان های تابع آشنا خواهید شد :

توابع در اکسپرت

ticket/pos: برای نوشتن شماره پوریشن  یا شماره پوز
select:  این پارامترمی تواند دو مقدار SELECT_BY_POS و یا  SELECT_BY_TICKET باشد و  بدین منظور استفاده می شود که  مشخص کنیم مقداری که در پارامتر اول وارد کرده ایم اندیس پوزیشن است و یا ticket number می باشد. چنانچه عدد ticket را بنویسید به تبع باید SELECT_BY_TICKET را وارد نمایید و اگر pos را وارد کردید باید SELECT_BY_POS را وارد کنید. به عنوان مثال:

(OrderSelect(1,SELECT_BY_POS,MODE_TRADES
(int     pool=MODE_TRADES  (MODE_TRADES  (default)/MODE_HISTORY

در ورودی سوم چنانچه ticket نوشته باشید ورودی سوم نیست. و اگر pos را نوشته باشید و وردی SELECT_BY_POS را انتخاب کرده باشید رد وردی سوم، 2 انتخاب خواهی داشت:  یا از پوزیشن های باز(MODE_TRADES) یا از پوزیشن های هیستوری(MODE_HISTORY) استفاده نمایید. در صورت وارد نکردن وردی سوم به طور پیش فرض MODE_TRADES انتخاب خواهد شد.

به معرفی دو تابع دیگر می پردازیم:

تابع پوزیشن گیری

OrdersTotal: این پوزیشن تعداد پوزیشنهای باز و پیندینگ را می دهد ، ورودی ندارد و خروجی آن از نوع int می باشد. در حقیقت این تابع هر آنچه که درون سربرگ ترید می باشد را نمایش می دهد.
OrdersHistoryTotal: این پوزیشن تعداد پوزیشن های بسته شده را نمایش می دهد، ، ورودی ندارد و خروجی آن از نوع int می باشد.
پاره ای از توابع دیگر نیز وجود دارند که بعد از تابع ORDER SELECT فراخوانی می شوند که تمامی آنها بدون ورودی هستند برای آشنایی بیشتر به جدول زیر دقت کنید.

توابع MQL

❓ مسئله شماره 8:

اکسپرتی بنویسید که جفت ارز اولین پوزیشن باز را در دستور کامنت چاپ نماید.
برای حل تمرین بالا باید ابتدا ، اولین پوزیشن که شماره پوز آن صفر می باشد را توسط تابع order select انتخاب کنید سپس با دستور comment تابع OrderSymbol را چاپ کنید. به عنوان مثال:

آموزش اکسپرت

اکسپرت نویسی

آموزش اکسپرت نویسی

می توانید بجای OrderSymbol مشخصات دیگری را کامنت کنید.

❓ مسئله شماره 9:
اکسپرتی بنویسید که پوزیشن های بای موجود در حساب را ببندد.

کتاب ام کیو ال

در پایان دستورات compile را کلیک کنید و نباید اخطاری نمایش شود.

پوزیشن در اکسپرت

همانگونه که مشاهده می کنید 6 پوزیشن باز قابل مشاهده هستند که با اجرای کلاس تمام نوع buy باید بسته شوند.

توابع MQL

نام کلاس را به داخل فضای برنامه درگ کنید تا کادر Export-class5 ظاهر شود ok را انتخاب نمایید.

buy

پوزیشن ها با اجرای دستور بسته شدند. یکی از اشتباهات رایج در کد نویسی مساوی کردن i با 0 می باشد. دلیل عملی خطابودن آن را در تصاویر زیر مشاهده کنید.
سه پوزیشن جدید تعریف کنید.

seel یا buy

اگر بخواهید کدی بنویسید و بگوییم نصف پوزیشن ها را ببندد در این حالت پوزیشن به آخر می رود و در نتیجه شماره پوز پوزیشن تغییر خواهد کرد.

تغییرات پوزیشن

مشاهده می کنید شماره پوز صفر بعد از بستن به شماره پوز 2 تغییر کرد. بنابراین بهترین روش این است که از آخر به صفر شمرده شود.

 

 

منبع : کتاب آموزش زبان MQL (دوره مقدماتی)
مدرس : استاد حسین احمدی

 

سایر مقالات مرتبط

متا تریدر چیست؟
متاتریدر

متا تریدر چیست؟

متا تریدر چیست؟ اولین سوالی که هر فرد وقتی می خواهد آموزش های متاتریدر مانند آموزش صفر تا صد mql5،

کامل ترین و بهترین آموزش متاتریدر 4
mql4

کامل ترین آموزش متاتریدر 4

بهترین آموزش متاتریدر 4 متاتریدر4 یک پلتفرم معاملاتی محسوب می‌ شود که دارای رابط کاربری ساده است و همین یادگیری

پاسخ‌ها

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. سلام من یک سوال در مورد دستور ORDER_SEND دارم.
    وقتی این دستور را اجرا می کنم هیچ اتفاقی نمی افتد و پوزیشنی هم باز نمی شود.
    لطفا راهنمایی کنید.
    ممنون

    1. بستگی داره کجای کد استفاده میکنید
      همچنین اگر انجام نشه باید در سربگر اکسپرت به شما یک خطا نمایش بده
      ویدیو مربوط به این درس رو بیبینید به احتمال زیاد متوجه مشکلتون میشید