![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Avrai un brusco risveglio... :))
Probabilmente,
Ho letto l'essenza del problema, non capisco perché ogni indicatore dovrebbe avere un timer, e perché ci sono così tanti indicatori,
se è possibile ottenere le offerte dello strumento richiesto direttamente nel timer EA e metterle nell'assemblea generale,
Se vuoi usare un indicatore, avrai bisogno di molti indicatori, perché la risoluzione sarà buona.
è diverso con le spie - non hanno orologi e gli eventi per tutti gli strumenti possono non accadere per molto tempo, o possono iniziare a ticchettare uno dopo l'altro.
Per esempio, nelle contrattazioni in cui c'è un ultimo prezzo, il dato Bid non è sempre presente, quindi controllate e scrivete o Bid o Last.
MetaDriver:
Propongo un compromesso: catturare i tick con le spie e inviarli immediatamente al capo Expert Advisor con un'etichetta al millisecondo (GetTickCount()). Expert Advisor li dispone secondo le loro etichette e li affetta in secondi blocchi.
Non è molto semplice, ma sarà preciso.
Non è una brutta variante. Secondo me, è l'unico che vale la pena prendere come base.
Urain:
A proposito, nelle contrattazioni in cui c'è un ultimo prezzo, il dato Bid non è sempre presente, quindi controlla e scrivi o Bid o Last.
MetaDriver:
Предлагаю компромисс: ловишь тики шпионами и сразу отправляешь в головной эксперт, снабдив милисекундной меткой(GetTickCount()). Эксперт их упорядочивает в соответствии с метками и нарезает секундные блоки.
Не очень просто, зато с точностью будет порядок.
Non è una cattiva opzione. A mio parere, l'unico che vale la pena prendere come base.
Buon chiarimento, non mi sono mai imbattuto in questo. Bisognerà tenerne conto.Potrebbe non essere una cattiva variante, ma il meccanismo di invio dei tick è assente nel terminale. Provate a pensare a 5-10 tick/sec su 16 coppie. Ancora una volta - è già andato)).
E non avete bisogno di una tale precisione - 1sec è sufficiente.
Grazie a tutti voi - il soggetto è finito.
Il problema è molto sgradevole a causa della sostituzione di barre di minuti con barre di timeframe superiori nel lontano passato storico, quando lo storico minuto per minuto non era ancora disponibile. L'unica soluzione che mi viene in mente è una complessa conversione di barre false in barre vere, e non può garantire la precisione. Non si tratta tanto di complessità quanto di dubbi sull'accuratezza di tale conversione.
Il compito iniziale è quello di verificare la pertinenza delle Fibonacci Time Zones tracciate. Se la zona è troppo lontana e la larghezza di lavoro di tutte le sue sottozone (fino a 34 larghezze di base per default) è così stretta che il bordo destro non raggiunge il momento presente, non la costruiamo, altrimenti creiamo un oggetto sul grafico. Ho provato a risolvere la cosa in due modi simili, uno dei quali lo cito. L'unica differenza è che nel primo modo, stavo ballando dall'inizio della storia usando
E nel secondo - al contrario (cito questo metodo), l'essenza e i risultati sono assolutamente gli stessi. Testato su NZD/USD.Se avete una storia falsa che termina in una data diversa dal 2009, come ho fatto io, riorganizzate le due Fibo Time Zone in modo che una di esse passi per quella data di ribaltamento, e la seconda sia già completamente sul lato destro della storia, dove tutte le barre sono reali. In questo caso, non dimenticate di cambiare i valori di startTime1, endTime1 e, se necessario, startTime2, endTime2 nello script; non potete regolare i prezzi - non è importante. Ora puoi testarlo... Il risultato sarà triste: se l'algoritmo di controllo per entrambi i fusi orari rimane invariato, funzionerà correttamente solo per la zona che ha un piede prima della data di svolta e un altro piede dopo, l'algoritmo la filtrerà erroneamente e ci impedirà di costruirla. Notate che entrambe le zone sono abbastanza vicine l'una all'altra e hanno larghezze simili, e queste due larghezze si estendono molto nel futuro e saranno rilevanti per molto tempo, infatti nessuna delle due dovrebbe essere filtrata (commentate le condizioni e vedete che entrambe le timezones sono costruite).
Risultato desiderato:![Ci devono essere due fusi orari Fibo Ci devono essere due fusi orari Fibo](https://c.mql5.com/3/7/2ftzs__1.PNG)
Da qualche parte tra la prima e la seconda linea di base 0 c'è un punto di svolta che separa le barre dei minuti false da quelle vere.
Se si rifiutano i calcoli nel numero di barre, e tutto viene calcolato con le date, allora certamente non darà la precisione desiderata, perché bisogna sottrarre i fine settimana (+/- ora di chiusura/apertura del mercato), le vacanze, ecc, e per non parlare delle barre mancanti in assenza di tick oltre il minuto e la divergenza dalla linea temporale.
Cosa consigliate come soluzione affidabile?
Errore nel caricamento del file in Expert Advisor. Trova 10 differenze. Il primo codice si riferisce allo script, il secondo all'Expert Advisor, sono identici Ctrl-C Ctrl-V. Il codice funziona nello script, non funziona nell'Expert Advisor.
Errore nel caricamento del file in Expert Advisor. Trova 10 differenze. Il primo codice si riferisce allo script, il secondo all'Expert Advisor, sono identici Ctrl-C Ctrl-V. Il codice funziona nello script, non funziona nell'Expert Advisor.
P.S. Per metterlo nella cartella comune, devi scrivere un file con il modificatore FILE_COMMON, o trovare qualcosa come questo (una variante per XP):
C:\Documents and Settings\Tutti gli utenti\Dati applicazioni\MetaQuotes\Terminal\Common\Files\
Cosa consigliate come soluzione affidabile?
Torna a MT4.
Ho contattato gli sviluppatori sul futuro di questo problema, ma sono rimasti in silenzio, quindi personalmente non ho idea di cosa mi riservi il futuro.
L'interruttore con le variabili di carattere non sembra funzionare...
Invece di:
'type' - tipo di espressione switch illegale
'Buy' - l'espressione costante non è integrale
Devo disegnarlo così:
Non è così chiaro ed è storto.
Funziona bene in altre lingue.
Devo scriverlo in un altro modo?
Switch non sembra funzionare con le variabili di carattere...
La documentazione dice (enfasi aggiunta) - Interruttore operatore:
Confronta il valore di un'espressione con le costanti in tutte le varianti di caso e passa il controllo all'operatore che corrisponde al valore dell'espressione. Ogni variante di caso può essere contrassegnata da una costante intera , una costante di carattere o un'espressione costante. Un'espressione costante non può includere variabili o chiamate di funzioni. L'espressione dell'operatore dicommutazione deve essere di tipo intero.
Funziona in altre lingue...