Regole della struttura. Imparare a strutturare i programmi, esplorare le possibilità, gli errori, le soluzioni, ecc. - pagina 13

 

Ci vuole solo un po' di pratica per capire il problema. Non sto parlando del caso manuale+automatico - non lo pratico. Ma dalla mia esperienza personale:

"Che cazzo succede con certi ordini? Cosa sta succedendo in generale?

Quindi, diamo un'occhiata alla storia. Sembra essere diventato chiaro. Qualche tipo di fallimento (dalla parte del broker, per esempio).

Non c'è modo di intervenire manualmente - ci sono centinaia di ordini (e non tutti sono problematici). Questa merda non è stata prevista nella ST.

Per interferire nel codice TS - è necessario pensare a lungo e intensamente come gestirlo correttamente. Cosa posso fare ora?

Beh, sto scrivendo uno script complicato che cambia alcuni ordini nel modo in cui vedo ora".


Ci vorrà un sacco di tempo per scrivere questa sceneggiatura sulle reti. Ma su MQL4 ci vorrà un ordine di grandezza in meno.

Direi addirittura che su netting è improbabile che tu capisca e senta affatto il problema nell'esempio di cui sopra.

Pratica e solo pratica di trading reale.

 
MetaDriver:
Sono tutte stronzate.
Vorrei. Perché non c'è un aggregatore di strategie decente per il 5? E' totalmente a posto.
 
hrenfx:

Ci vuole solo un po' di pratica per capire il problema. Non sto parlando del caso manuale+automatico - non lo pratico. Ma dalla mia esperienza personale:

"Che cazzo succede con certi ordini? Cosa sta succedendo in generale?

Quindi, diamo un'occhiata alla storia. Sembra essere diventato chiaro. Qualche tipo di fallimento (dalla parte del broker, per esempio).

Non c'è modo di intervenire manualmente - ci sono centinaia di ordini (e non tutti sono problematici). Questa merda non è stata prevista nella ST.

Per interferire nel codice TS - è necessario pensare a lungo e intensamente come gestirlo correttamente. Cosa posso fare ora?

Beh, sto scrivendo uno script complicato che cambia alcuni ordini nel modo in cui vedo ora".


Ci vorrà un sacco di tempo per scrivere questo script sulle reti. Ma in MQL4 ci vorrà molto meno tempo.

Il driver di mercato (il sincronizzatore) trova semplicemente (per deduzione) la differenza tra la posizione reale (sul server del broker) e la posizione di mercato raccomandata (segnale dalla strategia) e invia un ordine per eliminare la differenza.E non importa quali fallimenti ci siano stati e da parte di chi PRIMA di questo momento, la cosa migliore da fare in qualsiasi situazione immediatamente dopo qualsiasi fallimento di qualsiasi natura o perdita/recupero di connessione (per qualsiasi durata!) è portare la posizione di mercato a quella raccomandata. Non ci sono eccezioni a questo assioma.


Direi addirittura che su netting è improbabile che tu capisca e senta il problema nell'esempio di cui sopra.

Questo è sicuro.

Pratica e solo pratica di trading reale.

Beh, nessuno lo mette in dubbio.
 
TheXpert:
Se solo. Perché non c'è un aggregatore normale per il 5? È assolutamente sul punto.

Se stiamo parlando di un aggregatore di strategie "per il mercato", cioè per eseguire un mucchio di EAs isolati sul reale (o al massimo su una demo), con la possibilità di tracciare il loro commercio individuale - a me, per esempio, non frega un cazzo di questo compito... :)))))

Pertanto, mantenere questo toolkit è molto più difficile che scriverlo. Quindi, non ci sono masochisti, ecco perché non esiste un "aggregatore normale".

Per quanto riguarda il "non normale", cioè per l'uso individuale con la combinazione di tutte le strategie in un EA - ho mostrato la strada, ti ho anche mostrato il driver gratuitamente. Pronto integratore-aggregatore, qual è il problema? ;)

 
MetaDriver:

Avete un sacco di problemi con esso, e non potete risolverlo in modo pulito senza CCA di ordini a tutti.

Gli ordini OCO non sono necessari. Tutta la stessa architettura descritta sopra, e l'aggregazione di più TC è una realtà anche sul netting.

In questa architettura, tutti i TC sono eseguiti in virtualità - il proprio tester con la storia fino al momento attuale. E poi le pose riassuntive sono sincronizzate con la realtà.

Naturalmente, la visualizzazione di questo ambiente virtuale è quasi una visualizzazione di MT4.

Voi capite che qualsiasi FOREX-aggregatore sullo stesso MT4 fa esattamente questa assurdità in particolare. Cioè, eseguite il vostro TS in un ambiente virtuale - nel vostro MT4. L'ambiente virtuale vi è fornito dal ponte dell'aggregatore. E il lato reale non si vede in realtà (su cosa LP cosa ha eseguito lì), ma tutto è splendidamente mostrato a voi.

 
hrenfx:

Gli ordini OCO non sono necessari. Tutta la stessa architettura descritta sopra, e l'aggregazione di più TC è una realtà anche sul netting.

In questa architettura, tutti i TC sono eseguiti in virtualità - il proprio tester con la storia per il momento attuale. E poi le pose totali sono già sincronizzate con la realtà.

Naturalmente, la visualizzazione di questo ambiente virtuale è quasi una visualizzazione di MT4.

Voi capite che qualsiasi FOREX-aggregatore sullo stesso MT4 fa esattamente questa assurdità in particolare. Cioè, eseguite in un ambiente virtuale il vostro TS nel vostro MT4. L'ambiente virtuale vi è fornito dal ponte dell'aggregatore. E il lato reale non si vede in realtà (su cui LP ciò che è stato eseguito lì), ma si è splendidamente mostrato tutto.

Quindi, sono d'accordo con questo. Non sono d'accordo con Andrew nella sua affermazione che non ci sono "aggregatori normali". Per uso individuale un tale aggregatore può essere creato senza problemi in linea di principio. Il mio schema non ha solo tester virtuali, ma possono essere creati sotto forma di indicatori, il problema con la visualizzazione è notevolmente semplificato allora.
 
hrenfx:

In questa architettura, tutti i TC sono eseguiti in virtualità - il proprio tester con la storia fino al momento attuale. E poi le pose totali sono sincronizzate con la realtà.

Soluzione troppo complessa. Non c'è abbastanza trasparenza per lo sviluppatore finale.
 
MetaDriver:

Non ho il problema di distinguere tra condizioni di acquisto / condizioni di vendita. Non dovrebbe essere a livello di strategia. Il compito della strategia è quello di prevedere se il mercato salirà o scenderà nel prossimo momento, e con quale probabilità. La posizione di mercato raccomandata dipende da questo. Quello che c'era in passato, se ci sono posizioni aperte (in entrambe le direzioni) ora o no - non ha assolutamente importanza. Se non ti ci metti - puoi passare metà della tua vita a risolvere problemi inesistenti. A volte puoi anche risolverli molto bene.

Come fa a non essere importante? Qualsiasi strategia, a livello logico, conosce sempre il suo stato attuale! Prendiamo una semplice strategia di crossover: ha solo due stati, o si compra o si vende. Senza memorizzare la sua posizione, aprirà una posizione lunga ogni volta che vedrà che la media veloce è superiore a quella lenta. Quindi cosa deve fare il sincronizzatore? Dille: "no, hai già una posizione lunga, non le permetterò di aprirne un'altra!

La mia soluzione è universale, la strategia decide da sola quanti ordini e in quale direzione può tenere aperto. Se volete una posizione da comprare e due da vendere, nessun problema. La classe di base ha tutte le informazioni necessarie per prendere decisioni. A livello di terminale non c'è nessuna posizione netta, mentre la strategia stessa lavora in una comoda modalità multiposizione.

L'Expert Advisor basato sul modello che ho suggerito avrà automaticamente le proprietà di un multi-expert. Non dovrò aggiungere o modificare nulla. Le posizioni di diversi EAs su un simbolo non collasseranno in rete, è facile programmare una griglia o un armadietto in questo schema come in qualsiasi altra strategia. In altre parole, si ottiene una completa unificazione dell'implementazione del programma indipendentemente dalla logica dell'Expert Advisor!

 
C-4:

Come potrebbe non avere importanza? Qualsiasi strategia, a livello logico, conosce sempre il suo stato attuale! Prendiamo una semplice strategia di crossover: ha solo due stati, o si compra o si vende. Senza memorizzare la sua posizione, aprirà una posizione lunga ogni volta che vedrà che la media veloce è superiore a quella lenta. Quindi cosa deve fare il sincronizzatore? Dille: "no, hai già una posizione lunga, non le permetterò di aprirne un'altra!

La mia soluzione è universale, la strategia decide da sola quanti ordini e in quale direzione può tenere aperto. Se volete una posizione da comprare e due da vendere, nessun problema. La classe di base ha tutte le informazioni necessarie per prendere decisioni. A livello di terminale non c'è nessuna posizione netta, mentre la strategia stessa lavora in una comoda modalità multiposizione.

L'Expert Advisor basato sul modello che ho suggerito avrà automaticamente le proprietà di un multi-expert. Non dovrò aggiungere o modificare nulla. Le posizioni di diversi EAs su un simbolo non collasseranno in rete, è facile programmare una griglia o un armadietto in questo schema come in qualsiasi altra strategia. In altre parole, si ottiene una completa unificazione dell'implementazione del programma indipendentemente dalla logica dell'Expert Advisor!

Il segnale è un cambiamento della situazione a quello che è accettabile per una posizione di trading in una certa direzione.

Perché non firmare i segnali con una firma individuale, il segnale cambia, la firma cambia.

Poi l'esecuzione funzionerà non solo con il segnale, ma anche con la firma, se il segnale è già stato elaborato, non c'è bisogno di scambiarlo di nuovo.

 
Urain:

Un segnale è un cambiamento della situazione in uno che è accettabile per una posizione di trading in una certa direzione.

Perché non firmare i segnali con una firma individuale, il cambiamento del segnale cambierà la firma.

Poi l'esecuzione funzionerà non solo con il segnale, ma anche con la firma, se il segnale è già stato elaborato, non c'è bisogno di scambiarlo di nuovo.

In questo caso dovremo memorizzare la storia dei segnali elaborati, il che è molto costoso. Consideriamo ancora una volta l'incrocio di 2 medie. Supponiamo di riavviare l'Expert Advisor. Non c'è un nuovo cross per entrare e l'EA dovrà in qualche modo ripristinare la sua storia di trading e capire che c'è stato un cross precedente e che ora dovrebbe essere nello stato Buy e che questo segnale è stato elaborato e non dovremmo aprire una nuova posizione, ma dobbiamo trovare la vecchia posizione, ma non sarà facile da trovare, perché la posizione attuale potrebbe non appartenere necessariamente a un solo EA ... Tutto sommato, è un incubo. Questo è il percorso spinoso suggerito da hrenfx: scrivere un history tester in ogni robot, che raccolga i segnali storici, calcoli se hanno funzionato o meno, e poi memorizzi i volumi delle strategie, ecc. Di conseguenza, la complessità dello sviluppo aumenta di un ordine di grandezza, mentre non esiste ancora una soluzione affidabile.
Motivazione: