Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 114
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
Per esempio ho bisogno di questa condizione if(iClose(NULL,HTF,4)<BlueLine) se viene eseguita DayDown = 1 ! D: Come si può lasciare DayDown a 1 e non fare il polling fino al giorno successivo?
Ho altri oggetti attaccati a 1 oggetto, e quando si elimina questo oggetto, il resto si blocca sul grafico
Ho capito così:
if(DayNext!= Day()) // Se un nuovo giorno, dovete fare il polling
{
// Sondaggio
se(iClose(NULL,1440,2)<BlueLine)
se(iOpen(NULL,1440,1)<BlueLine && iClose(NULL,HTF,1)>BlueLine)
PROBOI1 = 1;Print("Chiuso sopra BlueLine = ",iClose(NULL,HTF,1));
se(iClose(NULL,1440,2)>RedLine)
se(iOpen(NULL,1440,1)>RedLine && iClose(NULL,HTF,1)<RedLine)
PROBOI1 = -1;Print("Chiuso sotto RedLine = ",iClose(NULL,HTF,1));
DayNext = Day(); // Ricorda il giorno
}
Correggere se qualcosa non va! Inoltre, se voglio tracciare ciò che sta accadendo ora su un TF inferiore, devo scrivere Day al di fuori del Survey? Destra -STARIJ:
se(iClose(NULL,60,1)>RedLine&&iClose(NULL,1440,2)>RedLine) ) Sell = 1
https://www.mql5.com/ru/forum/226620#comment_6481536
Imposta il numero magico +1 per la condizione 1, il numero magico +2 per la condizione 2 e così via. In questo modo potete poi vedere se questa posizione è stata aperta con la condizione 1 o con la condizione 2...
Pomeriggio. Ho avuto successo solo per una posizione BAY. Il set di magia per la vendita non funziona per qualche motivo. Tutto è assolutamente identico, tranne il mago, naturalmente. Cosa ho fatto di male?
Cosa ho fatto di male?
Mi scuso per non aver trovato l'inizio della corrispondenza, ma vorrei subito consigliarvi di evitare condizioni e calcoli complessi al loro interno - questo rende il codice illeggibile e quindi complica la ricerca di errori logici, io scriverei il vostro codice così:
Se capisci quello che voglio dire, puoi modificare il codice che ti ho dato un po' di più, voglio dire di metterlo in una condizione separataif(OrderType()==OP_BUY....
Allora sarà molto più facile trovare errori logici, imho
Mi scuso per non aver trovato l'inizio della corrispondenza, ma vorrei consigliare immediatamente di evitare condizioni e calcoli complessi al loro interno - questo rende il codice illeggibile e di conseguenza complica la ricerca di errori logici, io scriverei il tuo codice così:
Se capisci quello che voglio dire, puoi modificare il codice che ti ho dato un po' di più - voglio dire di metterlo in una condizione separataif(OrderType()==OP_BUY....
Allora sarà molto più facile trovare errori logici, imho
Capito, grazie, ma per quanto ho capito non c'è differenza per la comprensione del codice da parte della piattaforma, mentre per me, rompere una condizione in diverse condizioni più brevi sembra essere più complicato nella ricerca di errori perché il numero di occorrenze di dichiarazioni una dentro l'altra aumenta. Ma forse hai ragione e passerò presto dalla tua parte. Per quanto riguarda la logica del codice - non ho trovato alcuna differenza tra il mio e il tuo e ancora non vedo l'errore.
Per quanto riguarda la logica del codice - non ho trovato alcuna differenza tra il mio e il tuo e ancora non vedo l'errore.
Esattamente così - la logica del codice è la stessa, ma se si dividono le condizioni, è più veloce trovare dove è l'errore logico, e nel tuo caso, se lo togli:
in una condizione separata, otteniamo un'ottimizzazione del codice - la condizione sarà controllata una volta invece di 4 volte come nel tuo esempio.
Controllate l'output nel diario dell'Expert Advisor usando il comando
Print()
per la registrazione per vedere quale frammento di codice viene eseguito e con quali parametri
Ragazzi,
Come si legge l 'indicatore Morning Flat nel codice di Expert Advisor?
Sto provando in questo modo e non funziona.
L'indicatore stesso