void OnStart()
{
ulong deal_ticket; // тикет сделки
ulong order_ticket; // тикет ордера,по которому была совершена сделка
datetime transaction_time; // время совершения сделки
long deal_type ; // тип торговой операции
long position_ID; // идентификатор позиции
string deal_description; // описание операции
double volume; // объем операции
string symbol; // по какому символу была сделка
//--- установим начальную и конечную дату для запроса истории сделок
datetime from_date=0; // с самого начала
datetime to_date=TimeCurrent();// по текущий момент
//--- запросим историрю сделок в указанном интервале
HistorySelect(from_date,to_date);
//--- общее количество в списке сделок
int deals=HistoryDealsTotal();
//--- теперь обработаем каждую сделку
for(int i=0;i<deals;i++)
{
deal_ticket= HistoryDealGetTicket(i);
volume= HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
transaction_time=(datetime)HistoryDealGetInteger(deal_ticket,DEAL_TIME);
order_ticket= HistoryDealGetInteger(deal_ticket,DEAL_ORDER);
deal_type= HistoryDealGetInteger(deal_ticket,DEAL_TYPE);
symbol= HistoryDealGetString(deal_ticket,DEAL_SYMBOL);
position_ID= HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID);
deal_description= GetDealDescription(deal_type,volume,symbol,order_ticket,position_ID);
//--- сделаем красивое форматирование для номера сделки
string print_index=StringFormat("% 3d",i);
//--- выведем информацию по сделке
Print(print_index+": deal #",deal_ticket," at ",transaction_time,deal_description);
}
}
//+------------------------------------------------------------------+
//| возвращает строковое описание операции |
//+------------------------------------------------------------------+
string GetDealDescription(long deal_type,double volume,string symbol,long ticket,long pos_ID)
{
string descr;
//---
switch(deal_type)
{
case DEAL_TYPE_BALANCE: return ("balance");
case DEAL_TYPE_CREDIT: return ("credit");
case DEAL_TYPE_CHARGE: return ("charge");
case DEAL_TYPE_CORRECTION: return ("correction");
case DEAL_TYPE_BUY: descr="buy"; break;
case DEAL_TYPE_SELL: descr="sell"; break;
}
descr=StringFormat("%s %G %s (order #%d, position ID %d)",
descr, // текущее описание
volume, // объем сделки
symbol, // инструмент сделки
ticket, // тикет ордера,вызвавшего сделку
pos_ID // ID позиции, в которой участвовала сделка
);
return(descr);
//---
}