Come mostrare il tipo di ordine (Sell/Buy) sul grafico? - pagina 2

 
Konnj:
E il tipo di grafico dei biglietti?
Intendi il tipo di ordine?
 
RaptorUK:

Hai selezionato prima l'ordine corretto?

Non sono sicuro di come selezionarlo!


Inoltre . . . Object DeleteAll() è pigro, non usarlo. . .

Ci sto lavorando.


Non l'ho già detto due volte?

Sì, l'hai fatto. Mi dispiace. :(
 
RaptorUK:
Vuoi dire Tipo di ordine?


Corretto.
 
Konnj:

Corretto.
Ok, hai confuso la situazione quando hai detto... "tipo di grafico".
 
RaptorUK:

Hai selezionato prima l'ordine corretto?


Come posso fare per favore?
 
Konnj:

Come posso fare per favore?

Lo fai già in questo codice . . .

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);
  }

. . . basta che ti assicuri di aver selezionato l'ordine corretto, se esiste, prima di provare a usare OrderType, o di ottenere il typee in quella funzione.

 

Ho provato ogni cosa, ma non posso!

Caro RaptorUK, hai i miei codici completi, dimmi solo cosa devo fare per favore!

Cordiali saluti

 

Questo codice dovrebbe funzionare. Usa le vostre definizioni e il vostro codice. Devo avvertirti che devi lavorarci sopra per assicurarti che funzioni correttamente in TUTTI i casi.

Ho fatto un po' di questo (controllare separatamente per OrderType OP_SELL, altrimenti non è il modo migliore per andare, dato che ci sono altri tipi di ordine). Ci sono molte cose che devono essere aggiunte perché sia un buon strumento. Per esempio, ora mostrerà solo il tipo dell'ultimo ordine se ne avete più di uno, non scomparirà quando non ci sono posizioni, ecc.

Quindi prendete da qui e lavorateci sopra. Sarà un buon inizio per imparare 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_: mostrerà solo il tipo dell'ultimo ordine se ne hai più di uno, non scomparirà quando non ci sono posizioni, ecc.


Come dici tu, mostra l'ultimo tipo di ordine! Il mio problema è che! Voglio che mostri il tipo di ordine del grafico attuale!


Grazie pro_

 

Se funziona per voi - bene. Sono contento. Ma la mia opinione è che qualsiasi indicatore dovrebbe essere universale il più possibile, e non buono solo per qualche situazione specifica. Lo fai una volta, ma fallo correttamente, in modo che se hai bisogno di cambiare qualcosa o la situazione cambia in termini di posizioni, funziona correttamente.

Comunque, sei il benvenuto.