جلسه بیست و دوم- delete کردن پوزیشن pending با حلقه for

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

نکته : اگر نیاز داشته باشیم که زمانی که اسکریپت را روی چارت قرار می دهیم تمام پوزیشن هایی که از نوع pending هستند به صورت یکجا delete  شوند از حلقه for  استفاده می کنیم .

وقتی از حلقه for  استفاده می کنیم، یکی یکی نوع پوزیشن های موجود را چک کرده و اگر از نوع pending بود delete  خواهند شد. به عنوان مثال :

for(int i=0;  i < OrdersTotal() ;i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
  If (OrderType()  > 1 )
  int ticket = OrderTicket();
  if( OrderDelete(ticket))   i--;
  else Print(GetLastError()) ;
}}

نکته : اگر نیاز داشته باشیم که نماد مورد نظر را هم چک کنیم یعنی همه یorder  های pending  که روی نمادی که اسکریپت را روی آن قرار می دهیم حذف شود به صورت زیر عمل میکنیم:

for(int i=0;  i < OrdersTotal() ;i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
  If (OrderType() > 1 && OrderSymbol() == _Symbol)
  int ticket = OrderTicket();
  if( OrderDelete(ticket))   i--;
  else Print(GetLastError());
}}

نکته : اگر خروجی تابع OrderType بیشتر از یک باشد بدین معنی است که نوع پوزیشن، pending می باشد .

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

You have to agree to the comment policy.