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

 
Prix:
Buon pomeriggio. Se qualcuno sa dove si può scaricare un indicatore ZIGZAG che segna il punto in cui appare un nuovo raggio (per esempio in un colore diverso). Se ce n'è uno...

Cercare DT_ZZ_Nen
 
Vinin:

Cercare DT_ZZ_Nen

Grazie, lo proverò ora.
 
Aiutatemi a trattare gli array passati alla funzione iMAOnArray.
Per qualche ragione, questa funzione funziona solo con array di buffer (nell'esempio VMA)
e non funzionerà con i "regolari" (SMA, per esempio).

Qui sotto c'è uno schema di come lo faccio nei miei programmi. Cosa c'è che non va?

double MA1[],MA2[],VMA[],SMA[];

int init()
{

   SetIndexBuffer(0,MA1);
   SetIndexBuffer(1,MA2);
   SetIndexBuffer(2,VMA);
   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   SetIndexEmptyValue(2,0.0);  
   ArrayResize(SMA,1);  
   ArrayInitialize(SMA,0);

 return(0);
}

int start() 
{  
 
SMA[i]=...........;
VMA[i]=...........;

MA1[i]=iMAOnArray(SMA,0,8,0,0,0); //----этот вариант НЕ работает
MA2[i]=iMAOnArray(VMA,0,8,0,0,0); //----этот вариант всегда работает  
   
  return(0);
}

 

Vi ho già scritto su questo, ma avete scelto di ignorarlo:

Quando si dichiara un array, che non è un buffer di indicatori, si DEVE specificare la sua dimensione, preferibilmente più grande, in modo che l'interprete alloca lo spazio di memoria.

 
Vinin:

Cercare DT_ZZ_Nen

Se ho capito bene, il punto non mostra quando appare il nuovo raggio, ma il massimo o il minimo della candela su cui è apparso... Ma neanche male... grazie...
 
Fox_RM:
Aiutatemi a trattare gli array passati alla funzione iMAOnArray.
Per qualche ragione, questa funzione funziona solo con array di buffer (nell'esempio VMA)
e non funzionerà con i "regolari" (SMA, per esempio).

Qui sotto c'è uno schema di come lo faccio nei miei programmi. Cosa c'è che non va?

La sequenza di preparazione degli array SMA[] e VMA[] non è chiara da questo frammento di codice, assumendo che abbiate dichiarato la dimensione di un array "non-buffer".

Questi array devono essere prima riempiti di dati, e poi gli array MA1[] e MA2[] devono essere creati usando iMAOnArray().

 
FAQ:

Ti ho già scritto su questo, ma hai scelto di ignorarlo:

Quando si dichiara un array, che non è un buffer di indicatori, si DEVE specificare la sua dimensione, preferibilmente più grande, in modo che l'interprete alloca lo spazio di memoria.

Gli ho dato una dimensione da 1 a Bar. Sia durante la dichiarazione che durante ArrayResize, non è cambiato nulla;(
 
double SMA[];

int init()
{
   ArrayResize(SMA,1);     //--- Размер различный задавал от 1 до Bars 
   ArrayInitialize(SMA,0);

 return(0);
}

int start() 
{  
 
SMA[i]=...........; // --- Заполнение массива.

MA1[i]=iMAOnArray(SMA,0,8,0,0,0); //----MA1 буферный.
   
  return(0);
}

Di solito lo faccio con un non-buffer.

 
double MA1[],MA2[],VMA[],SMA[3000];<= вписать размер!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
FAQ:

Ho capito cosa intendi). Ho dato una dimensione da 1 a Bars. Sia in AD che in ArrayResize. Forse l'errore è in qualcos'altro?