Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 178
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
Sì, grazie!
No, ma grazie lo stesso).Buona sera.
Quando si usa iOpen viene specificato uno spostamento. Se non c'è abbastanza storia per il traslatore specificato, viene restituito l'iOpen della barra più vecchia.
Domanda: Come posso fare un controllo per una barra con il cambio specificato? E se non c'è abbastanza storia, non restituire iOpen?
Buona sera.
Quando si usa iOpen viene specificato uno spostamento. Se non c'è abbastanza storia per il traslatore specificato, viene restituito l'iOpen della barra più vecchia.
Domanda: Come posso fare un controllo per una barra con il cambio specificato? E se non c'è abbastanza storia, perché iOpen non dovrebbe essere restituito?
CopyOpen
La funzione riceve i dati storici dei prezzi di apertura delle barre per una coppia simbolo-periodo specificata nell'array open_array nella quantità specificata. Va notato che il conteggio degli elementi dalla posizione di partenza viene eseguito dal presente al passato, cioè la posizione di partenza uguale a 0 significa la barra attuale.
Quando si copia una quantità sconosciuta di dati, si raccomanda di usare un array dinamico come array di destinazione, perché se i dati sono meno (o più) di quelli che l'array può contenere, verrà fatto un tentativo di rimescolare l'array in modo che i dati richiesti possano essere copiati nella loro interezza.
Se è necessario copiare una quantità nota di dati, è meglio copiarli in un buffer allocato staticamente per evitare un'inutile sovrallocazione della memoria.
Indipendentemente dalla proprietà as_series=true o as_series=false dell'array ricevente, i dati saranno copiati in modo che l'elemento più vecchio sia all'inizio della memoria fisica assegnata all'array. Ci sono 3 varianti della funzione.
Riferimento per posizione iniziale e numero di elementi richiesti
intCopyOpen(
stringasymbol_name,// nome del simbolo
ENUM_TIMEFRAMEStimeframe,// periodo
intstart_pos,//dove iniziare
intcount,// quanti ne copiamo
doubleopen_array[]// array per copiare i prezzi di apertura
);
Accesso per data di inizio e numero di elementi richiesti
intCopyOpen(
stringasymbol_name,// nome del simbolo
ENUM_TIMEFRAMEStimeframe,// periodo
datetimestart_time,// da quale data
intcount,// quanti ne copiamo
doubleopen_array[]// array per copiare i prezzi di apertura
);
Accesso per data di inizio e fine dell'intervallo di tempo richiesto
intCopyOpen(
stringasymbol_name,// nome del simbolo
ENUM_TIMEFRAMEStimeframe,// periodo
datetimestart_time,// da quale data
datetimestop_time,// fino a quale data
doubleopen_array[]// array per copiare i prezzi di apertura
);
Parametri
nome_simbolo
[Il simbolo.
timeframe
[Periodo.
start_pos
[in] Numero del primo elemento da copiare.
contare
[Numero di elementi da copiare.
ora d'inizio
[Tempo di barra corrispondente al primo elemento da copiare.
stop_time
[in] Il tempo della barra corrispondente all'ultimo elemento.
open_array[]
[out] Matrice di tipo doppio.
Valore restituito
Il numero di elementi della matrice copiati o -1 in caso di errore.
Nota
Se l'intervallo di dati richiesti è completamente al di fuori dei dati disponibili sul server, la funzione restituisce -1. Se vengono richiesti dati al di fuori di TERMINAL_MAXBARS (numero massimo di barre sul grafico), la funzione restituisce anche -1.
Se le serie temporali richieste non sono ancora costruite o devono essere scaricate dal server, la funzione restituisce immediatamente -1.
Quando si richiedono dati dall'Expert Advisor o da uno script, si inizierà il caricamento dal server, se il terminale non ha questi dati localmente, o la costruzione delle serie temporali richieste, se i dati possono essere costruiti dalla storia locale, ma non sono ancora pronti. La funzione restituirà la quantità di dati che sarà pronta entro il tempo di timeout, ma il caricamento della storia continuerà, e la prossima richiesta simile restituirà più dati.
Quando si richiedono dati per data di inizio e numero di elementi richiesti, solo i dati con una data minore (precedente) o uguale a quella specificata saranno restituiti. Allo stesso tempo, l'intervallo è specificato e preso in considerazione al secondo più vicino. Significa che la data di apertura di qualsiasi barra, per la quale viene restituito il valore (volume, spread, valore nel buffer dell'indicatore, prezzo Open, High, Low, Close o open time Time), è sempre uguale o inferiore a quello specificato.
Quando si richiedono dati nell'intervallo di date specificato, solo i dati che rientrano nell'intervallo richiesto saranno restituiti, e l'intervallo è specificato e preso in considerazione al secondo più vicino. Questo significa che il tempo di apertura di qualsiasi barra per la quale viene restituito un valore (volume, spread, valore nel buffer dell'indicatore, prezzo Open, High, Low, Close o open time Time), è sempre entro l'intervallo richiesto.
Così,se il giorno corrente della settimana è sabato, quando si cerca di copiare i dati sul timeframe settimanale, specificando start_time=ultimo martedì e stop_time=ultimo venerdì, la funzione restituirà 0, poiché l'orario di apertura del timeframe settimanale cade sempre di domenica, ma nessuna barra settimanale cade nell'intervallo specificato.
Se abbiamo bisogno di ottenere il valore corrispondente alla barra corrente non finita, possiamo usare la prima forma della chiamata specificando start_pos=0 e count=1.
Saluti.
Signori, potete dirmi come fare una condizione di attraversamento dei livelli di prezzo con 1-2-3 zeri alla fine?
Saluti.
Signori, potete dirmi come fare una condizione di attraversamento dei livelli di prezzo con 1-2-3 zeri alla fine?
Confrontando il valore del prezzo passato e attuale con questo livello, se il livello è tra questi valori allora c'è stato un incrocio.
Confrontando il prezzo passato e quello attuale con questo livello, se il livello si trova tra questi valori allora si è verificato un incrocio.
Come posso specificare questi livelli per il confronto?
Oppure - come faccio a specificare che il numero deve avere il giusto numero di decimali? Non arrotondando, ma cancellando.
E come scrivo questi livelli per il confronto?
Oppure - come faccio a specificare che il numero deve avere il giusto numero di decimali? Non arrotondando, ma cancellando.
Ecco la funzione di ricerca.
Sergey Gritsay,Vitaly Muzichenko grazie.
Mi è stata suggerita anche la funzione MathFloor() - restituisce il valore numerico intero più vicino al fondo.
Scavare MySQL.
Sergey Gritsay:
Per questo scopo è necessario creare un server al di fuori del vostro computer locale e trasmettere i dati attraverso questo server. Per MT si dovrebbe scrivere un indicatore o un Expert Advisor per elaborare questi dati, o i terminali dovrebbero essere collocati su qualche server VPS e lì si dovrebbe impostare un copiatore di trade dal vostro conto ai conti dei vostri amici. Un'altra opzione è quella di copiare i tuoi trade eseguiti su determinati livelliattraverso il servizio disegnali. In generale, dovreste considerare le vostre capacità finanziarie per ordinare un software appropriato.
MosheDayan:
Lasciate che vi ricordi la preistoria. Ho un indicatore giornaliero che ottiene dati da csv e li visualizza (livelli orizzontali) su un grafico. Ho creato un server dal mio portatile di casa (è debole ma non ho bisogno di calcoli lì e mi darà dei csv e sono molto piccoli). Sul server per la connessione di prova ha versato il solito motore del forum - tutto sembra essere visibile dall'esterno. Aiuto con consigli. Che dovrebbe essere sul server per leggere da esso file csv indicatore? Cioè come comunica l'indicatore con il database csv? Può riempire il server fTP del motore o qualcos'altro e può per MT bisogno di aprire alcune porte speciali? O ho preso la direzione sbagliata in generale? Grazie
Amici, posso farvi un'altra domanda. È possibile non caricare un portatile di casa, ma usare, per collegare l'indicatore con i file csv, il cloud storage gratuito come, per esempio Yandex.Disk o Облако@mail.ru o Box.net ecc. Grazie
Ecco la funzione del cercatore