void OnStart()
{
datetime from=0;
datetime to=TimeCurrent();
//--- запросить всю историю
HistorySelect(from,to);
//--- переменные для получения значений из свойств ордера
ulong ticket;
double open_price;
double initial_volume;
datetime time_setup;
string symbol;
string type;
long order_magic;
long positionID;
//--- количество текущих отложенных ордеров
uint total=OrdersTotal();
//--- пройдем в цикле по всем ордерам
for(uint i=0;i<total;i++)
{
//--- получим тикет ордера по его позиции в списке
if((ticket=OrderGetTicket(i))>0)
{
//--- получим свойства ордера
open_price= OrderGetDouble(ORDER_PRICE_OPEN);
time_setup= OrderGetInteger(ORDER_TIME_SETUP);
symbol=OrderGetString(ORDER_SYMBOL);
order_magic= OrderGetInteger(ORDER_MAGIC);
positionID = OrderGetInteger(ORDER_POSITION_ID);
initial_volume=OrderGetDouble(ORDER_VOLUME_INITIAL);
type=GetOrderType(OrderGetInteger(ORDER_TYPE));
//--- подготовим и выведм информацию об ордере
printf("#ticket %d %s %G %s at %G was set up at %s",
ticket, // тикет ордера
type, // тип
initial_volume, // выставленный объем
symbol, // символ, по которому выставили
open_price, // указанная цена открытия
TimeToString(time_setup)// время установки ордера
);
}
}
//---
}
//+------------------------------------------------------------------+
//| возвращает строковое наименование типа ордера |
//+------------------------------------------------------------------+
string GetOrderType(long type)
{
string str_type="unknown operation";
switch(type)
{
case (ORDER_TYPE_BUY): return("buy");
case (ORDER_TYPE_SELL): return("sell");
case (ORDER_TYPE_BUY_LIMIT): return("buy limit");
case (ORDER_TYPE_SELL_LIMIT): return("sell limit");
case (ORDER_TYPE_BUY_STOP): return("buy stop");
case (ORDER_TYPE_SELL_STOP): return("sell stop");
case (ORDER_TYPE_BUY_STOP_LIMIT): return("buy stop limit");
case (ORDER_TYPE_SELL_STOP_LIMIT):return("sell stop limit");
}