Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1119
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
Perché i timeframe minuti sotto H1 restituiscono i valori corretti.
Come descritto nell'aiuto, essi restituiscono un valore di timeframe, non una costante out-of-the-box.
Quali sciocchezze?
Asciugatevi gli occhi, vi ho mostrato la rappresentazione interna di ENUM_TIMEFRAMES
il bit 16 che è impostato determina il timeframe settimanale e mensile
il bit 15 è impostato per determinare il tempo orario TF e TF D1 = 1000000011000 --> 11000 --> 24, cioè gli sviluppatori hanno confrontato D1 a 24 ore e i TF orari rimanenti corrispondono alla conversione decimale
i timeframe dei minuti sono gli stessi di quelli delle ore, ma i bit alti sono azzerati
un'altra questione è che avete pensato che le funzioni che restituiscono ENUM_TIMEFRAMES restituiscano il tempo del TF in minuti - non è vero, queste funzioni restituiscono l'enumerazione ENUM_TIMEFRAMES - né più né meno, solo ENUM_TIMEFRAMES
vedere l'esempio dall'aiutosu https://www.mql5.com/ru/docs/basis/types/integer/enumeration.
Gli enum possono anche essere con l'assegnazione di qualsiasi valore costante a un membro dell'enum
Potete creare la vostra enumerazione per soddisfare le vostre esigenze
https://www.mql5.com/ru/articles/18
https://www.mql5.com/ru/articles/5798
Grazie mille! È statowchar_t che ha aiutato! Ho letto che memorizza 2 byte per carattere, a differenza del char.
Ma il parametro della funzione "str" non restituisce ancora il valore assegnatogli... Mi chiedo perché...
Ciao, potresti dirmi come risolvere un problema? Voglio scrivere un EA basato su un indicatore (legato al ferro) che costruisce un sacco di livelli (linee) sul grafico, il numero di linee può raggiungere 500.
Tutto quello che voglio implementare è aprire un ordine o qualsiasi altro evento (come un allarme o un messaggio) quando il prezzo attraversa le linee sul grafico. Ma il problema è che l'indicatore non restituisce alcun valore e disegna solo linee orizzontali (oggetti con nomi) - non c'è altro sul grafico.
Ho provato a trovare una soluzione attraverso la funzione iCustom che recupera i livelli di prezzo tramite la variabile "_price", ma l'EA non apre i trade quando le linee vengono toccate. Non so cosa ho fatto di male.
OPZIONE 2. Si apre un ordine sulla linea che ho specificato nelle impostazioni, funziona e apre trade al livello che ho specificato nei parametri dell'EA
Ciao, potresti dirmi come risolvere un problema? Voglio scrivere un EA basato su un indicatore (legato al ferro) che costruisce un sacco di livelli (linee) sul grafico, il numero di linee può raggiungere 500.
Tutto quello che voglio implementare è aprire un ordine o qualsiasi altro evento (come un allarme o un messaggio) quando il prezzo attraversa le linee sul grafico. Ma il problema è che l'indicatore non restituisce alcun valore e disegna solo linee orizzontali (oggetti con nomi) - non c'è altro sul grafico.
Ho provato a trovare una soluzione attraverso la funzione iCustom che recupera i livelli di prezzo tramite la variabile "_price", ma l'EA non apre i trade quando le linee vengono toccate. Non so cosa ho fatto di male.
OPZIONE 2, si apre un ordine alla linea che ho specificato nelle impostazioni; funziona e apre operazioni a quel livello, che ho specificato nei parametri dell'EA
MA, e se l'offerta per qualche motivo saltasse la linea, e non fosse uguale al prezzo della linea, allora cosa? Fornire poi almeno una variabile che memorizza il tick precedente, e se era un nuovo tick ha attraversato la linea - poi fare qualche azione ... Ma in questo caso non dimenticate di fornire un incrocio "ammissibile", perché se il mercato si apre con un grande Gap, o c'è un grande salto di prezzo, si aprirà su molte linee in una sola volta e probabilmente non sul posto che si desidera. Se l'attraversamento è più grande del consentito - verrà dato solo un messaggio...
MA, cosa succede se l'offerta per qualche motivo ha superato la linea, e non era uguale al prezzo della linea, allora cosa...? Fornisci allora almeno una variabile, in cui il tick precedente è memorizzato, e se c'è un nuovo tick che attraversa la tua linea - allora fai qualche azione... Ma in questo caso non dimenticare di fornire "ammissibile" attraversamento, perché se il mercato si aprirà con un Gap grande, o solo un grande salto di prezzo, si aprirà su molte linee in una sola volta e probabilmente non lì dove si desidera. Se l'attraversamento è più grande del consentito - verrà dato solo un messaggio...
Codice del problema.
Quali sciocchezze?
Pulitevi gli occhi, vi ho mostrato la rappresentazione interna di ENUM_TIMEFRAMES
il bit 16 che è impostato determina il timeframe settimanale e mensile
il bit 15 è impostato per determinare il tempo orario TF e TF D1 = 1000000011000 --> 11000 --> 24, cioè gli sviluppatori hanno confrontato D1 a 24 ore e i TF orari rimanenti corrispondono alla conversione decimale
i timeframe dei minuti sono gli stessi di quelli delle ore, ma i bit alti sono azzerati
un'altra questione è che avete pensato che le funzioni che restituiscono ENUM_TIMEFRAMES restituiscano il tempo del TF in minuti - non è vero, queste funzioni restituiscono l'enumerazione ENUM_TIMEFRAMES - né più né meno, solo ENUM_TIMEFRAMES
vedere l'esempio dall'aiutosu https://www.mql5.com/ru/docs/basis/types/integer/enumeration.
Gli enum possono anche essere con l'assegnazione di qualsiasi valore costante a un membro dell'enum
Potete creare la vostra enumerazione per soddisfare le vostre esigenze
Igor, è chiaro da molto tempo sui valori costanti.
È di questo che sto parlando, qual è il significato di 15 e 16 bit come valore di ritorno. Sono solo sciocchezze.
Per qualche ragione prima di M30 le costanti ENUM corrispondevano ai valoriTIMFRAME !!!!.
E inoltre corrisponde già ai valori di alcuni bit. Dove diavolo è la logica nei ragazzi.
Questo è un errore grossolano, se è stato fatto intenzionalmente è un diversivo).
La variabile _Period contiene già tutti questi valori temporali dall'enumerazione di ENUM, non abbiamo bisogno di convertirli ulteriormente.
Pertanto, questi valori costanti, dovrebbero corrispondere ai valori di tempo come indicato nell'aiuto. Non BITS!
È sicuramente il momento della quarantena. Cerca tutto quello che è stato detto su di esso e leggilo a tuo piacimento. Perché pensi che le persone intorno a te debbano ripetere tutto quello che hai scritto?
È sicuramente il momento di metterlo in quarantena. Cercate tutto ciò che è stato detto in proposito e leggetelo a vostro piacimento. Perché pensa che le persone intorno a lei debbano ripetere tutto quello che ha scritto?
E perché sopporti le soluzioni sbagliate? Ho fornito una spiegazione logica dei valori delle costanti, non quello che lo sviluppatore ha inventato.
E perché sopporti le soluzioni sbagliate? Ho fornito una spiegazione logica dei valori delle costanti, non quello che lo sviluppatore ha inventato.
A quanto pare per te ci sono solo due opinioni: la tua e quella sbagliata. Potresti essere in grado di trovare una spiegazione che ti soddisfa.
Cercate di utilizzare il valore restituito dalla variabile _Period per i periodi superiori a H1 nei vostri calcoli matematici.
E capirete immediatamente chi ha torto.