Il mio approccio. Il nucleo è il motore. - pagina 127

 
Vasiliy Sokolov:

Peter, mi dispiace, ma il tuo lavoro non è accettato, dato che quello che hai inviato è un pezzo di hackwork.

...

Nessun credito ancora. Aspettando le vostre revisioni. E niente rendering in 3D finché non l'avrete capito!

Perché stai tormentando Peter? È un artista libero - quello che vuole, è quello che fa. E se è complicato e non rientra nel suo concetto di pensiero, allora non è voluto e non si fa, ma si sostituisce con qualcosa di semplice, voluto e fatto...

 
Artyom Trishkin:

Perché fai vergognare Pyotr? È un artista libero - quello che vuole, è quello che fa. E se è complicato e non rientra nella sua concezione di pensiero - allora non è voluto e non è fatto, ma sostituito da qualcosa che è semplice, voluto e fatto...

Ma lui (Pyotr) vuole essere richiesto con il suo motore centrale, prendere ordini e così via. Qui Vassily gli ha dato un piccolo tocco di realtà.

E, Pyotr, che ne dici del pannello per Alexander?

 
Artyom Trishkin:

Perché stai tormentando Peter? È un artista libero - qualunque cosa voglia fare, è quello che fa. E se è complicato e non rientra nella sua concezione di pensiero, non vuole farlo, ma sostituisce ciò che vuole semplicemente fare...

Cavolo, percepisco il tuo sguardo sornione :)

Sto sculacciando perché l'uomo si è alzato e ha dichiarato che chiunque può creare un'interfaccia grafica per il suo programma basato sulla sua soluzione. Si è offerto di provarlo e si è offerto di verificare la sua soluzione di persona. L'ho controllato e il risultato è stato un incubo totale. Quindi, come si dice, se ti definisci un pilota, sali sul camion;)

 
C'è una grande differenza tra risolvere problemi immaginari e compiti specifici di terzi. È stato dichiarato che questo motore è solo per il secondo caso. Per offrire una soluzione efficace e universale a questo secondo caso, la soluzione deve essere basata su paradigmi di programmazione di base. Finora, non vedo la corretta implementazione di questi paradigmi nella soluzione di Peter. Al contrario, il problema "semplice" appositamente formulato ha esposto tutto il groviglio di problemi interni e la completa oscurità dell'intera soluzione proposta.
 
Vasiliy Sokolov:
C'è una grande differenza tra risolvere problemi immaginari e compiti specifici di terzi. Si è detto che questo motore è solo per il secondo caso. Per fornire una soluzione efficace e universale a questo secondo caso, è necessario che la soluzione sia basata su paradigmi di programmazione di base. Finora non vedo una corretta implementazione di questi paradigmi nella soluzione di Peter. Al contrario, il problema "semplice" appositamente formulato ha esposto tutto il groviglio di problemi interni e la completa oscurità dell'intera soluzione proposta.

Beh, sei un maestro dell'esagerazione...

Tutti questi "problemi" sono risolti in un colpo solo. Ho appena creato la tecnologia e non c'era nessuno con cui testarla. E tu sei quello con la spada in mano...)

Tutto questo non ha senso, tranne forse per limitare il numero di righe. Non sono ancora riuscito a risolvere questo problema.


Gli ordini non sono chiusi, perché ho dimenticato come controllare se un ordine è aperto o chiuso. E avete creato una "tragedia")).

 
Реter Konow:
Gli ordini non si chiudono perché ho dimenticato come controllare se un ordine è aperto o chiuso. E tu hai creato una "tragedia")).

PositionSelectByTicket

 
Konstantin Nikitin:

PositionSelectByTicket

Grazie.))

C'è un'antica tragedia greca in corso qui...)) È persino divertente che non capisca quanto sia facile risolvere tutti i problemi che ha dichiarato. Tutto tranne un numero illimitato di righe di tabella.

 
Реter Konow:

Beh, sei un maestro dell'esagerazione...

...

Merda, amico, davvero non capisci cosa sta succedendo o stai cercando di tagliare le curve in questo modo?

In qualsiasi pannello la cosa fondamentale e più difficile è la visualizzazione della coerenza. Se un ordine è aperto - dovrebbe essere visualizzato, se non è nella scheda commerciale, non dovrebbe essere nemmeno nel pannello. Questo è elementare e "molto semplice" concettualmente. Ma per renderlo "molto semplice", il pannello deve essere basato su un modello di stato. Non avete una cosa del genere, ma un qualche database locale di curve non coerenti su stringhe infilate negli oggetti utente:

Ed ecco che ora cercate di dimostrarci che non c'è nessun problema, che è stato tutto risucchiato dal nulla. Che gli ordini non visualizzabili nella tua tabella vanno bene. Che gli ordini che sono nella vostra tabella, ma che sono stati chiusi da tempo in realtà, sono anche normali. E in generale, tutto è così normale e buono, tranne che il numero di posizioni è limitato a 20.

 
Vasiliy Sokolov:

Chiarirò il compito ancora una volta, in modo che non ci siano domande:

  1. La tabella è dinamica e mostra gli stessi ordini della scheda Commercio. Se non ci sono ordini nella scheda, anche la tua tabella non li mostra.
  2. Il numero degli ordini visualizzati nella vostra tabella dovrebbe essere qualsiasi cosa. Non ci sono limitazioni dall'alto.
  3. L'apertura di un ordine tramite la finestra di dialogo standard dovrebbe far apparire l'ordine nella tua tabella. La chiusura dell'ordine con mezzi standard dovrebbe comportare la scomparsa dell'ordine nella tua tabella.
  4. Uno stato non coerente non è accettabile! Se la vostra tabella mostra una cosa e il tab Trade ne mostra un'altra, questo è un errore.

Per ora devo darvi un salto di spessore. Stiamo aspettando che tu lo sistemi. E niente rendering 3D fino a quando non l'avrete capito!

  1. Per fare questo, l'utente deve scrivere un ciclo sugli ordini su tick o timer, e controllare i loro tick con i tick scritti nell'array. Se non c'è nessun ticket nell'array, significa che l'ordine è stato appena aperto, e allora deve essere chiamato E_Main_form_1__PnL(OrderTicket(),OrderProfit());
  2. Questa domanda è tecnicamente molto complicata. Finora il numero di righe è limitato in anticipo. Ma possono essere molto più di 20. Possiamo fare anche 200.
  3. La chiusura dell'ordine attraverso la finestra standard, proprio come all'apertura, sarà fissata nel ciclo su evento tick o timer. E se c'è un biglietto nell'array degli ordini aperti che non esiste più, bisogna chiamare il metodo
    E_Main_form_1_CLOSE_ROW___Orders_table(ticket);
    

4. se questi cicli d'ordine sono scritti correttamente, la tabella funzionerà correttamente.

Ho semplicemente dimenticato come gestire correttamente gli ordini, quindi non ho implementato correttamente questo meccanismo. Pertanto, la tabella non ha funzionato correttamente.

Ma questo non significa che la stessa tabella dinamica non funzioni.

 
Реter Konow:

Grazie.))

C'è un'antica tragedia greca in corso qui...) È persino divertente che non capisca quanto sia facile risolvere tutti i problemi che ha dichiarato. Tutto tranne un numero illimitato di righe di tabella.

Sento solo un gran mucchio di negligenza in te, nel tuo codice e in tutto quello che fai, più o meno per le persone, ma appena si arriva allo specifico, iniziano le stronzate. Fate una cosa piccola ma buona e di alta qualità. Voi dite che tutto è semplice da risolvere, elementare. Ma per qualche motivo avete fatto una soluzione in cui non c'è niente. Cosa ti ha impedito di fare tutte queste semplici patatine in una quindicina di giorni?

Mi dispiace per la negatività. È solo che mi hai deluso. Speravo di vedere di più e meglio. Per favore, correggete il vostro demo. Fatelo buono, di alta qualità, secondo la richiesta e senza questi "è elementare, ha bisogno di un ritocco qui". Offrite una soluzione fuori dagli schemi, che potrebbe essere protestata.