[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 377

 
Zhunko:

Tutti gli script e i consiglieri lavorano nei loro propri thread. Gli ordini commerciali da loro sono raccolti in una coda separata. Poi, vengono distribuiti ai flussi di libero scambio. Il numero di fili di libero scambio può essere uguale a 8.

Print() emette ciò che è disponibile per l'output al momento dell'output. La presenza di più thread può essere determinata attraverso il log. L'output viene visualizzato all'inizio della funzione start() e alla fine. Mettete un ritardo tra di loro. Esegui diversi Expert Advisors su diversi strumenti. Guarda il registro. Puoi vedere che tra le uscite di un Expert Advisor ci saranno le uscite di altri Expert Advisor.

Cioè, rispondendo alla domanda di Arles, se un Expert Advisor ha registrato degli ordini e si è "appisolato" per un po', in questo momento un altro EA piazzerà un ordine (inserire un'operazione a mercato) che non ha superato il limite dei fondi assegnati (supponiamo l'80% del deposito - entrambi gli EA avranno questa dimensione). E quando il 1° riprende il lavoro (e il terminale di gestione del denaro è già stato calcolato il giorno prima), sarà anche in grado di aprire una transazione superando i limiti stabiliti dall'Expert Advisor?

Se questo sistema (ipoteticamente) viene moltiplicato per diversi EA, allora può essercene uno in cui il Risk-Management sarà in un sistema critico?

Ho capito bene questo multithreading? - Se è così, è certamente un casino dal punto di vista finanziario. Ma, poiché la probabilità che questo accada è bassa nei piccoli conti, questo è solo ipotetico. E su conti più grandi, probabilmente scriveranno qualcosa loro stessi. Ma comunque, si rivela essere il caso?

E ho una domanda - questa è la posizione ufficiale o sono solo speculazioni ed esperimenti come il mio?
 
Chiripaha:

Cioè, rispondendo alla domanda di Arles, se un EA ha fatto la contabilità degli ordini e "ha fatto un pisolino" per un po', in quel momento un altro EA non ha superato il limite dei fondi assegnati (supponiamo l'80% del deposito - entrambi gli EA avranno tale dimensione) e piazzerà un ordine (entrare in un'operazione a mercato). E quando il 1° riprende il lavoro (e il terminale di gestione del denaro è già stato calcolato il giorno prima), anche lui/lei aprirà un affare che supera i limiti stabiliti dall'Expert Advisor?

Se questo sistema (ipoteticamente) viene moltiplicato per diversi Expert Advisors, allora può essercene uno in cui il Risk-Management sarà in un sistema critico?

Ho capito bene questo multithreading? - Se è così, allora è certamente un casino dal punto di vista finanziario. Ma poiché la probabilità è bassa nei piccoli conti, è solo ipotetico. E su conti più grandi, probabilmente scriveranno qualcosa loro stessi. Ma comunque, si rivela essere il caso?

E ho una domanda - questa è la posizione ufficiale o sono solo speculazioni ed esperienze come la mia?

Sai qualcosa sulla sincronizzazione?

MQL4 ha una funzione per la sincronizzazione a livello atomico.

 
Zhunko:

Sai qualcosa sulla sincronizzazione?

MQL4 ha una funzione per la sincronizzazione a livello atomico.


Vadim, l'hai provato? Non sincronizza nulla. Ci ho giocato di recente. Devi costruire la coda da solo. Sfortunatamente, tutto ciò che fa è ridurre il codice di tre righe. O forse non lo capisco.
 
Cioè, semplicemente applicando questa funzione si assicura che solo un EA sia in esecuzione alla volta, ma la coda non è allineata, un EA può essere inattivo e l'altro può essere chiamato due volte.
 
Zhunko:

Sai qualcosa sulla sincronizzazione?

MQL4 ha una funzione per la sincronizzazione a livello atomico.

Grazie per il link - ora ho un'idea di come organizzare questo multithreading in modo più efficiente. Anche se è solo un'ipotesi - non vedo una soluzione finora (nel senso della risoluzione del problema attuale). E aggiunge la posizione di Igor sul "semaforo".

Tuttavia - siete voi che avete completato un altro modello. Dove questi processi sono allineati, presumibilmente (ho dei dubbi), in modo coerente.

E sto cercando di rispondere alla domanda di Arles e ora alla mia - nel modello che ho descritto sopra. Lei, del resto, ha evitato di rispondere alla mia domanda. In questo modello si ha una mancata corrispondenza tra rischio e gestione.

Non conosco la sincronizzazione. Sono nuovo della programmazione. Ma, d'altra parte, sono bravo a contare i soldi, cioè sono bravo con le finanze. : ))

E le mie capacità finanziarie mi dicono che "la musica può smettere di suonare..." (da Margin Call) con questo approccio. : ))
 
Integer:

Vadim, hai provato ad applicarlo? Non sincronizza nulla. Ci ho giocato di recente. Devi costruire la coda da solo. Sfortunatamente, tutto ciò che fa è ridurre il codice di tre righe. O forse non lo capisco.
Proprio in linea con i miei dubbi...
 

Te lo dico (esattamente in questa forma) così! (Vi chiedo di prenderlo come uno scherzo).

I miei esperimenti, nonostante tutti i suggerimenti di controllare il multithreading, mostrano che finché non scambio i blocchi nei grafici, non funziona affatto. Non appena li ho scambiati tutti insieme, tutte le domande sono sparite.

Procederò quindi nelle mie creazioni sulla base di questo postulato, per il momento.

E il fatto che il Risk-Management possa "fallire" non per mia volontà - grazie, Vadim, che l'hai mostrato e attirato l'attenzione. Aiuterà ad evitare una tale situazione. Beh, per quelli che ne sono a conoscenza.

 

Buona giornata! La linea e è ok, puoi dirmi come fare?

//Comment("OrdersProfit  ",OrdersProfit(),"AccountBalance  ",AccountBalance(),"Equity  ",AccountEquity());
 
Dimka-novitsek:

Buona giornata! La linea e è ok, puoi dirmi come fare?


Comment("OrdersProfit ",OrdersProfit(), "AccountBalance ",AccountBalance(), "Equity ",AccountEquity());

Tali errori sono facilmente visibili nell'editor durante la compilazione.

 
Grazie!!!!!! Si riferiva a una funzione in generale... Non so come ho fatto a scriverlo così!