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

 
GaryKa:

E poi dovremo introdurre un feedback tra l'"esecutore" e l'"analizzatore", e, inoltre, costruire in qualche modo i parametri di questa performance non ideale nel modello matematico dell'analizzatore

Cosa influisce il feedback in questo caso? Supponiamo che tu volessi comprare il prodotto a 1,00 rubli, ma la tua performance non ideale è stata eseguita a 1,02. Questo non può essere cambiato - l'analizzatore non può cambiarlo.

Non può essere cambiato - l'analizzatore deve lavorare con il nuovo valore. Se intendi che avevi uno SL di 0,98, e ora hai bisogno di spostarlo alla differenza, cioè 1,00. Penso che sia più facile cambiare la logica - comprare prima, e poi mettere SL a una distanza fissa dal prezzo di esercizio.

 
A100:

Cosa influisce il feedback in questo caso? Diciamo che volevi comprare a 1,00 rubli e che è stato eseguito a 1,02 rubli.

Nel caso di un reindirizzamento. O nel caso di un ordine limite, quando è necessario equalizzare il portafoglio dopo l'attivazione del limite.

 
TheXpert:

Nel caso di un reindirizzamento. O nel caso di una perequazione di portafoglio dopo un trigger di limite.

È difficile da dire nel caso della perequazione del portafoglio. E penso che la questione della ri-richiesta dovrebbe essere risolta nel blocco di esecuzione - richieste ripetute entro limiti specificati - per esempio 10 richieste con una pausa fino a quando il prezzo va oltre i 50 punti da quello desiderato.

L'analizzatore può dire in anticipo all'esecutore cosa fare in caso di fallimento - ripetere o "rinunciare".

 

Non crediate che io faccia il furbo, ma date un'altra occhiata a questa architettura della scrittura di un TC di combattimento. Non c'è feedback.

Ci sono posizioni virtuali e c'è un ambiente di trading reale che si adatta alla virtualità.

In questo caso, non importa nemmeno se c'è il netting nella piattaforma o in un altro sistema contabile.

 
TheXpert:
Questo è solo un esempio di ciò di cui stavo parlando - la parte di trading dipende dalla strategia.
Non deve essere per forza così. Se si sviluppa una rappresentazione intelligente delle posizioni e si organizza un lavoro corretto con esse, il tipo di esecuzione non influenzerà la logica dell'Expert Advisor stesso. Nel mio motore, per esempio, il tipo di esecuzione è impostato da un semplice enum. Se volete ordini limite, fate pure; se volete ordini stop, fate pure. Prendiamo un ordine stop con l'indicazione dello slippage massimo su di esso. Infatti, questo è un ordine limite il cui prezzo è peggiore di quello corrente per il valore di slippage. Questo significa che possiamo fare con gli ordini limite in tutti i casi. Il problema dell'eccesso di volume può essere facilmente risolto. Se l'Expert Advisor decide che il volume richiesto non viene raggiunto, apre una seconda posizione nella stessa direzione. A livello di classe base, l'hedging è supportato in modo trasparente e non abbiamo alcun problema con esso. Inoltre, la decisione di aprire o meno una seconda posizione in caso di volume insufficiente può essere delegata al livello della classe base. Poi possiamo semplicemente descrivere il modo in cui la classe base sarà costretta a includere nuove posizioni nell'elenco delle posizioni da elaborare. Il modulo di strategia li raccoglierà e li elaborerà secondo le sue regole.
 
hrenfx:

Non crediate che io faccia il furbo, ma date un'altra occhiata a questa architettura della scrittura di un TC di combattimento. Non c'è nessun feedback lì.

C'è, ad un livello inferiore, non può non esserci.

C-4:

Non dovrebbe dipendere.

Ok, non dovrebbe esserlo, non dovrebbe esserlo. E devi ancora imparare a disegnare. E le immagini sono astrazioni.
 
hrenfx:

Non crediate che io faccia il furbo, ma date un'altra occhiata a questa architettura della scrittura di un TC di combattimento. Non c'è feedback.

Questa è l'architettura normale, almeno per il mio gusto abbastanza bene.


Ci sono posizioni virtuali e c'è un ambiente di trading reale che si adatta alla virtualità.

Questo è esattamente quello che stanno argomentando qui sulla complessità-inaffidabilità del sincronizzatore (il mio, in questo caso).


In questo caso, non importa nemmeno se il netting è nella piattaforma o in un altro sistema contabile.

Ho un driver simile per il quattro scritto quando il cinque non era ancora uscito. Le posizioni nette sono alimentate in esso, e il driver le traduce in quattro ordini "riducendo" tutti i lotti mentre il gioco procede.
 
TheXpert:

C'è, ad un livello inferiore, non può non esserci.

Ok, non deve essere così, non deve essere così. E devi ancora imparare a disegnare. E le immagini sono astrazioni.
Non siamo andati alle accademie Muhinsky!
 
TheXpert:

C'è, ad un livello inferiore, non può non esserci.

Ok, non deve essere così, non deve essere così. E devi ancora imparare a disegnare. E le immagini sono astrazioni.
Un'eccezione importante: la logica degli algoritmi HFT è in realtà descritta dal modo in cui vengono eseguiti.
 
Stavo solo pensando che se MQL5 supportasse l'ereditarietà multipla e una classe potesse dichiarare metodi astratti, aprirebbe la strada all'uso delle interfacce, il che sarebbe ottimo per i grandi progetti.