[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 874
e come identificare l'arrivo di una nuova candela?
Ci sono diverse opzioni, eccone un paio:
1. all'avvio dell'Expert Advisor, ricorda il numero totale di barre sul grafico e monitora i cambiamenti del numero di barre durante l'esecuzione dell'Expert Advisor:
//начало кода - самый верхint counted;
int init(){
counted=Bars; // запомним общее количество баров на активном ТФ
Myorders();
return(0);
}
int start(){
Myorders();
........................
// я рассполагаю этот код в самом конце ф-ции start() - мне так удобнееint bar = Bars;
if (bar != counted ) { // сравним запомненное кол-во баров с текущим если они равны тогда нет нового бара на активном ТФ
counted= bar;
// код который необходимо выполнить по закрытию/открытию бара
}
return(0);
}
2. ricordate il tempo dell'ultima barra aperta; il codice è circa lo stesso,
use datetime last=Time[0];
e confrontare last==Time[0] --> se l'ultimo tempo aperto è lo stesso dell'ultima volta, se non è uguale, significa che abbiamo una nuova barra
Non so quale schema sia più efficiente 1 o 2 - ho dei dubbi sul download automatico della cronologia nel terminale, ma non vedo problemi
1. all'avvio dell'Expert Advisor, ricorda il numero totale di barre sul grafico e controlla i cambiamenti del numero di barre durante l'esecuzione dell'Expert Advisor:
Andrei01: Non funzionerà. il numero di barre è limitato.
Questo funziona, perché il numero totale non ha importanza, ci interessa solo il momento in cuiil numero di barre sul graficoè cambiato, in questo momento la variabile bar != counted, fate attenzione, ricordo volutamente int bar = Bars; - per non perdere il valore di Bars, e poi confrontare e assegnare questo valore counted = bar; - e si potrebbe fare tutto con Bars senza la variabile extra - ma ho deciso di controllare due volte
Ho anche detto che ci può essere un piccolo kazutz durante l'auto-pompaggio della storia - può essere buono o può essere cattivo, se usiamo il tempo di apertura del bar, funzionerà sicuramente - il tempo di apertura del bar non cambierà mai
interessato solo al momento in cui il numero di barre sul grafico è cambiato
Una volta raggiunto il valore massimo impostato nelle impostazioni, il numero di barre sul grafico non dovrebbe aumentare. anche se può essere che salti più o meno uno al massimo, non ho controllato, allora potrebbe essere possibile prenderlo, ma questa è un'opzione non documentata.
Andrei01: Dopo aver raggiunto il valore massimo impostato nelle impostazioni, il numero di barre sul grafico non dovrebbe aumentare. anche se potrebbe saltare, non ho controllato, allora potrebbe essere possibile prenderlo, ma questa è già un'opzione non documentata.
Questa era la domanda. Ho controllato quando viene raggiunto il massimo... Bars non cambia, ma rimane uguale a Max bars nella finestra (vedi proprietà).
questa era la domanda. Ho controllato quando viene raggiunto il massimo... Bars non cambia, ma rimane uguale a Max bars nella finestra (vedi proprietà).
Beh, dovrebbe esserlo, quindi la prima opzione non funzionerà.
il tempo di una nuova candela è Time[0].
e come posso determinare ulteriormente l'arrivo di una nuova candela?
e come determinare ulteriormente l'arrivo di una nuova candela?
memorizzare il precedente in una variabile e confrontare.
Lo proverò ora...
e come identificare l'arrivo di una nuova candela?
Ci sono diverse opzioni, eccone un paio:
1. all'avvio dell'Expert Advisor, ricorda il numero totale di barre sul grafico e monitora i cambiamenti del numero di barre durante l'esecuzione dell'Expert Advisor:
2. ricordate il tempo dell'ultima barra aperta; il codice è circa lo stesso,
use datetime last=Time[0];
e confrontare last==Time[0] --> se l'ultimo tempo aperto è lo stesso dell'ultima volta, se non è uguale, significa che abbiamo una nuova barra
Non so quale schema sia più efficiente 1 o 2 - ho dei dubbi sul download automatico della cronologia nel terminale, ma non vedo problemi
Ci sono diverse opzioni, eccone un paio:
1. all'avvio dell'Expert Advisor, ricorda il numero totale di barre sul grafico e controlla i cambiamenti del numero di barre durante l'esecuzione dell'Expert Advisor:
Non funzionerà. il numero di barre è limitato.
Questo funziona, perché il numero totale non ha importanza, ci interessa solo il momento in cui il numero di barre sul grafico è cambiato, in questo momento la variabile bar != counted, fate attenzione, ricordo volutamente int bar = Bars; - per non perdere il valore di Bars, e poi confrontare e assegnare questo valore counted = bar; - e si potrebbe fare tutto con Bars senza la variabile extra - ma ho deciso di controllare due volte
Ho anche detto che ci può essere un piccolo kazutz durante l'auto-pompaggio della storia - può essere buono o può essere cattivo, se usiamo il tempo di apertura del bar, funzionerà sicuramente - il tempo di apertura del bar non cambierà mai
interessato solo al momento in cui il numero di barre sul grafico è cambiato
Dopo aver raggiunto il valore massimo impostato nelle impostazioni, il numero di barre sul grafico non dovrebbe aumentare. anche se potrebbe saltare, non ho controllato, allora potrebbe essere possibile prenderlo, ma questa è già un'opzione non documentata.
Questa era la domanda. Ho controllato quando viene raggiunto il massimo... Bars non cambia, ma rimane uguale a Max bars nella finestra (vedi proprietà).
questa era la domanda. Ho controllato quando viene raggiunto il massimo... Bars non cambia, ma rimane uguale a Max bars nella finestra (vedi proprietà).
Beh, è così che dovrebbe essere, quindi la prima opzione non funziona.
Sì, la prima opzione non funziona, anche se sto lavorando su un tempo non standard, la seconda sì. Grazie a tutti!