[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 859

 
FOReignEXchange:




So molto sulla programmazione, ma quando cerco di fare qualcosa con indicatori o grafici mi blocco, è troppo difficile capire questo sistema di coordinate, come disegnare con Canvas, uno o due ...
usver:


Usate la variabile Bars e tenete traccia del suo cambiamento. Aumentato di 5, ricordato, ecc.

esempio plz
 
if (N=0) N=iBars(Simbol(),TF);

if ((iBars(Simbol(),TF)-N)==5)
   {
   N=0;
   Также обнуляем все параметры, которые использует индикатор, чтобы он смог сделать перерасчёт.
   }

Questo è tutto, credo.

 

IgorM:

E' più o meno così.

int barsTtl;

int init()
   {
      barsTtl=iBars(Symbol(),PERIOD_H1);
      return(0);
   }

int start()
   {
      if (iBars(Symbol(),PERIOD_H1)==barsTtl+5)
        {
          // какие-то действия
          ...
          ...
          ...
          barsTtl=iBars(Symbol(),PERIOD_H1);
          return(0);
        }
   }
FOReignEXchange:

Più o meno lo stesso, credo.


Sì, è esattamente quello che intendevo
 

usver, FOReignEXchange

grazie mille, come funzionerà questo codice quando la storia è impaginata? l'impaginazione a volte accade in modo casuale, anche se il terminale è in esecuzione 24/7, contatore di byte

improvvisamente sembra aumentare la quantità di informazioni scaricate, anche se non viene intrapresa alcuna azione

 
usver:

IgorM:

Più o meno a destra.


Sì, è esattamente quello che intendevo

Ho provato questo tipo di cose. Non sempre funziona.
 
IgorM:

usver, FOReignEXchange

come funziona questo codice quando la storia è paginata? la paginazione a volte viene avviata in modo casuale, anche se il terminale è acceso 24/7, secondo il contatore di byte

Si può notare un aumento improvviso del volume delle informazioni scaricate, anche se non viene eseguita alcuna azione


Sì - quindi questo metodo non può essere chiamato affidabile. Lo uso solo per controllare strategie e indicatori, perché è il più semplice. Non ha mai fallito per me.
 

Pertanto, abbiamo bisogno di ricordare il tempo della barra iTime(NULL,TF,0) e poi contare le barre iBarShift.

La logica è la stessa di sopra, ma si usa il tempo delle barre.

 
IgorM:

usver, FOReignEXchange

come funzionerà questo codice quando la storia è paginata? la paginazione a volte viene avviata in modo casuale, anche se il terminale è acceso 24/7, secondo il contatore di byte

Si può vedere un improvviso aumento della quantità di informazioni scaricate, anche se non viene intrapresa alcuna azione


Sì - ecco perché questo metodo non può essere chiamato affidabile. Lo uso solo per controllare strategie e indicatori, come il più semplice. Non ho mai avuto problemi con esso.

L'ho usato per aprire posizioni all'inizio di una nuova barra (seconda/terza barra dal punto di partenza), e tutto sembrava a posto. Ho analizzato la storia in excel - tutto funziona come da condizione. È un caso di una cosa per un'altra, come si dice. Sta a voi decidere. In alternativa, vi ho consigliato FOReignEXchange con un orario di apertura. La tecnologia è fondamentalmente la stessa.

 
Questo è tutto in poche parole.
if (t=0) t=iTime(NULL,TF,0);

if ((iBarShift(NULL,TF,t)-iBarShift(NULL,TF,iTime(NULL,TF,0))==5)
   {
   t=0;
   Также обнуляем все параметры, которые использует индикатор, чтобы он смог сделать перерасчёт.
   }


 
FOReignEXchange:
Come questo


Grande, ma se non ti dispiace, fai un ritardo in minuti con questo codice

Cioè nelle impostazioni dell'indicatore impostiamo il ridisegno in minuti, e da M1 prendiamo il contatore

Motivazione: