Errori, bug, domande - pagina 1695

 
Rashid Umarov:
Che cosa significa ORDER_TYPE_BUY? Basta stamparlo e assicurarsi che sia 0. Quindi, non c'è nessun ordine.

Cioè dopo aver aperto una posizione nella struttura MqlTradeTransaction order_type non è disponibile? O è solo 0 a prescindere?

Rashid, se non ti dispiace, potresti darmi una risposta più semplice? Bene, lo stampo e sarà 0, ma come dovrei capirlo?


Ecco qui... Mentre stavo scrivendo, Vladimir mi ha dato una risposta esauriente. Grazie, ho capito. Come sempre, non ho letto la documentazione...

 
Karputov Vladimir:

Per i diversi tipi di transazioni vengono riempiti diversi campi della struttura MqlTradeTransaction:

come potete vedere, per TRADE_TRANSACTION_DEAL_ADD il .order_type non è compilato.

A proposito, a volte è fuorviante. perché, se il valore non è compilato, non può essere specificato come WRONG_VALUE, per esempio?
 
Alexey Viktorov:


Rashid, se non è troppo disturbo, puoi darmi una risposta più semplice? Quindi lo stampo, sarà 0, ma come lo capisco?

In questo caso non c'è bisogno di guardare il tipo di ordine - semplicemente non c'è
 
Alexey Kozitsyn:
A proposito, questo a volte è fuorviante... Perché non può essere specificato come WRONG_VALUE, per esempio, se il valore non è compilato?
Ho calpestato io stesso questo rastrello. Non si può dire )
 
Rashid Umarov:
Io stesso ho calpestato questo rastrello. Non posso dirlo)
È solo che WRONG_VALUE è implicitamente castato al tipo di qualsiasi enumerazione, giusto? Quindi lo faresti))
 
Rashid Umarov:
Non c'è bisogno di guardare il tipo di ordine in questo caso - semplicemente non c'è

Come sono lento a scrivere... Mentre modificavo il mio post...

Alexey Viktorov:

Aggiunto.

Bene... Mentre scriveva, Vladimir mi ha dato una risposta esauriente. Grazie mille. Come sempre non ho letto la documentazione...

Grazie.

 

Come faccio a conoscere il mio manico su un grafico in un indicatore?ChartIndicatorName non è adatto, perché restituisce un nome breve. E con lo stesso nome può essere già in esecuzione lo stesso indicatore con diversi parametri di input.

Ho bisogno che sia in grado di rimuovere l'indicatore dal grafico e dai suoi calcoli.

 
fxsaber:

Come faccio a conoscere il mio manico su un grafico in un indicatore?ChartIndicatorName non è adatto, perché restituisce un nome breve. E con lo stesso nome può essere già in esecuzione lo stesso indicatore con diversi parametri di input.

Ho bisogno che sia in grado di rimuovere l'indicatore dal grafico e dai suoi calcoli.

E se cambiate il nome breve quando lo create?
 

Il mio esempio non dovrebbe ereditare / prendere un metodo da una classe madre?? Come ottenere un metodo del genitore nelle classi derivate per usarlo in seguito.

Così la classe padre ha metodi "uno, due, tre" voglio usare solo il metodo "due e tre" nel discendente e non vedere il metodo "uno" e anche che "due e tre" saranno disponibili più tardi

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class test
  {
public:

   int rezult(void)
     {
      static int t=0;
      t++;
      return t;
     }
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class test_end : public test
  {
public:
   virtual int       rezult(void);
  };

test_end go;
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   go.rezult();
// 'rezult' - function must have a body TEst.mq4        42      7
  }
//+------------------------------------------------------------------+
 
Vladimir Pastushak:

Il mio esempio non dovrebbe ereditare / prendere un metodo da una classe madre?? Come ottenere un metodo del genitore nelle classi derivate per usarlo in seguito.

Così la classe padre ha metodi "uno, due, tre" voglio usare solo il metodo "due e tre" nel discendente e non vedere il metodo "uno" e anche che "due e tre" saranno disponibili ulteriormente

In primo luogo, non è chiaro se è stato fatto un tentativo di dichiarare un metodo come virtuale o meno. Se deve essere virtuale, allora scrivete virtuale in una classe base, non in una derivata (perché altrimenti i puntatori di base saranno rivenduti al metodo base anche se ci mettete un'istanza di classe derivata).

Se non volete sovrascrivere un metodo in una classe derivata, non menzionatelo affatto, e se lo fate, dovrebbe essere sovrascritto con un corpo.

Infine, per nascondere il metodo alla classe derivata, è necessario introdurre una classe intermedia, dove questo metodo dovrebbe essere spostato nell'area priivata o reso privato nella classe base (ma perché è virtuale allora?).