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

 

Ciao a tutti.

Per testare la strategia su H1 ho bisogno di ottenere la chiusura del giorno precedente.

Nell'indicatore scrivo quanto segue (dopo aver dichiarato "CloseLine" in OnInit()) :


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[])

{

Close_Day=iClose("EURUSD",PERIOD_D1,1);

ObjectSet("CloseLine",OBJPROP_PRICE1,Close_Day);

return(rates_total);

}

Di conseguenza, il prezzo del giorno TF non viene cambiato e la linea non viene riorganizzata.

Per favore, aiutatemi.

Grazie

 

Ciao, ecco una domanda su un quartetto scritta su un quartetto. Chi sa dirmi...

Scrivere e leggere i tick di un indicatore.

https://www.mql5.com/ru/forum/6343/page400#comment_1768141

Iniziato nella pagina precedente - non si può battere iMAOnArray.

 
Pokrov:
Ciao a tutti, è meglio usare un solo ciclo per tutti gli scopi o diversi cicli in blocchi? È una questione di prestazioni dell'EA o non c'è differenza?

Il ciclo è il più veloce. E all'interno del ciclo si possono fare dei blocchi, ad esempio l'analisi a blocchi degli ordini pendenti, l'analisi a blocchi degli ordini a mercato, il movimento a blocchi dei b/o.

for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(!OrderSelect(i,SELECT_BY_POS)) 
      {
         Print("OrderSelect( ",i," ) - Error #",GetLastError());
         continue;
      }
      if(OrderSymbol() != SymbolsArray[symNo])          continue;
      if(OrderMagicNumber() != Expert_ID) continue;
      if(OrderType()>3){  } //StopOrder
      if(OrderType()<2){  } //MarketOrder
   }
 
Rattnik:

Ciao a tutti.

Per testare la strategia su H1 ho bisogno di ottenere la chiusura del giorno precedente.

Nell'indicatore scrivo quanto segue (dopo aver dichiarato "CloseLine" in OnInit()) :


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[])

{

Close_Day=iClose("EURUSD",PERIOD_D1,1);

ObjectSet("CloseLine",OBJPROP_PRICE1,Close_Day);

return(rates_total);

}

Di conseguenza, il prezzo del giorno TF non viene cambiato e la linea non viene riorganizzata.

Per favore, aiutatemi.

Grazie

Sei sicuro che abbia senso scoprire la clausola di ieri ad ogni tick? Forse è meglio scoprire se il valore è cambiato, e solo se lo è, poi chiamare ObjectSet e gestire se è fallito?
 
Buona sera se qualcuno ha un indicatore che calcola il numero di zecche in una candela è che nei numeri sopra o sotto le candele. non può trovare un tale indicatore ovunque
 
roma1984:
Buona sera, avete un indicatore che calcola il numero di tick in una candela, specialmente in numeri sopra o sotto la candela?
L'indicatore non mostra il numero di tick in una candela, solo che non ha cifre, puoi visualizzarlo premendo ctrl+D e passando sopra la candela.
 
danik:
In MT4 ci sono i volumi. non sono della borsa, sono volumi in tick, cioè mostrano il numero di tick in una candela. tuttavia, non ci sono numeri, si possono vedere i numeri premendo ctrl+D e passando il mouse sulla candela.
Grazie per il suggerimento ma è un po' scomodo
 
tatianati:

Ciao, aiuto per favore.

Cercando l'uguaglianza, basso della prima barra con un prezzo massimo per 20 barre a partire dalla 5° barra.

Ho messo la freccia sulla prima barra.

Provando come questo:

Non lo mette a posto.

Che ne dite di questo?

if(MathAbs(iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,K_Bars,i+5))-lowr) < n*Point) //примерно равно)))

Anche le variabili devono essere inizializzate.

 
tatianati:

hai bisogno esattamente di E, è una gamma, approssimativamente

Mi sto chiedendo se per l'indicatore che sto guardando dalla 5a barra alla 20a

La ricerca è corretta, ma l'intervallo no. È meglio confrontare il modulo della differenza con un certo numero stabilito.

E' più o meno così:

if(MathAbs(iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,K_Bars,i+5))-lowr) < n*Point) // разница меньше п пунктов
 
E se la barra zero non è coinvolta da nessuna parte, ha senso iniziare il ciclo da 1, allora non ci sarà bisogno di scrivere [i+1].