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

 
Konnj:
E quanto ao tipo de tabela de bilhetes?
Você quer dizer Tipo de pedido?
 
RaptorUK:

Você selecionou primeiro o pedido correto?

Não tenho certeza de como selecioná-lo!


Também . . . . O objeto DeleteAll() é preguiçoso, não o utilize . . .

Estou trabalhando nisso.


Já não disse isso duas vezes?

Sim, você fez. Sinto muito. :(
 
RaptorUK:
Você quer dizer Tipo de pedido?


Correto.
 
Konnj:

Correto.
OK, você confundiu a situação quando disse . . . "tipo de gráfico".
 
RaptorUK:

Você selecionou primeiro o pedido correto?


Como posso fazer isso por favor?
 
Konnj:

Como posso fazer isso, por favor?

Você já o faz neste código . . .

int CalculateCurrentOrders()
  {
                  int pos=0;

                  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++;
                       }
                    }
              
                return(pos);
  }

. . apenas certifique-se de ter selecionado a Ordem correta, se ela existir antes de tentar usar o OrderType, ou obtenha o tipo de letra nessa função.

 

Eu tentei todas as coisas, mas não consigo!

Caro RaptorUK, você tem meus códigos completos, apenas me diga o que devo fazer por favor!

Melhores cumprimentos

 

Este código deve funcionar. Ele usa suas definições, e codificação. Devo adverti-lo que você deve trabalhar nele para garantir que funcione corretamente em TODOS os casos.

Eu fiz algumas delas (verifique o OrderType OP_SELL separadamente, senão não é o melhor caminho a seguir, já que existem outros tipos de pedidos). Há muitas coisas que precisam ser acrescentadas para que seja uma boa ferramenta. Por exemplo, agora ele só mostrará o tipo do último pedido se você tiver mais de um, ele não desaparecerá quando não houver posições, etc.

Portanto, pegue-a a partir daqui e trabalhe nela. Será um bom começo para o aprendizado do MQL.

int start()
  {
   int    counted_bars=IndicatorCounted();
   int pos;
   string OrderTyp = "OT";
   string ot;
   color LabelColor;
//----
                  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) { ot="Buy";  LabelColor = DodgerBlue; }
      if (OrderType()==OP_SELL){ ot="Sell"; LabelColor = Red; }
      ObjectCreate(OrderTyp, OBJ_LABEL, 0 , 0, 0, 0);
      ObjectSet(OrderTyp, OBJPROP_CORNER, 1);
      ObjectSet(OrderTyp, OBJPROP_XDISTANCE, 10);
      ObjectSet(OrderTyp, OBJPROP_YDISTANCE, 15);
      ObjectSetText(OrderTyp, "Order Type: "+ot, 8, "Tahoma",LabelColor);
//----
   return(0);
  }
 
pro_: ele só mostrará o tipo da última ordem se você tiver mais de uma, ele não desaparecerá quando não houver posições, etc.


Como você diz, ele mostra o último tipo de pedido! Meu problema é esse! Quero que ele mostre o tipo de pedido atual do gráfico!


Obrigado 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.