Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 990
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
Domanda: perché un Handel impostato su un periodo non passa valori aCopyBuffer su altri periodi. E cosa fare?
Se il problema fosse nello spostamento dell'elemento del buffer dell'array in tempi diversi, risolverei il problema. E quindi non è affatto chiaro.
Domanda: perché un Handel impostato su un periodo non passa valori aCopyBuffer su altri periodi. E cosa fare?
Se il problema fosse nello spostamento dell'elemento del buffer dell'array in tempi diversi, risolverei il problema. E quindi non è affatto chiaro.
Se l'handle è stato creato con successo, viene creato con i parametri che gli avete passato durante la sua creazione. E darà i dati dell'indicatore in qualsiasi timeframe. Tuttavia, darà i dati dell'intervallo di tempo che avete specificato durante la creazione. E per visualizzarli correttamente sul timeframe di lavoro, è necessario convertire i dati ricevuti dall'handle dell'indicatore nel timeframe in cui lavora il tuo indicatore.
Stavo solo controllando questo. Ma il PROBLEMA è che, fissando l'handel a un periodo permanente, in
Il valore di CopyBuffer su altri timeframe NON è TRASFERIBILE. Il valore era sul periodo di hendle impostato e 0,0 (zero) sui timeframe più piccoli. L'ho spostato intorno al buffer per cercarlo... zero. Perché non viene passato aCopyBuffer?
L'ho copiato...
Un'altra domanda è cosa viene copiato :) Molto probabilmente stai richiedendo più barre da copiare di quante ce ne siano in quel TF, stampa
Se l'handle è stato creato con successo, è stato creato con i parametri che gli avete dato quando lo avete creato. E darà i dati dell'indicatore in qualsiasi timeframe. Ma darà i dati del lasso di tempo che è stato impostato durante la creazione. E per visualizzarli correttamente sul timeframe di lavoro, è necessario convertire i dati ottenuti dall'handle dell'indicatore nel timeframe in cui lavora il tuo indicatore.
Ho fatto bene l'esperimento?
Ti ho dato una direzione...
Studiatelo:
L'ho copiato...
Un'altra domanda è cosa sia la copia :) Molto probabilmente stai chiedendo di copiare più barre di quante ce ne siano in quel TF, stampa
kopeyka2:
Верно ли я провел эксперемент.?
...
... Anche quando si passa a un altro timeframe i valori dovrebbero essere quelli del D1 impostato. È proprio questo che non vedo. O c'è qualcosa che non va? C'è qualcos'altro che dovrei aggiungere quando si imposta una maniglia? Poiché non c'è trasferimento di buffer.
In poche parole, sperimentare con CopyByffer , cosa metterci dentro dovrebbe essere. Ma non c'è.
Non hai controllato la disponibilità dei dati, ma stai cercando di copiare. Guardate il codice qui sopra - lì in secondo timer ogni minuto e mezzo si accede al timeframe non nativo - per mantenere i dati aggiornati. E la prima cosa nel codice è controllare se i dati richiesti sono disponibili. Se non sono pronti, allora restituisce zero per il prossimo tick e il calcolo completo dell'indicatore. E quando tutti i dati sono stati ricevuti e calcolati, e visualizzati, la quantità di dati calcolati viene restituita alla fine - per non fare il ricalcolo completo al prossimo tick.
Grazie. Tutti leggono. Continuerò a cercare.
Cosa state cercando? Il codice di cui sopra è completamente funzionante. Potete sezionarlo come volete. Ho fatto notare il tuo errore: non controlli la disponibilità dei dati.
Anche su questa linea qui:
int lm=IBarShift(NULL,PERIOD_D1, iTime(NULL, PERIOD_CURRENT, limit));
Dov'è il controllo di ciò che iTime() ha restituito? Non c'è nessun controllo. Ma voi spingete un risultato sconosciuto proprio in iBarShift(). Sei sicuro che stai dando alla funzione quello che ti aspetti?
Se l'handle è stato creato con successo, viene creato con i parametri che gli avete dato alla creazione. E passerà i dati dell'indicatore in qualsiasi timeframe. Tuttavia, darà i dati dell'intervallo di tempo che è stato impostato durante la creazione. E per visualizzarli correttamente sul timeframe di lavoro, è necessario convertire i dati ricevuti dall'handle dell'indicatore nel timeframe in cui lavora il tuo indicatore.
È esattamente quello che ho pensato. Il problema del malinteso è la parola "parametri". Così ho iniziato a guardare TUTTE le variabili che sono coinvolte nell'handle --> CopyBuffer
1) La mia domanda fin dall'inizio era quella di cambiare il timeframe SCREEN per salvare i dati della maniglia. Come è in MT4.
E infatti risulta così:
SEMPRE e su TUTTI i timeframe dà lo stesso valore di 10
Non avendo ottenuto nulla qui sono andato avanti.
2) E cito:"Ottiene i dati del buffer specificato dell'indicatore specificato nella quantità specificata nella matrice del buffer".
Cioè, impostandoil conteggio a mano dovremmo avere un INTERVALLO con i valori . Ed eccoli lì! MA!!!!!! Solo quando il periodo della maniglia corrisponde a
PERIOD_H1sullo schermo del monitor. Tutti i valori sono trasmessi chiaramente. Ma passando ad un altro timeframe, non ci sono dati sullo schermo.
NON vengono trasmessi in nessun modo!!!! E la mia domanda era esattamente questa. E il numero di barre non è così importante in questo caso se non sono lì!!!!
Ho guardato l'indicatore propostoMTF_LRMA.mq5 ma è lo stesso. Passa a un altro timeframe sullo schermo e i dati passano per il timeframe dello schermo. Ne ho bisogno su un palmare.
Per esempio: iClose(NULL, PERIOD_H1, 5); su tutti i timeframe darà lo stesso valore: chiusura su 5 barre su H1.
Finora tutti gli esempi erano sulla correzione delconteggio di CopyBuffer. Ma l'array è vuoto.