¿Cómo mostrar el tipo de orden (venta/compra) en el gráfico? - página 2

 
Konnj:
¿Qué pasa con el tipo de gráfico del billete?
¿Se refiere al tipo de orden?
 
RaptorUK:

¿Seleccionó primero la Orden correcta?

¡No estoy seguro de cómo seleccionarlo!


Además... Object DeleteAll() es perezoso, no lo uses...

Estoy trabajando en ello.


¿No lo he dicho ya dos veces?

Sí, lo hiciste. Lo siento. :(
 
RaptorUK:
¿Se refiere al tipo de pedido?


Correcto.
 
Konnj:

Correcto.
Bien, confundiste la situación cuando dijiste... "tipo de gráficos"
 
RaptorUK:

¿Seleccionó primero la Orden correcta?


¿Cómo puedo hacerlo, por favor?
 
Konnj:

¿Cómo puedo hacerlo, por favor?

Ya lo hace en este 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);
  }

. . sólo asegúrate de que has seleccionado el pedido correcto, si es que existe, antes de intentar usar OrderType, u obtener el tipo en esa función.

 

He intentado todo, pero no puedo.

¡Estimado RaptorUK, usted tiene mis códigos completos, sólo dígame qué debo hacer por favor!

Saludos cordiales

 

Este código debería funcionar. Utiliza sus definiciones, y la codificación. Tengo que advertirte que tienes que trabajar en él para asegurarte de que funciona correctamente en TODOS los casos.

Yo he hecho algo de eso (comprueba el OrderType OP_SELL por separado, si no, no es la mejor manera de hacerlo ya que hay otros tipos de órdenes). Hay muchas cosas que hay que añadir para que sea una buena herramienta. Por ejemplo, ahora sólo mostrará el tipo de la última orden si tienes más de una, no desaparecerá cuando no haya posiciones, etc.

Así que tómalo desde aquí y trabaja en él. Será un buen comienzo para aprender 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_: sólo mostrará el tipo de la última orden si tiene más de una, no desaparecerá cuando no haya posiciones, etc.


¡Como usted dice, muestra el último tipo de orden! Mi problema es ese. ¡Quiero que muestre el tipo de orden actual del gráfico!


Gracias pro_

 

Si te funciona - bien. Me alegro. Pero mi opinión es que cualquier indicador debe ser universal en la medida de lo posible, y no bueno para alguna situación específica solamente. Lo haces una vez pero lo haces bien, para que si necesitas cambiar algo o la situación cambia en cuanto a tus posiciones funcione correctamente.

De todos modos, eres bienvenido.