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

 
culler:

OrderSend ()

slittamento,// slittamento

Puoi dirmi in quale formato?

Esempio: 3 - 0,00003 o 0,0003 a un conto di cinque cifre


3 per un conto a 4 cifre è 30 per un conto a 5 cifre rispettivamente, ma se proprio volete, potete anche lasciare 3 per un conto a 5 cifre, solo le riquotazioni saranno costanti.
 

Puoi darmi un esempio di codice, non mi viene in mente niente di normale.

Come forzare il confronto dei prezzi (per esempio: MarketInfo(Symbol(),MODE_BID ) di quanto il prezzo è salito sopra/sotto da quando è iniziato il confronto dei prezzi.

Se uso le variabili "A" e "B" con Bid, come posso forzare l'aggiornamento della sola variabile "B" e confrontarle ulteriormente - altrimenti entrambe avranno sempre gli stessi valori.

O forse ci sono modi integrati più semplici?

 
culler:

Puoi darmi un esempio di codice, non mi viene in mente niente di normale.

Come forzare il confronto dei prezzi (per esempio: MarketInfo(Symbol(),MODE_BID ) di quanto il prezzo è salito sopra/sotto da quando è iniziato il confronto dei prezzi.

Se uso le variabili "A" e "B" con Bid, come posso forzare l'aggiornamento della sola variabile "B" e confrontarle ulteriormente - altrimenti entrambe avranno sempre gli stessi valori.

O forse ci sono modi integrati più semplici?


Il tempo dovrebbe essere preso in considerazione. Ricorda il momento in cui è stato scritto il primo valore dell'offerta e poi lo confronta con il valore attuale dell'offerta dopo un certo intervallo:


1. t=0; A=Bid; B=Bid; C=MathAbs(B-A);

2. t=10; B=Bid; C=MathAbs(B-A); A=Bid;

3. t=20; B=Bid; C=MathAbs(B-A); A=Bid;

...

B variabile C sarà quindi il valore assoluto della differenza di Bid negli ultimi 10 secondi.

 

Per favore avvisate - durante il debugger del programma - nel debugger nella finestra "Tracciamento dei valori delle espressioni" nelle espressioni scrive "Expression could not be evaluated" mentre i valori di

queste espressioni appaiono tranquillamente nella finestra chiamata dalla funzione Alert. Il programma funziona, alle variabili vengono assegnati dei valori e nel debugger non vengono visualizzati perché non possono essere valutati. Come può essere?

 
evillive:

Il tempo deve essere preso in considerazione. Ricorda l'ora in cui è stato registrato il primo valore dell'offerta, e poi confronta ad un dato intervallo con l'offerta attuale in quel momento:


1. t=0; A=Bid; B=Bid; C=MathAbs(B-A);

2. t=10; B=Bid; C=MathAbs(B-A); A=Bid;

3. t=20; B=Bid; C=MathAbs(B-A); A=Bid;

...

B variabile C sarà quindi il valore assoluto della differenza di Bid negli ultimi 10 secondi.


Non c'è alcun riferimento al tempo. Il tempo è il nemico qui.

Come senza tempo?

 
culler:


Non c'è alcun riferimento temporale. Il tempo è il nemico qui.

Come senza tempo?


Metti una variabile con il valore del prezzo in OnInit, e sarà legata al prezzo durante l'avvio di Expert Advisor, quindi puoi confrontarlo con quello che ti serve
 
culler:


Non c'è alcun riferimento temporale. Il tempo è il nemico qui.

Come si può fare a meno del tempo?


Non si può fare a meno del tempo sul tailrace, è una parte inseparabile del sistema, ahimè. Anche nella domanda posta appare il tempo:

Come fare il confronto dei prezzi ( per esempio: MarketInfo(Symbol(),MODE_BID ) quanto più alto/basso dal momento del confronto dei prezzi.

Il "momento" è il tempo lì, il punto di riferimento iniziale.

 
culler:

Puoi darmi un esempio di codice, non mi viene in mente niente di normale.

Come forzare il confronto dei prezzi (per esempio: MarketInfo(Symbol(),MODE_BID ) di quanto il prezzo è salito sopra/sotto da quando è iniziato il confronto dei prezzi.

Se uso le variabili "A" e "B" con Bid, come posso forzare l'aggiornamento della sola variabile "B" e confrontarle ulteriormente - altrimenti entrambe avranno sempre gli stessi valori.

O forse ci sono modi integrati più semplici?

LastPrice=0;

NewPrise=0;

if(условие записи  LastPrice &&  NewPrise==0){LastPrice = MarketInfo(Symbol(),MODE_BID);}

if(LastPrice > 0) { NewPrise = MarketInfo(Symbol(),MODE_BID);} 


 
evillive:

Sulla coda non c'è tempo senza tempo, è una parte inseparabile del sistema, ahimè. Anche in questa domanda il tempo è presente:

il "momento" c'è il tempo, il punto di partenza.


non c'è tempo in forex.... c'è una serie continua di stati attesi... (previsioni)

Ma per un commerciante, tra due stati previsti può passare un'ora, un altro mese, un altro secondo, o anche un anno... :-)))

è un suo problema... l'intero punto del trading di successo è quello di ridurre al minimo il periodo di attesa.... (a seconda di quello che si vuole ottenere...)

 

Ciao a tutti. Domanda su IndicatorCounted():

#property indicator_separate_window
datetime LastBarTime=0;
int start() 
{
   // каждый свежий бар считаем только 1 раз (сразу после закрытия)
   if (Time[0]!=LastBarTime)               // если идёт расчёт всей истории или начался свежий бар
   {
      LastBarTime=Time[0];
      
      int counted=IndicatorCounted(); if(counted<0) return(-1);
   // if (counted>0) counted--;   <<< зачем оно???
   
                 int i=Bars-counted;  // варианты: считаем историю(i=кол-во баров), сформирован свежий бара (i=2) ПОЧЕМУ?
      if (counted<2) i=Bars-2;        // для корректного начала расчёта (иначе i и тем более i+1 заглядывают в бездну)

      Print("!!!!!!TEST Bars-counted=",i);  // ПОЧЕМУ =2 ???
                     
      for (; i>0; i--) // открытый бар не считаем
      {
      // варианты:
      // 1) в истории недостаточно баров (меньше трёх): итераций цикла не будет
      // 2) произошла переинициализация переменных и тогда надо считать историю с нуля (i указывает на 2-й бар слева)
      // 3) историю уже расчитали, а сейчас сформирован свежий бара: i должна указывать на закрытый бар (i=1)
      }
   }
   
return (0);
}


Posso aspettarmi solo due stati nel ciclo:

1) inizializzazione (le variabili statiche vengono azzerate e i punta alla seconda barra a sinistra);

2) l'intera storia è calcolata (i=2);


E, in realtà, perché i=2? Capirei i=1 o i=0, ma perché 2? Posso contare su quel 2? =)

Se no, qual è il modo giusto per farlo. Ho un calcolo a catena, quindi la stessa barra non può essere elaborata ripetutamente.

...

Ok, metto la domanda in un altro modo. Dritto al punto. Posso usare una variabile invece di IndicatorCounted()?

Cioè, l'inizializzazione primaria di statiche e globali è sempre uguale a 0 da IndicatorCounted()?