جلسه بیست و یکم – delete کردن پوزیشن pending

در جلسه بیست و یکم از آموزش دوره اسکریپت نویسی،  با نحوه delete کردن پوزیشن های pending  در زبان برنامه نویسی MQL آشنا خواهید شد.

تابع ()OrderDelete  : برای delete کردن پوزیشن های pending از این تابع استفاده می کنیم . در ادامه با آرگمان های این تابع آشنا خواهید شد .

bool  OrderDelete(
int        ticket,      // ticket
color      arrow_color  // color
);

ticket : این پارامتر مربوط به ticket number پوزیشن می باشد.

arrow_color : رنگ فلشی که پس از delete  کردن روی چارت قرار می گیرد (این پارامتر اختیاری است).

خروجی تابع ()OrderDelete : خروجی این تابع از نوع bool  می باشد و اگر این تابع موفق شود که order  مورد نظر را delete  کند خروجی تابع true  و در غیر این صورت خروجی false را بر می گرداند .

به عنوان مثال برای اینکه اولین پوزیشنی که در پول ترید قرار دارد و از نوع pending  هست را delete  کنیم، مطابق کد زیر عمل می کنیم :

If (OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
  int ticket =  OrderTicket();
  if(!OrderDelete(ticket))
  Print(GetLastError());
}

تابع ()OrderTicket : این تابع ticket number  آن order  ای که ما select کردیم را بر می گرداند و خروجی تابع از نوع int  می باشد.

تابع ()OrdersTotal : این تابع تعداد کل order ها را بر می گرداند .

نکته : اگر بخواهیم اسکریپت از جدید ترین پوزیشن  order ها را delete کند ، از تابع ()OrdersTotal استفاده می کنیم و تعداد کل order ها را دریافت می کنیم. اگر از تعداد کل order  ها یکی کم شود اندیس آخرین Order بدست می آید.  به عنوان مثال  :

if( OrderSelect(OrdersTotal()-1 ,SELECT_BY_POS,MODE_TRADES) )
{
  int ticket =  OrderTicket();
  if(!OrderDelete(ticket))
  Print(GetLastError());
}

تابع () OrderClose : برای close کردن پوزیشن ها از نوع market مورد استفاده قرار می گیرد .

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

You have to agree to the comment policy.