برای اینکه یک اکسپرت خوب بنویسیم گاهی لازم است تعداد پوزیشنهای گرفته شده را شمارشش را داشته باشیم و بر اساس تعداد پوزیشنهای موجود، دستورات یا شرطهای خاصی را بنویسیم..
1.تابع شمارش پوزیشن
برای اینکه بتوانیم پوزیشنها را بشماریم باید از تابع زیر استفاده کنیم.
//+------------------------------------------------------------------+
//| شمارش پوزیشنها |
//+------------------------------------------------------------------+
int posnum(long Magic)
{
int pos=PositionsTotal();
int num=0;
for(int i=pos-1; i>=0; i--)
{
ulong tiket=PositionGetTicket(i);
string symbol=PositionGetString(POSITION_SYMBOL);
long Macik=PositionGetInteger(POSITION_MAGIC);
double volume=PositionGetDouble(POSITION_VOLUME);
if(symbol==_Symbol)
{
if(Macik==Magic)
num++;
}
}
return(num);
}
2. فراخوانی تابع شمارش پوزیشن
معمولا از این تابع در شرطها استفاده میکنند. مثلا میتوانیم بگوییم که اگر تعداد پوزیشنها کمتر از 4 بود برای ما ترید انجام بده.(یعنی اگر تعداد پوزیشنها بیشتر از ۴ بود تریدی انجام نمیشود.)
if(posnum(0) < 4 )
{
Comment("trade");
}
نکته: در کد بالا شماره مجیک را صفر گذاشتیم شما میتوانید شماره مجیک خودتان را بگذارید.
و دستور شرط را ما فقط کامنت کردیم که نشان بدهیم شرط اجرا میشود. و شما میتوانید دستورات مخصوص خودتان را بگذارید.
بدون دیدگاه