Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1930
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
Non capisco un po' la logica. Gli eventi di apertura della posizione, modifica di SL, chiusura della posizione su diversi simboli sono monitorati. Apertura della posizione - cerca se una finestra con il simbolo dato è aperta (cerca l'id della finestra), se è aperta, allora disegniamo i livelli e poi monitoriamo lo SL trawl. In caso contrario, o apriamo una finestra con il simbolo e il timeframe richiesti e disegniamo i livelli o non la apriamo. L'evento di modifica, trova la finestra del simbolo richiesto, i livelli sono già stati disegnati e cambia il colore del livello o cancellalo e disegna di nuovo il livello.
In generale, per escludere l'influenza del cliente, all'inizio del lavoro dovremmo analizzare le posizioni e le finestre e aprire le finestre per i simboli con posizioni aperte e non aperte.
La cosa importante in tutto questo è un algoritmo di trawl correttamente funzionante, cioè le operazioni di trading stesse.
Il disegno è in background, è informativo e non ha nulla a che fare con la redditività del sistema.
Quindi, se c'è una posizione ma il grafico è chiuso e non si è chiuso da solo, non c'è bisogno di aprire nulla, l'algoritmo a strascico funzionerà e gli stop saranno spostati. Una situazione molto peggiore è quando il grafico è ovviamente chiuso, ma il programma lo ha aperto di nuovo letteralmente per disegnare il grafico - questo è già male.
Colleghi - ho esportato un file di cache di ottimizzazione nel cloud, come posso usarlo su un altro computer per selezionare una variante per le offerte?
Risposta:
Se qualcuno ne ha bisogno - qui.
La cosa importante in tutto questo è un algoritmo di pesca a strascico che funziona correttamente, cioè gli stessi scambi.
Il disegno è in background, è informativo e non ha nulla a che fare con la redditività del sistema.
Quindi, se c'è una posizione ma il grafico è chiuso e non si è chiuso da solo, non c'è bisogno di aprire nulla, l'algoritmo a strascico funzionerà e gli stop saranno spostati. È molto peggio, quando il grafico è chiuso, ma il programma lo ha aperto di nuovo letteralmente per disegnare il grafico - questo è già male.
Possiamo farlo anche così. Ma in questo caso, se c'è un grafico aperto basato sull'evento, può essere disegnato. In generale, possiamo ridisegnare i livelli ogni volta per evitare confusione. Abbiamo tutti i dati per questo. Il livello di innesco per la rete a strascico, il passo della rete a strascico, il prezzo della posizione. Il numero di livello e il numero di livelli attivati per la posizione sono facilmente calcolabili.
Anche questo è possibile. Ma poi disegniamo se c'è un grafico aperto per l'evento. In generale, i livelli possono essere ridisegnati ogni volta per evitare confusione. Abbiamo tutti i dati per questo. Livello di innesco della rete a strascico, passo della rete a strascico, prezzo della posizione. Il numero di livello e il numero di livelli attivati per una posizione sono facilmente calcolabili.
Direi che se c'è una posizione, dovremmo disegnare in anticipo i livelli che faranno scattare una pesca a strascico. Se è apparsa un'ulteriore posizione, ridisegna le linee ai nuovi livelli anche in avanti.
Non vedo l'utilità di cambiare il colore dopo il passaggio/modifica. Dopo la chiusura delle posizioni tutte le linee possono essere cancellate.
Sull'esempio mostrato come dovrebbe essere
Gli oggetti dove le posizioni saranno aperte sono disegnati qui, è solo informativo, questo è tutto
---
P.S. Al momento non posso fare i conti, purtroppo
Domanda su OnTimer
Se l'evento del timer si verifica prima dell'esecuzione del programma, aspetterà (il programma salterà l'evento del timer), o il programma si interromperà e inizierà a lavorare sul nuovo evento del timer? Rimarrà appeso in un loop infinito, o andrà in loop ogni secondo?
Non c'è alcuna indicazione diretta nei documenti sulla priorità dell'evento del timer e sul corso del programma, solo sull'ordine degli eventi.
O forse non ho capito bene. L'evento del timer su cui è iniziata l'azione conta come se fosse nella coda?
Banchine:
EventSetTimerNon può essere avviato più di un evento timer per ogni programma. Ogni programma mql4 e ogni grafico ha la sua coda di eventi, dove vengono memorizzati tutti gli eventi appena arrivati. Se c'è già un evento Timer nella coda o se questo evento è in stato di elaborazione, un nuovo evento Timer non viene messo nella coda di mql4-program.
Non c'è alcuna indicazione diretta nei documenti sulla priorità dell'evento del timer e sul corso del programma, solo sull'ordine degli eventi.
O forse non ho capito bene. L'evento del timer su cui è iniziata l'azione conta come se fosse nella coda?
Banchine:
EventSetTimerNon può essere avviato più di un evento timer per ogni programma. Ogni programma mql4 e ogni grafico ha la sua coda di eventi, dove vengono memorizzati tutti gli eventi appena arrivati. Se c'è già un evento nella coda di Timer, o se questo evento è in stato di elaborazione, un nuovo evento Timer non viene messo nella coda del programma mql4.
Gli eventi NON sono tempi. Sono gestiti in OnXXX uno per uno, senza interrompere nessuna delle funzioni.
Finché OnInit non termina nessun altro gestore OnTimer OnTick sarà chiamato dal terminale. (A meno che non lo si strappi da soli come funzione).
Gli eventi NON sono interruzioni. Vengono processati in OnXXX uno per uno, senza interrompere le funzioni di testo.
Finché OnInit non termina, nessun altro gestore OnTimer OnTick sarà chiamato dal terminale. (A meno che non lo si strappi da soli come funzione).
Grazie)
La cosa importante in tutto questo è un algoritmo di pesca a strascico che funziona correttamente, cioè gli stessi scambi.
Il disegno è in background, è informativo e non ha nulla a che fare con la redditività del sistema.
Quindi, se c'è una posizione ma il grafico è chiuso e non si è chiuso da solo, non c'è bisogno di aprire nulla, l'algoritmo a strascico funzionerà e gli stop saranno spostati. È molto peggio, quando un grafico è chiuso, ma il programma lo ha aperto di nuovo letteralmente per disegnare un grafico - questo è male.
Mio Dio - perché sei stato mandato all'autolavaggio? Hai scritto in un posto sbagliato e variabili sbagliate: z o v...?
Sembra che dovrebbe funzionare. Non l'ho testato.
Logica del disegno. Non controllo i livelli, disegno di nuovo e sotto il prezzo, se in Buy disegno in grigio, sopra in blu, in Sell, se sopra il livello di prezzo, è grigio, sotto in rosso.
Sì, ho dimenticato di impostare la rimozione dei livelli)))