Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 573
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Vedrò cosa riesco a capire. Grazie.
Non c'è di che. Salva semplicemente tutti gli alti in un array, e poi stampa tutti i dati salvati nell'array nel log in un ciclo.
Questo script non necessariamente fa esattamente quello di cui avete bisogno. Mostra semplicemente come i dati sono memorizzati nell'array.
Niente affatto. Semplicemente salva tutti gli alti in un array, e poi stampa tutti i dati salvati nell'array in un ciclo nel registro.
Questo script non fa necessariamente quello di cui avete bisogno. Mostra solo il principio del salvataggio dei dati in un array.
È esattamente quello che stavo cercando. Avevo bisogno che salvasse in qualche modo i dati in un array per il periodo scelto. Questa è la parte che ho capito da te.
Ora la mia domanda è: come posso accedere e confrontare i dati registrati nell'array?
Qui risulta di iterare, scrivere l'array passo dopo passo. Questo è buono. Ma ora dobbiamo confrontare gli elementi tra loro.
È necessario dichiarare un nuovo conteggio delle iterazioni e poi recuperare i dati e confrontarli in qualche modo? Ma questo ancora una volta deve scrivere i risultati da qualche parte e ... Alla fine tutto si ripete.
Approssimativamente, se il periodo di confronto è di 5-7 candele, allora il 1° dovrebbe essere confrontato con altri 6, poi il 2° e così via.... E se due o più di loro hanno un alto uguale, allora in primo luogo, si dovrebbe calcolare questo alto, e in secondo luogo, si dovrebbe trovare la candela con il basso più basso. Cioè la funzione di chiamare le candele concrete alla fine per recuperare tutti i loro parametri.
Ma è possibile farlo?
Questo è esattamente quello che stavo cercando. Quello di cui avevo bisogno era salvare in qualche modo i dati in un array per il periodo che stavo selezionando. Ho capito quella parte.
Ora la mia domanda è: come posso accedere e confrontare i dati registrati nell'array?
Qui risulta di iterare, scrivere l'array passo dopo passo. Questo è buono. Ma ora dobbiamo confrontare gli elementi tra loro.
È necessario dichiarare un nuovo conteggio delle iterazioni e poi recuperare i dati e confrontarli in qualche modo? Ma questo ancora una volta deve scrivere i risultati da qualche parte e ... Alla fine tutto si ripete.
Approssimativamente, se il periodo di confronto è di 5-7 candele, allora il 1° dovrebbe essere confrontato con altri 6, poi il 2° e così via.... E se due o più di loro hanno un alto uguale, allora in primo luogo, si dovrebbe calcolare questo alto, e in secondo luogo, si dovrebbe trovare la candela con il basso più basso. Cioè la funzione di chiamare le candele concrete alla fine per recuperare tutti i loro parametri.
Ma è possibile farlo?
Qui stiamo solo interrogando l'array salvato e visualizzando tutti i dati salvati nel log:
Cerchiamo di essere più specifici sul compito:
Abbiamo bisogno di trovare ... cosa esattamente nell'array salvato?
Qui è dove viene interrogato l'array salvato e tutti i dati salvati vengono registrati:
Cerchiamo di essere specifici sul compito:
Dobbiamo trovare nell'array salvato ... cosa esattamente?
Ho bisogno di registrare un array di dati per tutte le candele chiuse (cioè quella attuale non viene contata) - High, Low, Open, Close (4 parametri) per il periodo specificato nelle impostazioni. - è.
Poi, ho bisogno di confrontare i parametri. Supponiamo che il periodo di ricerca sia uguale a 10 candele. Qui dobbiamo controllare tutti gli alti per il periodo di 10 candele. Se ci sono due o più partite, dovremmo ritornare:
1. Bandiera - "C'è una corrispondenza".
1. Il valore massimo in cui le candele hanno lo stesso valore.
2. Numeri di queste candele, così possiamo fare riferimento a loro e trovare i parametri Low, Close, Open per loro.
In generale, capisco molto di questo come fare.
Ciò che non è chiaro è come riferirsi a quelle candele che formano il livello. Idealmente, quando si ricalcola, si potrebbe memorizzare il numero di iterazione (i) ma prima c'è un ricalcolo secondo il quale il registro viene scritto e non può essere applicato.
E in quella variante, come il registro di uscita registra - anche qui, non è quello che è richiesto.
Ho capito che devo prima prendere una candela 1 e confrontarla con altre 9, se c'è una corrispondenza, poi estrarre i numeri di queste candele e i loro parametri, attivare la casella di controllo. Poi controlla la candela 2 con le altre e così via fino alla metà del campione, come poi andranno i duplicati dei confronti solo dall'altro lato.
Se il numero di candele fosse stato fisso, l'avrei scritto così: circa 5 cicli di confronto. Ma questa è la domanda - come rendere possibile tale ricalcolo per qualsiasi dimensione del campione.
Ho bisogno di scrivere un array di dati per tutte le candele chiuse (cioè quella attuale non viene contata) - candele High, Low, Open, Close (4 parametri) per il periodo specificato nelle impostazioni. - è.
Poi, ho bisogno di confrontare i parametri. Supponiamo che il periodo di ricerca sia uguale a 10 candele. Qui dobbiamo controllare tutti gli alti per il periodo di 10 candele. Se ci sono due o più partite, dovremmo ritornare:
1. Bandiera - "C'è una corrispondenza".
1. Il valore massimo in cui le candele hanno lo stesso valore.
2. Numeri di queste candele, così possiamo fare riferimento a loro e trovare i parametri Low, Close, Open per loro.
In generale, capisco molto di questo come fare.
Ciò che non è chiaro è come riferirsi a quelle candele che formano il livello. Idealmente, quando si ricalcola, si potrebbe memorizzare il numero di iterazione (i) ma prima c'è un ricalcolo secondo il quale il registro viene scritto e non può essere applicato.
E in quella variante, come registra il registro di uscita - anche questo non è ciò che è richiesto.
Ho capito che devo prima prendere una candela 1 e confrontarla con altre 9, se c'è una corrispondenza, poi estrarre i numeri di queste candele e i loro parametri, attivare la casella di controllo. Poi controlla la candela 2 con le altre e così via fino alla metà del campione, come poi andranno i duplicati dei confronti solo dall'altro lato.
Se il numero di candele fosse stato fisso, l'avrei scritto così: circa 5 cicli di confronto. Ma questa è la domanda - come rendere possibile un tale ricalcolo per qualsiasi dimensione del campione.
E a proposito, è improbabile che la coincidenza esatta dei valori dei prezzi sia frequente. Dobbiamo impostare un certo delta, e considerare una coincidenza se i prezzi non differiscono più di questo valore.
Ho bisogno di scrivere un array di dati per tutte le candele chiuse (cioè quella attuale non viene contata) - candele High, Low, Open, Close (4 parametri) per il periodo specificato nelle impostazioni. - è.
Poi, ho bisogno di confrontare i parametri. Supponiamo che il periodo di ricerca sia uguale a 10 candele. Qui dobbiamo controllare tutti gli alti per il periodo di 10 candele. Se ci sono due o più partite, dovremmo ritornare:
1. Bandiera - "C'è una corrispondenza".
1. Il valore massimo in cui le candele hanno lo stesso valore.
2. Numeri di queste candele, così possiamo fare riferimento a loro e trovare i parametri Low, Close, Open per loro.
In generale, capisco molto di questo come fare.
Ciò che non è chiaro è come riferirsi a quelle candele che formano il livello. Idealmente, quando si ricalcola, si potrebbe memorizzare il numero di iterazione (i) ma prima c'è un ricalcolo secondo il quale il registro viene scritto e non può essere applicato.
E in quella variante, come registra il registro di uscita - anche questo non è ciò che è richiesto.
Ho capito che devo prima prendere una candela 1 e confrontarla con altre 9, se c'è una corrispondenza, poi estrarre i numeri di queste candele e i loro parametri, attivare la casella di controllo. Poi controlla la candela 2 con le altre e così via fino alla metà del campione, come poi andranno i duplicati dei confronti solo dall'altro lato.
Se il numero di candele fosse stato fisso, l'avrei scritto così: circa 5 cicli di confronto. Ma questa è la domanda - come permettere un tale ricalcolo per qualsiasi dimensione del campione.
Invece di flag "coincidenza" impostare il contatore, sul valore alto dove il contatore è più grande, c'è un livello
Il valore alto può essere arrotondato per eccesso, per esempio 1,23456 a 1,2346
e 1,23462 arrotondato a 1,2346
perché è improbabile che su 10 candele, 2 abbiano un massimo di 1,23456
quindi danzare dal livello
e il numero di candele è fisso, si scrive una certa quantità di dati nella struttura
cioè il numero di candele scritte nella struttura è lo stesso numero di iterazioni
Ho bisogno di scrivere un array di dati per tutte le candele chiuse (cioè quella attuale non viene contata) - candele High, Low, Open, Close (4 parametri) per il periodo specificato nelle impostazioni. - è.
Poi, ho bisogno di confrontare i parametri. Supponiamo che il periodo di ricerca sia uguale a 10 candele. Qui dobbiamo controllare tutti gli alti per il periodo di 10 candele. Se ci sono due o più partite, dovremmo ritornare:
1. Bandiera - "C'è una corrispondenza".
1. Il valore alto in cui le candele hanno lo stesso valore.
2. Numeri di queste candele, così possiamo fare riferimento a loro e trovare i parametri Low, Close, Open per loro.
In generale, capisco molto di questo come fare.
Ciò che non è chiaro è come riferirsi a quelle candele che formano il livello. Idealmente, quando si ricalcola, si potrebbe memorizzare il numero di iterazione (i) ma prima c'è un ricalcolo secondo il quale il registro viene scritto e non può essere applicato.
E in quella variante, come registra il registro di uscita - anche questo non è ciò che è richiesto.
Ho capito che devo prima prendere una candela 1 e confrontarla con altre 9, se c'è una corrispondenza, poi estrarre i numeri di queste candele e i loro parametri, attivare la casella di controllo. Poi controlla la candela 2 con le altre e così via fino alla metà del campione, come poi andranno i duplicati dei confronti solo dall'altro lato.
Se il numero di candele fosse stato fisso, l'avrei scritto così: circa 5 cicli di confronto. Ma ecco la domanda: come rendere possibile un tale ricalcolo per qualsiasi dimensione del campione.
È un compito interessante, ma la tua comprensione di come risolvere questo problema non è corretta, perché finora non hai molte conoscenze di programmazione.
Guarda: hai una serie di citazioni. Il tuo compito è quello di scegliere da questo insieme solo le barre che soddisfano determinate condizioni. Per esempio, si vuole ottenere un insieme di barre, i cui massimi coincidono tra loro. In effetti, ci possono essere molte condizioni per la selezione, e possono essere aggiunte nel tempo. Una volta che avete una collezione di barre, potete facilmente analizzare qualsiasi altro loro parametro.
Quindi, per il vostro compito, dovete scrivere una funzione che restituisca un array di barre che soddisfano una certa condizione (pseudocodice):
Cioè non c'è davvero nessun problema nel ricordare e iterare alcuni dati e indici. Non avete bisogno degli indici delle barre stesse, ma di una collezione specifica che soddisfi una data condizione. Una volta che ce l'hai, risolvi un sacco di problemi in un colpo solo.Quindi, se abbiamo bisogno di una lista diversa di candele corrispondenti per ogni candela nell'intervallo, proverei a usare un array di strutture. Ci penserò e vi farò sapere.
Pensiero. Sto scrivendo uno script di test:
Ho cercato di descrivere tutti i passi.
Dopo aver riempito tutte le partite nel ciclo, abbiamo un array che contiene tutti i candelieri e i loro candelieri corrispondenti. Dopo di che si può cercare in basso. E puoi organizzarlo direttamente nel ciclo. È più conveniente per voi.
Bene, ecco un altro modo per farlo: le partite sono scritte per ogni candela nel range. Nella versione precedente, le corrispondenze venivano scritte solo per una candela - cioè non veniva scritta nessuna corrispondenza per quella che corrispondeva a questa.