Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 284

 
barabashkakvn:
Il numero di sequenza in "Panoramica del mercato" o il prezzo attuale?

Il numero di sequenza in Market Watch.

Capisco come ottenere una descrizione stringa di un simbolo con SymbolInfoString, ma non riesco a trovare il numero da nessuna parte (:

 
Crucian:

Un numero di serie nella rassegna del mercato.

Prima

int  SymbolsTotal(
   bool  selected      // true – только символы в MarketWatch
   );

poi

string  SymbolName(
   int   pos,          // номер в списке
   bool  selected      // true – только символы в MarketWatch
   );

e quando SymbolName==Il tuo simbolo, saprai la sua pos.

 
barabashkakvn:

Prima

poi

e quando SymbolName==Il tuo simbolo, saprai la sua pos.

Grazie!

Ma per qualche motivo non funziona, pos sempre = 0. Forse sto facendo qualcosa di sbagliato, lo capirò domattina :).

 
Crucian:

Grazie!

Ma per qualche motivo non funziona, ros sempre = 0. Forse sto facendo qualcosa di sbagliato, lo capirò domattina :).

In SymbolName si passa pos e si controlla il parametro strung in uscita.
 
Crucian:

Grazie!

Ma per qualche motivo non funziona, ros sempre = 0. Forse sto facendo qualcosa di sbagliato, lo capirò domattina :).

//+------------------------------------------------------------------+
   int PositionsSymbolInList(string sy) {
      for(int i=0; i<SymbolsTotal(false); i++) {
         string symbol_name=SymbolName(i,false);
         if(sy==symbol_name) return i;
         }
      return -1;
   }
//+------------------------------------------------------------------+
 
Crucian:

Grazie!

Ma per qualche motivo non funziona, ros sempre = 0. Forse sto facendo qualcosa di sbagliato, lo capirò domattina :).

//+------------------------------------------------------------------+
int IndexSymbolInMarketWatch(string sy)
  {
   for(int i=SymbolsTotal(true)-1; i>=0; i--)
     {
      if(SymbolName(i,true)==sy)
         return (i);
     }
   return (-1);
  }
//+------------------------------------------------------------------+
 
artmedia70:

Grazie il tuo codice funziona, ma il codice paladin800 no (.

Ma non c'è una sequenza nei numeri. Per esempio EUR=21, GBP=28, CHF=36, JPY=40, EUR/JPY=16. Dovrebbe essere così?

 
Crucian:

Grazie il tuo codice funziona, ma il codice paladin800 no (.

Ma non c'è una sequenza nei numeri. Per esempio EUR=21, GBP=28, CHF=36, JPY=40, EUR/JPY=16. È normale che sia così?

SymbolsTotal(false)

Si tratta di una ricerca nella lista dei simboli disponibili, se vero, allora solo quelli selezionati in Market Watch.

L'ordine in cui sono collocati nella lista dei simboli disponibili è l'ordine in cui vengono restituiti gli indici. Mentre, se si prende dalla lista in MarketWatch (se vero), allora gli indici dipendono dall'ordinamento dei simboli (possono essere trascinati con il mouse) in Market Watch, che non è sempre conveniente - c'è dipendenza dalle "penne cattive dell'utente".

 

Un'altra domanda.

Durante la compilazione di MetaEditor, ha iniziato a visualizzare un avviso:

Il valore di ritorno di'OrderSend' dovrebbe essere controllato Bollinger_Bands_strategy_4.mq5 690 7

Controllo il risultato dopo l'invio della richiesta:

           OrderSend(mrequest,mresult);
            if(mresult.retcode==10009 || mresult.retcode==10008)
              { 
             
               Print("Set pending order SellStop"  );
               ModificationPosition=0;
            }else
              {
               Print(ResultRetcodeDescription(mresult.retcode));
               return;
              }

O non è abbastanza? Cosa vuole MetaEditor?

 
Crucian:

Un'altra domanda.

Durante la compilazione MetaEditor ha iniziato a visualizzare un avviso:

il valore di ritorno di 'OrderSend' dovrebbe essere controllato Bollinger_Bands_strategy_4.mq5 690 7
(Il valore di ritorno di "OrderSend" dovrebbe essere controllato)

Controllo il risultato dopo aver inviato una query:

O non è abbastanza? Cosa vuole MetaEditor?

if(OrderSend(...))

Oppure

bool res=OrderSend(...);

No, errore mio. Sto già dormendo. Questo sono io, per abitudine, dalle mie funzioni di classe... Anche se è per mql4, come in Five - non so... :)

int ticket=OrderSend()