Como mostrar o tipo de pedido (Sell/Buy) na tabela? - página 3

 
pro_:

Se funcionar para você - tudo bem. Fico feliz. Mas minha opinião é que qualquer indicador deve ser o mais universal possível, e não bom apenas para alguma situação específica. Você o faz uma vez, mas faça-o corretamente, para que se você precisar mudar alguma coisa ou situação mude em termos de suas posições, ele funcione corretamente.

De qualquer forma, você é bem-vindo.

Não vai funcionar, você cria o Objeto e depois tenta criá-lo novamente no próximo tick, isto vai falhar . . então se a primeira ordem for uma compra e a segunda uma venda, o texto não será atualizado da compra para a venda.
 
Como eu disse antes, há MUITOS erros no código. Esperava que o próprio solicitante trabalhasse nisso e compreendesse um pouco mais o código. Essa parece não ser sua intenção. E infelizmente eu não tenho tempo para escrever o código para ele. Apenas lhe dei algo para começar a trabalhar, não um produto acabado.
 
RaptorUK:
Não vai funcionar, você cria o Objeto e depois tenta criá-lo novamente no próximo tick, isso vai falhar . . então se a primeira ordem for uma compra e a segunda uma venda, o texto não será atualizado da compra para a venda.


Funciona, mas basta mostrar a última encomenda. Não sei como mudá-lo para a ordem atual!
 

Não sei se é uma boa prática ou não, mas eu crio as etiquetas no init() e ObjectSetText apenas com um ".

Eu ainda não descobri como colocar uma etiqueta com texto totalmente vazio. Se eu tentar, eu crio o texto "Label" (Etiqueta)

Claro que isso é bom, desde que você saiba quantos rótulos você precisará.

Acho que não deve ser muito difícil apagar os rótulos em excesso e adicionar novos rótulos quando necessário no corpo principal.

Este é o código que eu uso no init() para criar os rótulos

int y=20;
for(int x=1;x<=10;x++)
{
ObjectCreate("Message"+x, OBJ_LABEL, 0, 0, 0);// Creating obj.
   ObjectSet("Message"+x, OBJPROP_CORNER, 1);    // Reference corner
   ObjectSet("Message"+x, OBJPROP_XDISTANCE, 10);// X coordinate
   ObjectSet("Message"+x, OBJPROP_YDISTANCE, y);// Y coordinate
   ObjectSetText("Message"+x,".",8,"Arial",CLR_NONE);  // Empty Labels
   y=y+15;
 

Oh. e em deinit()

for(int x=1;x<=10;x++)
 {
 ObjectDelete("Message"+x) ;   
 }
 
Konnj:

Funciona, mas basta mostrar a última encomenda. Não sei como mudá-lo para a ordem atual!
Coloque seu último código . . .
 
{
   int    counted_bars=IndicatorCounted();
   int pos;
   string OrderTip = "OT";
   string ottt;
   color LabelColor3;

       for(int i=0;i<OrdersTotal();i++)
                    {
                     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
                     if(OrderSymbol()==Symbol() )
                       {
                        if(OrderType()==OP_BUY)  pos++;
                        if(OrderType()==OP_SELL) pos++;
                       }
                    }            
                    
      if (OrderType()==OP_BUY) { ottt="Buy";  LabelColor3 = DodgerBlue; } 
      if (OrderType()==OP_SELL){ ottt="Sell"; LabelColor3 = Red; }
      else ottt="";
     
      ObjectCreate(OrderTip, OBJ_LABEL, 0 , 0, 0, 0);
      ObjectSet(OrderTip, OBJPROP_CORNER, 1);
      ObjectSet(OrderTip, OBJPROP_XDISTANCE, 10);
      ObjectSet(OrderTip, OBJPROP_YDISTANCE, 15);
      ObjectSetText(OrderTip, "Order Type: "+ottt, 8, "Tahoma",LabelColor3);
}
 
Konnj:

Eu quis dizer o código completo . . mas não importa . . tente estas mudanças.

{
   int    counted_bars=IndicatorCounted();
   int pos;
   string OrderTip = "OT";
   string ottt = " ";
   color LabelColor3 = Black;

   for(int i=0;i<OrdersTotal();i++)
      {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() )
         {
         if (OrderType() == OP_BUY) { ottt = "Buy";  LabelColor3 = DodgerBlue; } 
         if (OrderType() == OP_SELL){ ottt = "Sell"; LabelColor3 = Red; }
         }
      }            
     
   if (ObjectFind(OrderTip) < 0) ObjectCreate(OrderTip, OBJ_LABEL, 0 , 0, 0, 0);

   ObjectSet(OrderTip, OBJPROP_CORNER, 1);
   ObjectSet(OrderTip, OBJPROP_XDISTANCE, 10);
   ObjectSet(OrderTip, OBJPROP_YDISTANCE, 15);
   ObjectSetText(OrderTip, "Order Type: "+ottt, 8, "Tahoma",LabelColor3);
}
 
Está funcionando agora mesmo, muito obrigado.
 

Por favor, não poste perguntas que não tenham nada a ver com este fio muito antigo

Repostei sua consulta

https://forum.mql4.com/72256

Razão: