Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 868

 
Ho pensato che sarebbe bello alleggerirli e ridisegnare solo la finestra che è attualmente attiva e visibile. il resto non verrà ridisegnato fino a quando un utente passa a loro
 
pycha:
Ho pensato che sarebbe bello alleggerirli e farli ridisegnare solo la finestra che è attualmente attiva e visibile. il resto non sarà ridisegnato fino a quando un utente passa a loro

Non ho bisogno di API per questo, tutto non è semplice, ma molto semplice.

 
tara:

Non avete bisogno di un'API per farlo, non è semplice, è molto semplice.

quindi per favore date una soluzione a un principiante
 
Per i principianti-non principianti, posso consigliarvi di salvare nello stesso GV il nome della coppia di valute nel momento in cui avviate l'Expert Advisor.
 
Vengono eseguiti tutti simultaneamente all'avvio del client. o ti ho mancato di nuovo, o
salvare nello stesso GV il nome della coppia di valute al momento del lancio dell'Expert Advisor.
non sarà di alcuna utilità
 
pycha:
Tutti partono allo stesso tempo quando si avvia il client. o ho capito male di nuovo, o non servirà a niente

Sembra che non ti piacciano i gatti.

Solo che non sai come cucinarli.

L'EA attiverà un ridisegno se e solo se il simbolo attivo del grafico è lo stesso del suo simbolo iniziale.

 
Ho capito, metà del problema è risolto)))). ma lì e nell'Expert Advisor esegue funzioni per preparare il ridisegno, la cancellazione dell'array, l'inserimento di nuovi dati negli array - cosa può e non deve essere fatto. ora l'Expert Advisor gira su 20 strumenti e la CPU è costantemente caricata dal 5 - 10%. cercando qualsiasi modo per facilitare e ottimizzare )))))
 
Non per me.
 
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- check for bars count
   if(rates_total<InpMAPeriod-1 || InpMAPeriod<2)
      return(0);
//--- counting from 0 to rates_total
   ArraySetAsSeries(ExtLineBuffer,false);
 //  ArraySetAsSeries(ExtLineBufferFid,false);
   ArraySetAsSeries(close,false);
//--- first calculation or number of bars was changed
   if(prev_calculated==0)
   {
      ArrayInitialize(ExtLineBuffer,0);
      ArrayInitialize(ExtLineBufferFid,0);  
   }       
//--- calculation
  
    CalculateSimpleMA(rates_total,prev_calculated,close);
    
    ExtLineBufferFid[rates_total-3]=(ExtLineBuffer[rates_total-2]*InpMAPeriod+close[InpMAPeriod+1])/(InpMAPeriod+1);
  //sma99[i]=(sma100[i]*100-d[i-100])/99;
//(firstValue*InpMAPeriod+price[i+1])/InpMAPeriod;
///(firstValue*InpMAPeriod+price[InpMAPeriod+1])/(InpMAPeriod+1);
// Y[i]=Y[i+1]+(X[0]-X[N])/N    
    Print("  ",ExtLineBufferFid[rates_total-3]
         ,"  ",ExtLineBufferFid[rates_total-2]
         ,"  ",ExtLineBuffer[rates_total-2]
             );      
//--- return value of prev_calculated for next call
   return(rates_total);
  }

Mi dispiace, è un peccato ripetere la stessa cosa cento volte.

È quasi un mese che fisso come una pecora il cancello. Non capisco niente.

Il compito è quello di calcolare una media mobile minore con una media mobile di 13,

cioè calcolare un periodo di 12 sulla base di 13.

 
Top2n:

Mi dispiace, è un peccato ripetere la stessa cosa cento volte.

È da quasi un mese che sto fissando come una pecora il cancello. Non capisco niente.

Il compito è quello di calcolare una media mobile minore con una media mobile di 13,

cioè calcolare un periodo di 12 sulla base di 13.

Che senso ha calcolare non direttamente sullo stesso periodo che si vuole!
Motivazione: