Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1228
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
Mettilo dentro. Non l'ho fatto. Si apre in pacchi. La magia - la ignora.
Quando scrivi del codice, traduci la sua logica in russo. All'inizio, c'è un ciclo in cui vengono fatti dei confronti e se l'ordine selezionato non è un ordine a mercato, allora alla prossima iterazione; se il simbolo non è EURUSD, allora alla prossima iterazione e se il magik non è uguale al vostro magik, allora alla prossima iterazione. Alla fine del ciclo si conta il numero di iterazioni passate prima della fine del ciclo. Il ciclo finisce e il programma inizia ad aprire gli ordini secondo le condizioni. Considerando che una delle condizioni è sempre vera, viene aperto un ordine. E questo accade ad ogni tick.
Quando scrivi il codice, traduci la sua logica in russo. Si ha prima un ciclo in cui si fanno dei confronti; se l'ordine selezionato non è un ordine di mercato, allora alla prossima iterazione; se lo strumento non è l'Eurobucks, allora alla prossima iterazione; e se il magik non è uguale al tuo magik, allora alla prossima iterazione. Alla fine del ciclo si conta il numero di iterazioni passate prima della fine del ciclo. Il ciclo finisce e il programma inizia ad aprire gli ordini secondo le condizioni. Considerando che una delle condizioni è sempre vera, viene aperto un ordine. E questo accade ad ogni tick.
Capisco. Ma in questo caso, se(OrderMagicNumber() == MagicNumber)continua, l'ordine che è stato piazzato viene accettato per un ordine piazzato da Magic(o). Ciò significa che l'ordine piazzato manualmente su EUROBAX deve essere ignorato e un altro ordine deve essere aperto da un Expert Advisor con Magic.
OrdersTotal() - questo è il problema che mette fine a qualsiasi manipolazione con Magic.Ho capito. Ma in questo caso: if(OrderMagicNumber() == MagicNumber)continua; Gli ordini piazzati sono presi per ordini piazzati da Magic(s). Cioè, un ordine piazzato manualmente su Eurobucks dovrebbe essere ignorato, e un altro dovrebbe essere aperto da un EA con Magic.
OrdersTotal() - questa è l'infestazione che mette fine a qualsiasi manipolazione del mago.Il codice viene eseguito dall'alto verso il basso. Dopo il ciclo si ha il piazzamento degli ordini. if(OrderMagicNumber() == MagicNumber)continue; Questo interrompe l'esecuzione del corpo del ciclo e inizia una nuova iterazione del ciclo. Il ciclo terminerà e inizierà l'inserimento dell'ordine. Questo è il modo in cui l'avete scritto. Il numero totale di ordini non ha niente a che vedere con questo. Se vuoi fare una condizione che se non ci sono ordini piazzati con il tuo magik e il tuo strumento, allora il Codice di immissione degli ordini dovrebbe essere diverso.
Scorrere i numeri d'ordine. Se un ordine viene trovato con il nostro magik e sul nostro strumento, allora return - exit from start. O una bandiera che il tuo ordine è lì e all'inizio ontik o inizio controllo sulla bandiera.
Ed è meglio creare un EA da un modello per creare uno script EA, un indicatore. I campi del codice principale saranno più corretti.
Il codice viene eseguito dall'alto verso il basso. in un ciclo secondo le regole del ciclo. Dopo il ciclo si hanno ordini di piazzamento. if(OrderMagicNumber() == MagicNumber)continue; Questo interrompe l'esecuzione del corpo del ciclo e inizia una nuova iterazione del ciclo. Il ciclo terminerà e inizierà l'inserimento dell'ordine. Questo è il modo in cui l'avete scritto. Il numero totale di ordini non ha niente a che vedere con questo. Se vuoi fare una condizione che se non ci sono ordini piazzati con il tuo magik e il tuo strumento, allora il Codice di immissione degli ordini dovrebbe essere diverso.
Scorrere i numeri d'ordine. Se un ordine viene trovato con il nostro magik e sul nostro strumento, allora return - exit from start. O una bandiera che il tuo ordine è lì e all'inizio ontik o inizio controllo sulla bandiera.
Ed è meglio creare un EA da un modello per creare uno script EA, un indicatore. I campi del codice principale saranno più corretti.
Immagino che questa non sia la soluzione, ma in che direzione lavorare?
Ho provato un paio di dozzine di varianti. O apre un ordine, o senza alcuna interruzione, tuyvukuchu.
Qui, a proposito, su OrderSekect - una variabile di tipo bool dovrebbe essere impostata, altrimenti giurerà.
Questa non è una soluzione, ma da che parte andare?
Ho già provato un paio di dozzine di varianti. O apre un solo ordine, o si apre senza alcuna interruzione.
Qui a proposito, su OrderSekect - una variabile di tipo bool dovrebbe essere impostata, altrimenti giurerà.
Sì, dovrebbe, ritorna al nulla.
È meglio che tu scriva l'algoritmo, cosa che vuoi fare.
Questa non è una soluzione, ma da che parte andare?
Ho già provato un paio di dozzine di varianti. O apre un solo ordine, o si apre senza alcuna interruzione.
Qui a proposito, su OrderSekect - una variabile di tipo bool dovrebbe essere impostata, altrimenti giurerà.
Invece di return(0) dovrebbe essere continue
Persone buone e competenti! Aiuto per implementare l'indicatore Envelopes in un EA MT5. L'EA stesso deve elaborare ogni tick (senza saltare). Ho provato alcune varianti, ho guardato nella documentazione, mi sembra che mi piaccia la variante, ma è per il gestore OnCalculate. Non ho ancora provato con la libreria standard... Bene, ecco la mia implementazione iniziale:
Nel tester visivo ottengo:
Sì, dovrebbe giurare, ritorna al nulla.
È meglio che tu scriva l'algoritmo che vuoi fare, non è chiaro cosa ti serve.
Nel primo messaggio c'è il codice. È facile: rompiamo il precedente massimo/basso - apriamo un accordo. Gli ordini aperti da questo EA non devono incrociare gli altri ordini aperti manualmente o da un altro EA, cioè l'EA deve lavorare in modo indipendente.
Ho cercato su Internet. È un argomento piuttosto banale, ma ci sono molte varianti. Sembra essere una cosa semplice, e non si trova da nessuna parte.
Nel primo messaggio, il codice. È semplice: rompi il massimo/basso precedente - apri un trade. Gli ordini aperti da questo EA non devono sovrapporsi ad altri ordini aperti manualmente, o a quelli aperti da un altro EA, cioè l'EA deve lavorare indipendentemente.
Ho cercato su Internet. È un argomento piuttosto banale, ma ci sono molte varianti. Sembra essere una cosa semplice, e non si trova da nessuna parte.
invece di return(0) il significato dovrebbe essere continue