Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1802

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
Dobro. Lasciate che lo metta in semplici termini russi.
Stai andando a pescare.
Oppure puoi prendere subito tutto quello che ti serve dalla dispensa (OnInit), pescare senza correre e, quando arrivi a casa, mettere tutto nella dispensa e nel frigorifero (OnDeinit).
Forse lo sapevi qui sul forum. Bisogna solo ascoltare e sentire quello che ti viene detto a volte.
Altrimenti si fa una domanda, si ottiene una risposta, si dice "stronzate" e si fa come si crede.
Bisogna prima pensare alla domanda, fare domande, e poi iniziare l'editing.
Sapete che la cosa più semplice nella programmazione è stampare il codice? E la parte del leone nello sviluppo è il pensiero sulla logica.
Questa è un'analogia ridicola. In questo caso rendiamo tutte le variabili, gli oggetti di classe ecc. globali e non creiamoli su richiesta o forse un oggetto grafico è qualcos'altro (certamente non una canna da pesca o una rete :)) ? Quindi il mio approccio è abbastanza razionale e giustificato, è solo che mql o metatrader si sbaglia.
In questo modo il segnale sarà perso
O sono ottuso, o non c'è condizione se ci sono ordini aperti E c'è un segnale e la barra è già nuova.
Se i segnali sono lunghi, più di una barra multipla, funzionerà anche sul primo tick della barra.
L'unica questione è quando aprire un ordine, quando appare il segnale o al primo tick della barra successiva.O sono ottuso, o non c'è condizione se ci sono ordini aperti E c'è un segnale e la barra è già nuova.
Se i segnali sono lunghi, più di una barra multipla, funzionerà anche sul primo tick della barra.
L'unica questione è quando l'ordine dovrebbe essere aperto, al momento del segnale o al primo tick della barra successiva.Il codice ora assomiglia a questo:
Prima di aprire, controlla se c'è una posizione aperta su questa candela. In caso contrario, apritelo.
In linea di principio, un ordine aperto si chiuderebbe normalmente sui tick di una barra già aperta. MakarFX e Artem hanno notato correttamente. Pertanto, la cosa giusta da fare sarebbe questa:
In linea di principio, un ordine aperto si chiuderebbe normalmente sui tick di una barra già aperta. MakarFX e Artem hanno notato correttamente. Pertanto, la cosa giusta da fare è questa:
Artem ha ragione, dovrebbe essere così
Hai ragione, Artem, dovrebbe essere così.
Il risultato sarà lo stesso qui. Solo il codice è più complicato. Stai scrivendo lo stesso codice in due funzioni diverse, e sarà meno leggibile. Anche se ognuno scrive come gli piace o si sente a suo agio...
C'è molto da fare qui.
Una posizione aperta ha un tempo di apertura. Il tempo di apertura può essere confrontato con il tempo di una candela - per scoprire se il tempo di apertura della posizione è dentro la candela (e questa è la candela corrente).
E perché si scopre sempre il numero di ordini in tutti gli esempi? E se ci sono zero ordini, allora li apri. Questo limita molto le possibilità.
In generale, dovremmo concentrarci solo sul numero di ordini/posizioni per una direzione strategica molto stretta.
Qui, il risultato sarà lo stesso. Solo il codice è più confuso. Stai scrivendo lo stesso codice in due funzioni diverse, e sarà meno leggibile. Anche se ognuno scrive come gli piace o si sente a suo agio...
Il tuo codice
(Un bar si è aperto e nessun ordine è stato piazzato)
controllato per un segnale - nessun segnale
... aspettiamo la prossima barra.
Hai ripetuto lo stesso errore dell'ultima volta
P.S.
questo è
deve essere effettuato dopo l'apertura dell'ordineHai ragione, Artem, dovrebbe essere così
Nel vostro codice, se una posizione è aperta, un'altra non si aprirà con il segnale opposto. Cioè, prima di tutto, quando arriva il segnale, bisogna controllare se c'è una posizione opposta e chiuderla.
Ma di nuovo, tutto questo limita molto le possibilità di migliorare le strategie.
Dovremmo evitare di legarci alla presenza/assenza di ordini (specialmente in quattro - ordini pendenti (che è corretto) e posizioni (che è sbagliato)).
No, è corretto e necessario avere a portata di mano il numero di ordini e posizioni in base ai loro tipi. Ma è sbagliato basarsi sull'assenza di ordini solo per i segnali.
In generale, il modo corretto è avere funzioni per contare gli ordini e le posizioni (una funzione che riempie la struttura quando cambia il numero di ordini e posizioni), funzioni per aprire/chiudere posizioni, funzioni per impostare ordini e funzioni di allarme. Funzioni di varie reti a strascico e ottenimento di dati dagli indicatori. Plus - capacità di confrontare i dati di una posizione (aperta o chiusa) con alcuni valori.
Qualsiasi strategia può essere costruita a partire da questo set.