Perché dovrebbe esserci una variabile in più? Il controllo diretto funziona bene:
Una variabile dovrebbe essere creata quando si vuole vedere il valore di una funzione da diversi punti del programma, in modo da non doverla chiamare più volte.
La variabile è usata per facilitare la comprensione di un nuovo arrivato. È chiaro ora a cosa serve?
Buon pomeriggio. Ho bisogno di chiudere in qualche modo una posizione a fine giornata (puramente Expert Advisor; barre giornaliere). La modellazione è per aperture o per zecche. Cioè o ci accontentiamo delle aperture o cadiamo sulla nostra testa cercando di analizzare i giorni precedenti su qualche timeframe di 15 minuti e cogliere l'inizio e la fine di quello attuale. Ci sono soluzioni a questo problema? Vedo diverse opzioni virtuali-ipotetiche:
1) Hacking: chiudere una posizione a qualsiasi prezzo e in qualsiasi momento. Supponiamo ingiusto, ma potremmo semplicemente chiudere la posizione al prezzo richiesto senza perversione.
2) Per simulare l'apertura e la chiusura in una barra. Cioè prima un tick aperto, poi un tick chiuso.
3) Impostare un ordine che si chiuda automaticamente a una certa ora (cioè a fine giornata).
Qual è il fallimento se alla funzione viene passato l'ID del grafico corrente dove l'indicatore è in esecuzione e il nome dell'indicatore corrente che è in esecuzione sul grafico corrente?
tuner: Qual è il fallimento se la funzione passa l'ID del grafico corrente, su cui l'indicatore è in esecuzione, e il nome dell'indicatore corrente che è in esecuzione sul grafico corrente?
Se ho capito bene e hai bisogno del numero della sottofinestra in cui funziona il tuo codice di prova dell'indicatore allegato, allora, in base alla descrizione della funzione, è meglio applicare la sua seconda versione.
Codice di prova (ho aggiunto alcune righe al tuo):
L'aiuto per la funzione ChartWindowFind() ha un buon esempio ancora su questo argomento (anche in termini di commenti):
//+------------------------------------------------------------------+//| Сообщает номер окна графика с указанным индикатором |//+------------------------------------------------------------------+int GetIndicatorSubWindowNumber(long chartID=0,string short_name="")
{
int window=-1;
//--- if((ENUM_PROGRAM_TYPE)MQLInfoInteger(MQL_PROGRAM_TYPE)==PROGRAM_INDICATOR)
{
//--- функция вызвана из индикатора,имя не требуется
window=ChartWindowFind();
}
else
{
//--- функция вызвана из эксперта или скрипта
window=ChartWindowFind(0,short_name);
if(window==-1) Print(__FUNCTION__+"(): Error = ",GetLastError());
}
//---return(window);
}
Se ho capito bene e hai bisogno del numero della sottofinestra in cui funziona il tuo codice di prova dell'indicatore allegato, allora, in base alla descrizione della funzione, è meglio applicare la sua seconda versione.
Codice di prova (ho aggiunto alcune righe al tuo):
L'aiuto della funzione ChartWindowFind() ha un buon esempio ancora su questo argomento (anche in termini di commenti):
Grazie per il suggerimento, ma ho un compito leggermente diverso, a causa del quale l'uso della seconda variante della funzione non ha senso: voglio contare il numero di indicatori con un nome specificato in tutti i grafici aperti del terminale. Il compito è già stato risolto, ma voglio semplificare il codice risultante usandoChartWindowFind() della prima variante ma si è scoperto che questa funzione non funziona non solo con altre finestre ma anche con quella corrente.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Perché dovrebbe esserci una variabile in più? Il controllo diretto funziona bene:
Una variabile dovrebbe essere creata quando si vuole vedere il valore di una funzione da diversi punti del programma, in modo da non doverla chiamare più volte.Fare il check-in più spesso. Ci saranno meno domande. Ci sarà una migliore conoscenza.
Buon pomeriggio. Ho bisogno di chiudere in qualche modo una posizione a fine giornata (puramente Expert Advisor; barre giornaliere). La modellazione è per aperture o per zecche. Cioè o ci accontentiamo delle aperture o cadiamo sulla nostra testa cercando di analizzare i giorni precedenti su qualche timeframe di 15 minuti e cogliere l'inizio e la fine di quello attuale. Ci sono soluzioni a questo problema? Vedo diverse opzioni virtuali-ipotetiche:
1) Hacking: chiudere una posizione a qualsiasi prezzo e in qualsiasi momento. Supponiamo ingiusto, ma potremmo semplicemente chiudere la posizione al prezzo richiesto senza perversione.
2) Per simulare l'apertura e la chiusura in una barra. Cioè prima un tick aperto, poi un tick chiuso.
3) Impostare un ordine che si chiuda automaticamente a una certa ora (cioè a fine giornata).
Qualsiasi aiuto sarebbe apprezzato. Grazie.
Un bug?
2015.04.13 20:51:10.710 indi AUDJPY,H1: Sottoquadro indicatore richiesto: -1
Un bug?
2015.04.13 20:51:10.710 indi AUDJPY,H1: Sottoquadro indicatore richiesto: -1
No, non è un bug.
Valore di ritorno.
Numero di sottofinestra in caso di successo. Zero indica la finestra principale del grafico. Restituisce -1 in caso di fallimento.
No, non è un bug.
Qual è il fallimento se la funzione passa l'ID del grafico corrente, su cui l'indicatore è in esecuzione, e il nome dell'indicatore corrente che è in esecuzione sul grafico corrente?
Se ho capito bene e hai bisogno del numero della sottofinestra in cui funziona il tuo codice di prova dell'indicatore allegato, allora, in base alla descrizione della funzione, è meglio applicare la sua seconda versione.
Codice di prova (ho aggiunto alcune righe al tuo):
L'aiuto per la funzione ChartWindowFind() ha un buon esempio ancora su questo argomento (anche in termini di commenti):
Se ho capito bene e hai bisogno del numero della sottofinestra in cui funziona il tuo codice di prova dell'indicatore allegato, allora, in base alla descrizione della funzione, è meglio applicare la sua seconda versione.
Codice di prova (ho aggiunto alcune righe al tuo):
L'aiuto della funzione ChartWindowFind() ha un buon esempio ancora su questo argomento (anche in termini di commenti):
Buona sera!
Non riesco a capire: nella funzione di inizio, il compilatore richiede "return" - la funzione deve restituire un valore".
Quale valore deve ritornare in questo caso?
int start()
{
if (Ordini!=0||Ord > 0)
{
CritCloseBuy();
CritCloseSell();
}
else
{
CritOpen();
}
return;
}
Potrebbe essere questa la ragione per cui OrderClose() non vede una posizione aperta?
Buona sera!
Non riesco a capire: nella funzione di inizio, il compilatore richiede "return" - la funzione deve restituire un valore".
Quale valore deve ritornare in questo caso?
int start()
Può essere questa la ragione per cui OrderClose() non vede una posizione aperta?