Пожалуйста замените 1 код на другой

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
vebster005
463
vebster005  

Здравствуйте, хочу сделать кнопку при нажатии на которую будет показываться и скрываться история сделок

Ниже код рабочий, на при нажатии на кнопку P у меня показываются сделки, но при повторном нажатии эта история не удаляется,
а точнее удаляется но если вручную вписать название хотя бы 1 из стрелок сделок(на покупку или продажу) в колонку: 

if(ObjectFind(0,"sh569296869 selllimit 0.03 GBPUSD at 1.3561")>=0)

тобишь, как я понял название хоть 1 из стрелок нужно брать от сюда:

    for(int ihist=ObjectsTotal()-1; ihist>=0; ihist--)
     {
      if(StringFind(ObjectName(ihist),"sh",0)>=0) ObjectDelete(ObjectName(ihist));
     }

и у меня не получается код, который выше, заменить на sh569296869 selllimit 0.03 GBPUSD at 1.3561

появляются ошибки, 

ниже код почти весь, но его даже можете не смотреть, не знаю нужен он или нет. Спасибо, за то что дочитали до сюда

     if(lparam==(StringGetChar(Knopka_P,0)))
     {
      if(ObjectFind(0,"sh569296869 selllimit 0.03 GBPUSD at 1.3561")>=0)
        {             
 
    for(int ihist=ObjectsTotal()-1; ihist>=0; ihist--)
     {
      if(StringFind(ObjectName(ihist),"sh",0)>=0) ObjectDelete(ObjectName(ihist));
     }
 
        }
      else
        {  

//--- История ордеров
  int ihist=0;
  
   string name;  // Имя объекта-стрелки
   int Arrow;    // Код стрелки 
   double Color; // Цвет стрелки

      //  Проверка для всех открытых и отложенных ордеров    
      for(ihist=0; ihist<OrdersTotal(); ihist++)
        {
         bool s=OrderSelect(ihist,SELECT_BY_POS);
         // Символы ордера и графика не совпадают
         if(OrderSymbol()!=Symbol())
            continue;        // Следующий ордер
         switch(OrderType()) // Параметры стрелок
           {
            case OP_BUY:       Arrow=1; Color=ihistbuy;
            name="sh"+OrderTicket()+" buy "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_SELL:      Arrow=2; Color=ihistsell;
            name="sh"+OrderTicket()+" sell "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_BUYLIMIT:  Arrow=1; Color=ihistbuylimit;
            name="sh"+OrderTicket()+" buylimit "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_BUYSTOP:   Arrow=1; Color=ihistbuystop;
            name="sh"+OrderTicket()+" buystop "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_SELLLIMIT: Arrow=2; Color=ihistselllimit;
            name="sh"+OrderTicket()+" selllimit "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_SELLSTOP:  Arrow=2; Color=ihistsellstop;
            name="sh"+OrderTicket()+" sellstop "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
           }
         // Стрелка открытия ордера
         ObjectCreate(name,OBJ_ARROW,0,OrderOpenTime(),OrderOpenPrice());
         ObjectSet(name,OBJPROP_ARROWCODE,Arrow);
         ObjectSet(name,OBJPROP_COLOR,Color);
        }
      //  Проверка для всех закрытых и удалённых ордеров
      for(ihist=0; ihist<HistoryTotal(); ihist++)
        {
         bool s=OrderSelect(ihist,SELECT_BY_POS,MODE_HISTORY);
         // Символы ордера и графика не совпадают
         if(OrderSymbol()!=Symbol())
            continue;   // Следующий ордер
         switch(OrderType())
           {
            case OP_BUY:       Arrow=1; Color=ihistbuy;
            name="sh"+OrderTicket()+" buy "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_SELL:      Arrow=2; Color=ihistsell;
            name="sh"+OrderTicket()+" sell "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_BUYLIMIT:  Arrow=1; Color=ihistbuylimit;
            name="sh"+OrderTicket()+" buylimit "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_BUYSTOP:   Arrow=1; Color=ihistbuystop;
            name="sh"+OrderTicket()+" buystop "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_SELLLIMIT: Arrow=2; Color=ihistselllimit;
            name="sh"+OrderTicket()+" selllimit "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_SELLSTOP:  Arrow=2; Color=ihistsellstop;
            name="sh"+OrderTicket()+" sellstop "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
           }
         // Стрелка открытия ордера
         ObjectCreate(name,OBJ_ARROW,0,OrderOpenTime(),OrderOpenPrice());
         ObjectSet(name,OBJPROP_ARROWCODE,Arrow);
         ObjectSet(name,OBJPROP_COLOR,Color);
         switch(OrderType())
           {
            case OP_BUY:       Arrow=1; Color=ihistbuy;
            name="sh"+OrderTicket()+" buy  "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_SELL:      Arrow=2; Color=ihistsell;
            name="sh"+OrderTicket()+" sell  "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_BUYLIMIT:  Arrow=1; Color=ihistbuylimit;
            name="sh"+OrderTicket()+" buylimit  "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_BUYSTOP:   Arrow=1; Color=ihistbuystop;
            name="sh"+OrderTicket()+" buystop  "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
            case OP_SELLLIMIT: Arrow=2; Color=ihistselllimit;
            name="sh"+OrderTicket()+" selllimit  "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS)); break;
                 case OP_SELLSTOP:  Arrow=2; Color=ihistsellstop;
            name="sh"+OrderTicket()+" sellstop  "+
                 DoubleToStr(OrderLots(),2)+" "+
                 OrderSymbol()+" at "+
                 DoubleToStr(OrderOpenPrice(),
                 MarketInfo(OrderSymbol(),MODE_DIGITS));
                 break;
           }
         // Стрелка закрытия ордера
         ObjectCreate(name,OBJ_ARROW,0,OrderCloseTime(),OrderClosePrice());
         ObjectSet(name,OBJPROP_ARROWCODE,3);
         ObjectSet(name,OBJPROP_COLOR,Color);
         // Прорисовка линий закрытых позиций
         name="sh"+OrderTicket()+DoubleToStr(OrderOpenPrice(),MarketInfo(OrderSymbol(),
                               MODE_DIGITS))+"->"+DoubleToStr(OrderClosePrice(),
                               MarketInfo(OrderSymbol(),MODE_DIGITS));
         ObjectCreate(name,OBJ_TREND,0,OrderOpenTime(),OrderOpenPrice(),
                      OrderCloseTime(),OrderClosePrice());
         ObjectSet(name,OBJPROP_STYLE,STYLE_DOT);
         ObjectSet(name,OBJPROP_WIDTH,1);
         ObjectSet(name,OBJPROP_RAY,false);
         ObjectSet(name,OBJPROP_COLOR,Color);
        }
//--- История ордеров
      
        }
     }
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий