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
Ciao, mi è stato inviato un indicatore MA con tutti i livelli di cui ho bisogno. Il problema è che quando passo il mouse sull'indicatore (ogni MA), non mostra il periodo di quella MA. Come risolvere il problema? C'è un errore di sintassi costante quando si cambia il nomeIndicatorShortName("MASHKI =)"); Si prega di aiutare.
il nome del buffer dell'indicatore è impostato usando SetIndexLabel
1. Qual è il modo più economico per sapere che la chiamata alla funzione è sullo stesso tick della chiamata precedente?
Il tempo (TimeCurrent) può rimanere lo stesso, il tempo in ms da SymbolInfoTick, anche teoricamente.
Confrontare i tempi di bid, ask e ms è abbastanza costoso.
Non suggerisco di organizzare il controllo nell'Expert Advisor stesso, voglio ottenere una funzione universale indipendente.
La stessa domanda riguarda le operazioni commerciali. Come facciamo a sapere che qualcosa è cambiato nella lista degli ordini/posizioni (compresi i livelli aperti, SL e TP) dall'ultima esecuzione?
Dovrei mettere qualche bandiera in OnTrade (e resettarla quando ho finito), è il modo più economico.
Ma, di nuovo, vorrei una soluzione universale.
Chi ha qualche idea?
Andrey Khatimlianskii:
Esempio https://www.mql5.com/ru/code/16997
Resources.mqh.
Funzione IsNewPeriod
L'idea di base è di usare una funzione con statica all'interno.
Potete memorizzarlo in ID = GetMicroSecondsCount per ricordare e controllare i tick
Per lo stesso con gli ordini - controlla la magia
Non ho controllato lo pseudo codice qui sotto :)
2. domanda simile per i commerci. Come faccio a sapere se qualcosa è cambiato nella lista degli ordini/posizioni (compresi i livelli aperti, SL e TP) dall'ultima esecuzione?
In A, dobbiamo impostare un qualche tipo di flag in OnTrade (e resettarlo dopo l'esecuzione), è il modo più economico.
Ma, di nuovo, vorrei una soluzione universale.
Chi ha qualche idea?
Aggiungete qui le vostre condizioni (SL/TP ecc.).
Forum sul trading, sistemi di trading automatico e test di strategia
Organizzare un ciclo di overflow degli ordini
fxsaber, 2017.10.18 12:29
1. Qual è il modo più economico per sapere che la chiamata della funzione è sullo stesso tick della chiamata precedente?
Il tempo (TimeCurrent) può rimanere lo stesso, il tempo in ms da SymbolInfoTick, anche teoricamente.
Il confronto dei tempi di bid, ask e ms è troppo costoso.
Non suggerisco di organizzare il controllo nell'EA stesso, voglio ottenere una funzione universale indipendente.
Il problema qui non è l'economicità, ma l'affidabilità della numerazione delle zecche. Nel mio EA faccio le seguenti cose.
Questa è la versione della funzione per MT4. Numerazione attraverso l'indicatore di spia.
Non fornisco la versione MT5 della stessa funzione perché le cose inutili dovrebbero essere rimosse. Ma si basa su questa funzione.
Se restituisce non-zero - nuovo tick.
L'idea di base è di usare una funzione con statica all'interno.
Per ricordare e riconciliare i tic è possibile memorizzare in ID = GetMicroSecondsCount
Grazie!
Tutto il problema è solo questo ID unico (numero di tick), che non esiste.
GetMicroSecondsCount non aiuterà, perché cambierà tra le chiamate (è per questo che è stato progettato), mentre GetTickCount, teoricamente, potrebbe non cambiare su 2 tick adiacenti.
Il problema qui non è l'economicità, ma l'affidabilità della numerazione delle zecche. In un combattimento EA faccio così.
No, sarà sicuramente più lento di un confronto bid/ask/ms.
Qual è il problema dell'affidabilità? È solo il fatto di cambiare qualcosa che conta.
Aggiungete qui le vostre condizioni (SL/TP ecc.).
Immediatamente si è ricordato di questo codice.
Ma il punto è solo per evitare un'inutile enumerazione di tutti gli ordini.
È chiaro che possiamo fare di questo ciclo un unico ciclo per l'intero EA. Ma in questo caso dovremmo passare alla funzione un segno di cambiamento (potremmo anche non chiamarla).
No, sarà sicuramente più lento di un confronto bid/ask/ms.
Qual è il problema dell'affidabilità? L'unica cosa che conta è che qualcosa cambi.
Forum sul trading, sistemi di trading automatico e test di strategia
Qualsiasi domanda da PROFi a SUPER PROFi - 1.
Andrey Khatimlianskii, 2020.03.05 23:46
Il tempo (TimeCurrent) può rimanere lo stesso, il tempo in ms da SymbolInfoTick, teoricamente, anche.
Confrontare bid, ask e time in msc è costoso.
Particolarmente rilevante per MT4 dove il cambio di passo time_msc è di 1000ms.
Ma l'obiettivo è proprio quello di evitare la sovrapposizione inutile di tutti gli ordini.
È chiaro che possiamo rendere questo ciclo unico per tutta l'EA. Ma allora dobbiamo passare alla funzione un segno di cambiamento (potremmo anche non chiamarla).
Non capisco. Se qualcosa è cambiato nel database, l'unico modo per scoprirlo è confrontarlo con lo stato precedente del database.
È possibile confrontare ogni elemento di database corrispondente. Oppure si può calcolare l'hash da loro e confrontare gli hash.