Скачать MetaTrader 5

Как правильно визуально отобразить ордера из истории

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Андрей
492
Андрей 2010.07.18 20:03 

Добрый день! Недостаток визуализации требует решение следующей задачи: отобразить сделки из истории

Не совсем что-то корректно у меня работает

//+------------------------------------------------------------------+
//|                                                visualization.mq5 |
//|                        Copyright 2010, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   ObjectsDeleteAll(0,0,-1);

   color BuyColor =Blue;
   color SellColor=Red;
//--- request trade history
   HistorySelect(0,TimeCurrent());
//--- create objects
   string   nameS,nameB;
   uint     total=HistoryDealsTotal();
   ulong    ticket=0;
   double   price;
   double   profit;
   datetime time;
   string   symbol;
   long     type;
   long     entry;

   datetime timeOS,timeOB;
   double   priceOS,priceOB;

//--- for all deals
   for(uint i=0;i<total;i++)
     {
      //--- try to get deals ticket
      if(ticket=HistoryDealGetTicket(i))
        {
         //--- get deals properties
         price =HistoryDealGetDouble(ticket,DEAL_PRICE);
         time  =HistoryDealGetInteger(ticket,DEAL_TIME);
         symbol=HistoryDealGetString(ticket,DEAL_SYMBOL);
         type  =HistoryDealGetInteger(ticket,DEAL_TYPE);
         entry =HistoryDealGetInteger(ticket,DEAL_ENTRY);
         profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
         //--- only for current symbol
         if(price && time && symbol==Symbol())
           {
            //--- create price object
            nameS="S"+string(ticket);
            nameB="B"+string(ticket);

            if(type==DEAL_TYPE_SELL && entry==DEAL_ENTRY_IN)
              {
               timeOS=time;
               priceOS=price;
              }

            if(type==DEAL_TYPE_BUY && (entry==DEAL_ENTRY_OUT || entry==DEAL_ENTRY_INOUT))
              {
               ObjectCreate(0,nameS,OBJ_TREND,0,timeOS,priceOS,time,price);
               ObjectSetInteger(0,nameS,OBJPROP_COLOR,Red);
               ObjectSetInteger(0,nameS,OBJPROP_WIDTH,1);
               ObjectSetInteger(0,nameS,OBJPROP_STYLE,STYLE_DOT);
              }
            //

            if(type==DEAL_TYPE_BUY && entry==DEAL_ENTRY_IN)
              {
               timeOB=time;
               priceOB=price;
              }

            if(type==DEAL_TYPE_SELL && (entry==DEAL_ENTRY_OUT || entry==DEAL_ENTRY_INOUT))
              {
               ObjectCreate(0,nameB,OBJ_TREND,0,timeOB,priceOB,time,price);
               ObjectSetInteger(0,nameB,OBJPROP_COLOR,Blue);
               ObjectSetInteger(0,nameB,OBJPROP_WIDTH,1);
               ObjectSetInteger(0,nameB,OBJPROP_STYLE,STYLE_DOT);
              }

           }
        }
     }
//--- apply on chart
   ChartRedraw();

  }
//+------------------------------------------------------------------+
Подскажите как правильно ?


Валерий
1433
Валерий 2010.07.21 13:21  
snik_666:

Добрый день! Недостаток визуализации требует решение следующей задачи: отобразить сделки из истории

Не совсем что-то корректно у меня работает

Подскажите как правильно ?


Я для себя написал вот такой:
Файлы:
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий