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

 
komposter:

MetaDriver dice bene, e il suo sistema è corretto. Dick_fx aggiungerebbe anche che il "driver di trading" dovrebbe lavorare con 10-20 piattaforme per utilizzare i prezzi migliori.

Ma usare un sistema così corretto è conveniente solo in condizioni ideali - nessun errore di strategia, nessun intervento dell'utente, nessuna forza maggiore... E in realtà questo è raramente il caso.

Faccio un esempio di dick_fx: 25 strategie stanno lavorando, l'aggregatore (trade driver) le raccoglie in una posizione netta e le mette sul mercato, tutto è OK. Improvvisamente, qualcosa va storto nella strategia 17-th e dà previsioni malsane - dice di aprire al 50% del deposito. Expert Advisor si apre obbediente.

Cosa fa un banale armadietto alla MT4:

  • rimuove il 17° EA dal grafico (è facile trovarlo con la magia nell'accordo),
  • chiudere la posizione corrispondente (in termini di MT4) o parte della posizione (in termini di MT5),
  • legge i log, creati da questo EA, per analizzare la situazione.

Ora passiamo alla "contabilità corretta". Cosa dovrebbe fare il trader per correggere l'errore (un commercio con il 50% di margine - un ovvio errore logico)?

  • Trovate quale strategia l'ha generato (come? dai registri?),
  • Trovate il codice appropriato e modificatelo (return(0)?),
  • O nel ciclo di somma delle posizioni, di fronte alla strategia richiesta (il numero non deve essere sbagliato!), mettete continua;
  • Compilare l'Expert Advisor (se è MT4 - prima chiudere il terminale, o dopo la compilazione, specificare le impostazioni corrette),
  • L'analisi della situazione - un brano separato (se non è dotato di un proprio registro con divisione in strategie).

La domanda è: qual è più facile? Ovviamente, la variante con MT4.

E cosa è più economico? Ovviamente, l'opzione con Netting.

Qual è la conclusione? Per fare un driver di mercato con GUI da MT4 ;)

Il problema della localizzazione di una strategia glitchy in una folla di strategie eterogenee riassunte esiste ma non è ancora diventato così drammatico. Personalmente riassumo (in grande quantità) solo strategie omogenee, per esempio, reti neurali diversamente ottimizzate. Ma tutto è più facile lì - i segnali delle strategie sono normalizzati (-1...+1), ogni strategia dà un contributo microscopico alla posizione aggregata, l'affidabilità dello schema si ottiene grazie alla "preponderanza statistica". D'altra parte, è più complicato - è quasi irreale catturare in tempo un glitch in tale folla. Solo con test individuali (preferibilmente con test automatizzati).

Può provare a generare idee per questa localizzazione, ma non cercando di saltare "di riflesso" a 4, e solo sentire lo spazio di opzioni - forse qualcosa di meglio sarà trovato. :)

// Probabilmente, sarebbe impossibile inventare un indicatore azionario individuale (aka tester) per ogni strategia migliore, ma finora sembra essere un peso troppo grande.

 
komposter:

MetaDriver dice bene, e il suo sistema è corretto. Dick_fx aggiungerebbe anche che il "driver di trading" dovrebbe lavorare con 10-20 piattaforme per utilizzare i prezzi migliori.

Ma usare un sistema così corretto è conveniente solo in condizioni ideali - nessun errore di strategia, nessun intervento dell'utente, nessuna forza maggiore... E in realtà questo è raramente il caso.

Faccio un esempio di dick_fx: 25 strategie stanno lavorando, l'aggregatore (trade driver) le raccoglie in una posizione netta e le mette sul mercato, tutto è OK. Improvvisamente, qualcosa va storto nella strategia 17-th e dà previsioni malsane - dice di aprire al 50% del deposito. Expert Advisor si apre obbediente.

Cosa fa un banale armadietto alla MT4:

  • rimuove il 17° EA dal grafico (è facile trovarlo con la magia nel commercio),
  • chiudere la posizione corrispondente (in termini di MT4) o parte della posizione (in termini di MT5),
  • legge i log, creati da questo EA, per analizzare la situazione.

Ora passiamo alla "contabilità corretta". Cosa dovrebbe fare il trader per correggere l'errore (un commercio con il 50% di margine - un ovvio errore logico)?

  • Trovate quale strategia l'ha generato (come? dai registri?),
  • Trovate il codice appropriato e modificatelo (return(0)?),
  • O nel ciclo di somma delle posizioni, di fronte alla strategia richiesta (il numero non deve essere sbagliato!), mettete continua;
  • Compilare l'Expert Advisor (se è MT4 - prima chiudere il terminale, o dopo la compilazione, specificare le impostazioni corrette),
  • L'analisi della situazione - un brano separato (se non è dotato di un proprio registro con divisione in strategie).

La domanda è: qual è più facile? Ovviamente, la variante con MT4.

E cosa è più economico? Ovviamente, l'opzione Netting.

Qual è la conclusione? Per fare un driver di mercato con GUI da MT4 ;)

Si ha l'impressione che MT5 negozi posizioni.

Il netting è un sistema contabile e non più di questo, MT4 ha solo la storia degli ordini, MT5 ha sia la storia degli ordini che la loro somma in una posizione.

Cioè MT5 ha inequivocabilmente più informazioni da elaborare.

Dobbiamo anche tenere a mente che ogni ordine ha un magik e un commento così come in MT4. Ci permettono di identificare quale strategia di aggregazione ha piazzato un ordine del 50% del margine.

Se non sappiamo come usare questo tipo di numeri magici e commenti, non vedremo come è facile identificare l'ordine.

Se vogliamo usare una MetaTrader 5 come feed di dati, quindi mettere un ordine out nello stesso ordine che si suppone essere chiuso, allora negli ordini chiusi saranno elencati solo gli ordini che hanno ordini out, e negli ordini aperti che non hanno out.

 
TheXpert:

Il driver commerciale abbassa l'affidabilità del sistema.

Non ci credi davvero? E tu parli così vigorosamente dell'autista come qualcosa di veramente figo.

Ecco un esempio: abbiamo un arbitraggio round robin. Il primo ordine viene eseguito da limite, poi il giro viene chiuso da mercato.

Cosa succede nel tester interno? Il cerchio è chiuso e non ci sono requotes, requotes, ping e altre cose che disturbano il trading.

Ora immaginiamo che dopo il limit requote (il trigger era lì, la posizione non è apparsa) il prezzo si è spostato indietro ma è successo a mezzanotte (la legge della fortuna) e la connessione è stata persa per quel tempo.

Il segnale è stato rilevato e c'è una posizione nel tester interno; dovrebbe essere impostato. Questo si è tradotto in una perdita enorme per gli standard di arbitraggio. Infatti, la risposta si è conclusa con un reindirizzamento, quindi non è necessario aprire una posizione.

Le migliori scarpe sono quelle che sono fatte su misura per i tuoi piedi. Più versatile, meno affidabile.

 

TheXpert:

TheXpert:

L'operatore commerciale riduce l'affidabilità del sistema.

Non ci credi davvero? E discutere il pilota così vigorosamente come qualcosa di veramente figo.

Esempio - abbiamo un arbitraggio round robin. Il primo ordine scatta sul limite, poi il cerchio si chiude sul mercato.

Cosa succede nel tester interno? Il cerchio è chiuso, non ci sono re-jack, requote, ping e altre cose che disturbano il trading.

Ora immaginiamo che dopo il limit requote (il trigger era lì, la posizione non è apparsa) il prezzo si è spostato indietro ma è successo a mezzanotte (la legge della fortuna) e la connessione è stata persa per quel tempo.

Il segnale è stato rilevato e c'è una posizione nel tester interno; dovrebbe essere impostato. Questo ha comportato una perdita enorme per gli standard di arbitraggio. Infatti, la risposta si è conclusa con una rejunction, quindi non è necessario aprire una posizione.

Le migliori scarpe sono quelle che sono fatte su misura per il piede. Più versatile, meno affidabile.

Bene, bene, bene.


Buon compleanno a te....!

--

Andriyuha, naturalmente questo driver è per le strategie di previsione, non per quelle di arbitraggio, e l'una non esclude l'altra. Il posto delle strategie di arbitraggio è un po' più in basso nel canale, cioè nell'aggregatore. Sto progettando questo modulo (arbitraggio). Se continuiamo con lo schema... Ne ho scritto proprio ieri, però, qui

https://www.mql5.com/ru/forum/105007/page9#821911

e oltre qui

https://www.mql5.com/ru/forum/105007/page10#821949

 
Urain:

Passare dal compito. Quali compiti sono più richiesti nella GUI?

Puoi farlo da lì. Descrivi ciò che stai cercando di ottenere, definisci le caratteristiche comuni, fai un framework, poi aggiungi altre cose, vedi quanto è facile cambiare il framework.

Per capire cosa dovrebbe essere, riscrivilo. È così che mi sembra.

Mi piacerebbe qualcosa del genere:

Urain:
E se fai il riferimento all'API attraverso il modulo di riferimento? Allora puoi cambiare un modulo e cambiare la piattaforma.

Cioè, dovrò inventare un router di eventi universale (: perdonami TheXpert :) personalizzabile. Per collegarlo a TC da un lato e GUI dall'altro.

--

TheXpert:
...

Le migliori scarpe sono quelle che sono fatte su misura per il tuo piede. Più versatile, meno affidabile.

// Andrei, lo scopo delle soluzioni universali è l'uso multiplo. Io stesso conosco i minus... ))

 
Urain:

Si ha la sensazione che MT5 faccia trading in posizioni.

Il netting è un sistema contabile e niente di più, MT4 ha solo la storia degli ordini, MT5 ha sia la storia degli ordini che la loro somma in una posizione.

Cioè MT5 ha inequivocabilmente più informazioni da elaborare.

Dobbiamo anche tenere a mente che ogni ordine ha un magik e un commento così come in MT4. Ci permettono di identificare quale strategia di aggregazione ha piazzato un ordine del 50% del margine.

Se non sappiamo come usare questo tipo di numeri magici e commenti, non vedremo come è facile identificare l'ordine.

Se vogliamo usare una MetaTrader 5 come feed di dati, quindi mettere un ordine out nello stesso ordine che si suppone essere chiuso, allora negli ordini chiusi saranno elencati solo gli ordini che hanno ordini out, e negli ordini aperti che non hanno out.

Hai praticamente chiuso l'argomento del vantaggio di un sistema di ordini (MT4) rispetto a un sistema di ordini netti (MT5). Una cosa del genere non mi era venuta in mente, anche se ovviamente funziona ed è vicina.
 
MetaDriver:
Non ho pensato a un tale trucco, anche se chiaramente funziona ed è vicino.
Mi sembra strano che non mi sia venuto in mente :) allora hai bisogno di un secondo suggerimento - infatti, ci dovrebbero essere tre maghi collegati, perché ci sono anche TP e SL.
 
sergeev:
Strano che non sia venuto :) poi un secondo suggerimento per te - in realtà, ci dovrebbero essere tre maghi correlati, perché ci sono anche TP e SL.

Non è rilevante per me - non uso fermate di trading (strategiche), anche se grazie per il suggerimento. ))

--

Wap tutti questi problemi sono per lo più inverosimili (a rete), o da clienti da lavoro. Forma quaternaria di "diversificazione delle strategie" che spunta da sotto, l'atavismo è nudo, non meglio della locomozione. Si può scrivere tutta la storia sia delle posizioni raccomandate che dell'esecuzione (posizioni di mercato) su disco in generale. Per ogni sotto-strategia individualmente. Se lo scrittore non perde tempo, mettilo in un thread separato (Expert Advisor) e alimentalo con le informazioni attraverso eventi personalizzati. Per l'analisi delle "realtà di esecuzione" può essere utile.

 
Urain:
E se fate un riferimento API attraverso il modulo di riferimento? allora potete cambiare un modulo e cambiare la piattaforma.

Esattamente. Non c'è bisogno di scrivere un modulo separato. Perché il fornitore di dati è proprio quel modulo. Lunedì disegnerò lo schema di tale domanda. Per quanto riguarda la GUI, non abbiamo bisogno di inventare un "router di eventi", come suggerisce Vladimir. Il modulo runtime supporta l'interfaccia GUI, il che significa che qualsiasi TC collegato al modulo runtime inizierà a lavorare con il pannello GUI di default, anche senza sapere nulla di esso (lo schema sarà disponibile lunedì). Il modulo runtime qui è come una classe adattatore. Il principio è semplice:

Qualsiasi sistema che sa come lavorare con il modulo runtime può interagire tra loro senza sapere nulla dell'altro.

 
MetaDriver:
Non ho nemmeno pensato a una cosa del genere, anche se ovviamente funziona e si può trovare vicino a me.

È strano, Vladimir, che questo ti sia arrivato come una rivelazione. Ho usato questo schema nel mio lavoro per quasi un anno.

Sì, capire che non si tratta di reti. Come Vladimir ha giustamente sottolineato, gli algoritmi dominano, e non si può costruire un grande progetto, e soprattutto scalabile, senza sapere come strutturare correttamente i dati. Fate attenzione alla discussione attiva dello schema del driver di mercato, uno ha bisogno di questo e l'altro di quello, e all'interno di questo schema dobbiamo introdurre sempre più nuovi moduli, interrelazioni, diversi "router di eventi". E cosa diventerebbe un progetto se decine o due trader con compiti diversi e diversa comprensione del mercato lo usassero?

Per qualche ragione, mi vengono in mente le parole di Alexander Radishchev: "La bestia è maliziosamente enorme, stoica e abbaiante".

Motivazione: