Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 795

 
Alexey Viktorov:
Sei sicuro che l'indicatore viene ricalcolato durante il ciclo while?
, ho messo il commento sullo schermo, o questo non prova ancora che il ricalcolo ha avuto luogo?
 
007yurik:
, metti il commento sullo schermo. O non prova ancora che il ricalcolo è stato fatto?

Abbiamo bisogno di guardare i valori Value[] in modalità debug

In Comment può cambiare al di fuori del ciclo. Non ho incontrato e controllato questa situazione, ma qualcosa mi dice che non sarà ricalcolata e i valori rimarranno invariati. E di conseguenza, non uscirete mai dal giro.

 
Alexey Viktorov:

In modalità debug, vedere Valori Value[]

In Commento può cambiare al di fuori del ciclo. Non ho incontrato e verificato questa situazione, ma qualcosa mi dice che non verrà ricalcolato e i valori rimarranno invariati. Pertanto, non uscirete mai dal giro.

Questo è qualcosa di assurdo. Nel debug, i valori sono corretti ma il ciclo viene sempre eseguito una volta, indipendentemente dal soddisfacimento della condizione. Penso che rinuncerò a While.
 
007yurik:
Questo non ha senso. Nel debug, i valori Value[] sono corretti, ma il ciclo viene eseguito sempre una volta, indipendentemente dal fatto che la condizione sia soddisfatta. Penso che abbandonerò While.

E come determinate che ivalori nell'arrayValue[] siano corretti? Come si fa a riempirlo?

 
Vladimir Karputov:

E come determinate che ivalori nell'arrayValue[] siano corretti? Come si riempie?

Con il gestore dell'indicatore, se ho capito bene).
 
007yurik:
Userò il manico dell'indicatore, se ho capito bene, per ricordarvi che il mio livello di competenza in materia è uguale a quello di un manichino)

Penso che dovresti farlo in ordine inverso: prima riempi l'array Value, e poi confronti quello che c'è dentro.

 
007yurik:
Che confusione. Nel debug, il valore è corretto, ma il ciclo viene eseguito sempre una volta, indipendentemente dal fatto che la condizione sia soddisfatta. Probabilmente abbandonerò While.

Tutto è esattamente come scritto nel programma

 bool pravda=false;

   if(pravda || Ind[0]<=-0.7)
   pravda=true;
   
   {   
      
      while(Value[2]<Value[1])
         {
         if(CopyBuffer(InpInd2_Handle,1,SignalBar,3,Value)<=0) {Recount=true; return;}                 
          }
          
         if(BuyPosOpen) BUY_Open=true;     
                                                  
         if(SellPosClose) SELL_Close=true;
         UpSignalTime=datetime(SeriesInfoInteger(Symbol(),InpInd_Timeframe,SERIES_LASTBAR_DATE))+TimeShiftSec;
         }

Se il CopyBuffer viene eseguito con un errore, impostare Recount a true e uscire dal ciclo.

Di conseguenza, non era il ... loop.

 

Spiega a un pazzo, per favore.
Il compito è quello di disegnare una linea zero nella sottofinestra. Una semplice linea bianca solida.

Quello che non faccio, viene fuori a strisce. Ho impostato i livelli, e la linea dell'indicatore, e ho già inserito un oggetto grafico - e risulta ancora a strisce.
La ragione è chiara: la linea della griglia a strisce viene visualizzata dall'alto. Ma ecco la cosa strana: solo la linea zero orizzontale della griglia è in alto, mentre le linee verticali della griglia sono sotto quelle dell'indicatore.

Qui, come si disegna una semplice linea zero bianca solida nella sottofinestra?

 
E "se non rispondete, scriveremo a Sportlotto"!
 
User_mt5:

Spiega a un pazzo, per favore.
Il compito è quello di disegnare una linea zero nella sottofinestra. Una semplice linea bianca solida.

Quello che non faccio, viene fuori a strisce. Ho impostato i livelli, e la linea dell'indicatore, e ho già inserito un oggetto grafico - e risulta ancora a strisce.
La ragione è chiara: la linea della griglia a strisce viene visualizzata dall'alto. Ma ecco la cosa strana: solo la linea zero orizzontale della griglia è in alto, mentre le linee verticali della griglia sono sotto quelle dell'indicatore.

Qui, come si disegna una semplice linea zero bianca solida nella sottofinestra?

Posso avere uno screenshot di com'è ora?
Il sito usa i cookie. Scopri di più sulla nostra Informativa sui cookie.