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

 
Vadim_2015:


Vedi l'aiuto per le funzioni, e il forum per esempi del loro uso:

1. iHighest/iLowest
- per evitare confusione, queste funzioni restituiscono un indice corrispondente al prezzo massimo/minimo.
Poi dovresti mettere i loro valori in High[] / Low[]. Troverete molti esempi sul forum.

2. iBarShift
 

Grazie per il vostro feedback.

1_Sì, ho provato a usare _iHighest, ma restituisce l'indice (numero di barra) del valore più alto trovato (offset relativo alla "barra corrente"). Quello che voglio dire è che una certa condizione è soddisfatta alla barra i-esima, questa barra corrisponde all'ora, diciamo, 10:00, ho bisogno del valore massimo da _10:00 a fine giornata _00:00. Se puoi, almeno un piccolo scarabocchio, come? Come collegare iHighest High[] / Low[] di cui parlavi.

2_iBarShift dopo tutto restituisce l'indice della barra in cui cade il tempo specificato. L'indice di una barra. Intendevo dire che devi calcolare quante barre ci sono nella storia (sul grafico), con un tempo specifico_12:00_13:00_14:00, ecc. Anche iBars non è la stessa cosa.

atztek:

Vedi l'aiuto per le funzioni, e il forum per gli esempi di utilizzo:

1. iHighest/iLowest
- per evitare confusione, queste funzioni restituiscono un indice corrispondente al prezzo massimo/minimo.
Poi dovresti mettere i loro valori in High[] / Low[]. Troverete molti esempi sul forum.

2. iBarShift

 
Vadim_2015:

Grazie per il vostro feedback.

1_Sì, ho provato a usare _iHighest, ma restituisce l'indice del valore più alto trovato (offset relativo alla "barra corrente"). Quello che voglio dire è che una certa condizione sulla barra i-esima si è avverata, questa barra corrisponde all'ora, diciamo, 10:00, quindi ho bisogno del massimo da _10:00 a fine giornata _00:00. Se puoi, almeno un piccolo scarabocchio, come? Come collegare iHighest High[] / Low[] di cui parlavi.

2_ iBarShift dopo tutto restituisce l'indice della barra in cui cade il tempo specificato. L'indice di una barra. Intendevo dire che devi calcolare quante barre ci sono nella storia (sul grafico), con un tempo specifico_12:00_13:00_14:00, ecc. Anche iBars non è la stessa cosa.

1. Sul segmento che state considerando, iHighest restituirà qualche valore che può essere memorizzato in una variabile, diciamo 'Index_Max'. Per ottenere il valore è necessario eseguire una semplice operazione => High[Index_Max].

2. iBarShift restituisce il numero di barre fino al tempo specificato.

Dimenticate quello che dovete programmare per un po', create piccoli esempi per ogni caso e usateli per mostrare come funziona.
 
atztek:
1. Nella sezione che state considerando iHighest restituirà qualche valore che può essere memorizzato in una variabile, diciamo 'Index_Max'. Per ottenere il valore è necessario eseguire una semplice operazione => High[Index_Max].

2. iBarShift restituisce il numero di barre fino al tempo specificato.

Dimenticate quello che dovete programmare per un po', create piccoli esempi per ogni caso e usateli per mostrare come funziona.

Forse non capisco qualcosa, ma ...Manuale MQL4/Accesso alle serie temporali e agli indicatori/ iBarShift

" iBarShift - Cerca il bar in base al tempo. La funzione restituisce l'indice della barra in cui cade il tempo specificato.

Il valore restituito -Indice della barra in cui cade il tempospecificato. Se non c'è nessuna barra per il tempo specificato ("buco" nella storia), la funzione restituisce -1 o l'indice della barra più vicina." ,

non il numero di barre prima del tempo specificato.

Sì, uso già gli esempi, ma è tutto sbagliato. Ho provato diverse funzioni. Proverò la tua versione. Cosa devo fare per calcolare il tempo delle barre? Come calcolarli?

Grazie!

 
Vadim_2015:


Forse non capisco qualcosa, ma ...Manuale MQL4/Accesso alle serie temporali e agli indicatori/ iBarShift

" iBarShift - Cerca il bar in base al tempo. La funzione restituisce l'indice della barra in cui cade il tempo specificato.

Il valore restituito -Indice della barra in cui cade il tempospecificato. Se non c'è nessuna barra per il tempo specificato ("buco" nella storia), la funzione restituisce -1 o l'indice della barra più vicina." ,

non il numero di barre prima del tempo specificato.

Sì, uso già gli esempi, ma è tutto sbagliato. Ho provato diverse funzioni. Proverò la tua versione. Cosa devo fare per calcolare il tempo delle barre? Come calcolarli?

Grazie!

Hai ragione, ma conoscendo l'indice delle barre puoi anche scoprire il numero di barre nel grafico, no?
 
Vadim_2015:

2_ non tutti, scusate la mia impertinenza, c'è una funzione 'iBars'( Restituisce il numero di barre nella storia per il simbolo e il periodo corrispondente). Potete dirmi per favore quale combinazione di funzioni può calcolare non solo il numero di barre con tempo, diciamo, '12:00' o diciamo '15:00' in history(PERIOD_H1), ma anche quante barre con tempo.

12:00 e/o 15:00 avviene solo una volta al giorno. Di conseguenza, se definiamo il numero di barre o il numero dell'ultima barra del periodo PERIOD_D1, sarà il numero di barre con l'ora 12:00, o qualsiasi altra ora.

Questo potrebbe non essere molto chiaro a prima vista, ma l'algoritmo è approssimativamente il seguente:

Definiamo il tempo della barra più vecchia del periodo corrente usando Bars. datetime time = Time[Bars-1];

Definire il numero di barra iBarShift(_Symbol, PERIOD_D1, time, false);

 
Come faccio a identificare il simbolo grafico attivo corrente? Cioè il grafico, la cui scheda/finestra è attiva al momento, e non quella dove è attaccato l'indicatore/esperto. Cioè, l'Expert Advisor che lavora su qualche grafico conosce il simbolo del grafico che è stato selezionato dall'utente.
 
r772ra:
forse.
GRAZIE MILLE!
 
AlexPORT:
Come faccio a identificare il simbolo grafico attivo corrente? Cioè il grafico, la cui scheda/finestra è attiva al momento, e non quella dove è attaccato l'indicatore/esperto. Cioè, l'Expert Advisor che lavora su qualche grafico conosce il simbolo del grafico che è stato selezionato dall'utente.
Non esiste una cosa del genere, che definisce il simbolo del grafico programmaticamente attivo. Potete solo definire il simbolo del grafico su cui lavora l'indicatore/consigliere _Symbol, Symbol().
 

AlexeyVik:

Potrebbe non avere senso a prima vista, ma l'algoritmo è più o meno così:

Determina il tempo della barra più vecchia del periodo corrente usando Bars. datetime time = Time[Bars-1];

Definire il numero di barra iBarShift(_Symbol, PERIOD_D1, time, false);

L'algoritmo è chiaro, l'ho capito. Ho fatto un esempio e funziona.

Grazie mille!

E, con la prima domanda (sui massimi), potresti spiegare più dettagliatamente come implementarlo? Se possibile, datemi un piccolo algoritmo. Sei bravo :)

Motivazione: