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?