подскажите плиз!!

 
сам я в mql не шарю вот и пришел сюда!! вопрос такой - что нужно добавить в тело советника чтоб он закрывал все открытые позиции когда общаяя прибыль со всех сделок достигла определенного значения! советник гепа 2.5!! напишите в теме или киньте ссылочку где об этом почитать! и вообще возможно ли это?????
 

возможно

только как вы вставите это в код своего советника, если не шарите в MQL.

extern double NeedProfit=100;

int start()
{
  if (CountProfit(-1, Magic, Symbol())>=NeedProfit) CloseOrders(-1, Magic, Symbol());
}



//---------------------------------------------------------------   CountProfit
double CountProfit(int dir, int SysID, string smb)
{
  int total=OrdersTotal(), i, c=0; if (total<=0) return (0);
  double prof=0;
	for(i=0;i<total;i++) 
	{ 
		if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { ErrorHandle(GetLastError(), -1, SysID, "CountProfit - SelectOrder. i="+i+"  total="+total);  return(-1); }
		if ((OrderType()==dir||dir<0) && OrderMagicNumber()==SysID && OrderSymbol()==smb) prof+=OrderProfit();
	}
	return (prof);
}
//---------------------------------------------------------------   CloseOrders
bool CloseOrders(int dir, int SysID, string smb)
{
  // Функция закрытия ордеров
	int i, total = OrdersTotal();	if (total<=0) return(true);
	int ticket[1000], nt=0; double op;

	nt=0;
	for (i=0; i<total; i++)	
	{	
		if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { ErrorHandle(GetLastError(), -1, SysID, "CloseOrders - SelectOrder. i="+i+"  total="+total);  return(-1); }		
		if ((OrderType()==dir||dir<0) && (OrderMagicNumber()==SysID) && (OrderSymbol()==smb))
		{ ticket[nt]=OrderTicket(); nt++; }
	}
	for (i=0; i<nt; i++)
	{	
		OrderSelect(ticket[i], SELECT_BY_TICKET);	
		RefreshParam(OrderSymbol());
		if (OrderType()==OP_BUY) if (!OrderClose(ticket[i], OrderLots(), _Bid, Slip)) { ErrorHandle(GetLastError(), ticket[i], SysID, "OrderClose"); return(false); }
		if (OrderType()==OP_SELL) if (!OrderClose(ticket[i], OrderLots(), _Ask, Slip)) { ErrorHandle(GetLastError(), ticket[i], SysID, "OrderClose"); return(false); }
		if (OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP)
			if (!OrderDelete(ticket[i])) { ErrorHandle(GetLastError(), ticket[i], SysID, "OrderDelete tick="+OrderTicket()); return(false); }
	}
	return(true);
}
 
sergeev >>:

возможно

только как вы вставите это в код своего советника, если не шарите в MQL.

как как, Вас попросит, бесплатно!!! ))

 
molodoy88 >>:
сам я в mql не шарю вот и пришел сюда!! вопрос такой - что нужно добавить в тело советника чтоб он закрывал все открытые позиции когда общаяя прибыль со всех сделок достигла определенного значения! советник гепа 2.5!! напишите в теме или киньте ссылочку где об этом почитать! и вообще возможно ли это?????


Читай: учебник по MQL4 (разделы: создание обычной программы-торговые функции ( если выполняется условие достижения прибыли, то запускается на исполнение ф-ия Close_All(). Читай, интересуйся...
Причина обращения: