Insegno da zero, così come aiuto i nuovi arrivati ad entrare nei ranghi dei professionisti di MQL4. - pagina 7

 
Dmitry Sumsky:

Non hai niente di meglio da fare che passare ore a cercare qualche difetto nel mio codice o sono una spina nel fianco e vuoi vendicarti?

Sei un uomo strano, Andrew...

A cosa serve il forum? -- Per divertimento.

Sto bevendo il mio tè da un piattino e alcuni dolci - guardo attraverso il forum e forse troverò qualcosa per divertirmi - il tuo argomento è divertente (mi è sempre piaciuto questo).

p.s. perché hai bisogno di vendetta, e per quale motivo? -- p.s.2 non essere arrabbiato con me - è divertente, il tuo argomento è sempre stato una curva di apprendimento per me.


p.s.2 non ti arrabbiare, ho cancellato il mio post - forse era davvero pungente - non intendeva offenderti in alcun modo

 
Andrey F. Zelinsky:

a cosa serve il forum? -- per divertimento.

Sto prendendo una tazza di tè e dei pasticcini - sto navigando nel forum, forse troverò qualcosa per divertirmi - il tuo argomento è divertente (mi è sempre piaciuto il tema dell'apprendimento).

p.s. perché hai bisogno di vendetta e per cosa? - Non capisco

Inoltre, Dimochka, sei tu quello che mi ha attaccato per primo, io sono solo la parte lesa.

Sei una ragazza così innocente. Hai fatto irruzione nella mia culla e hai iniziato a dirmi come vivere la mia vita. Non ho fatto altro che dire tutta la verità. A quanto pare, la verità ti è entrata in gola e hai deciso di trovare una sorta di indizio, in modo che in qualche modo per farmi dispetto. Ma più sbraiti, più ti umili. Puoi continuare a provocarmi umiliandoti davanti agli altri. Questo è un forum, un forum per l'ilarità. Inoltre, non siamo solo io e te a leggerlo... )))
 
Dmitry Sumsky:
Sei una ragazza così innocente. Irrompendo nella mia culla, dicendomi come vivere la mia vita. Ho detto solo tutta la verità. A quanto pare, la verità ti è entrata in gola e hai deciso di trovare una specie di indizio per farmi un dispetto. Ma più sbraiti, più ti umili. Puoi continuare a provocarmi umiliandoti davanti agli altri. Questo è un forum, un forum per l'ilarità. Inoltre, non siamo solo io e te a leggerlo... )))

Ti ho scritto:

Andrey F. Zelinsky:

p.s.2 non ti arrabbiare, ho cancellato il mio post -- forse stavo facendo il faceto -- non volevo offenderti in alcun modo

-- e tu continui ad attaccare -- probabilmente non avrei dovuto cancellare il mio post.

 
Andrey F. Zelinsky:

Tu... ti ho scritto:

-- e tu continui ad attaccare -- devo aver cancellato il mio post per niente.

Devi averlo cancellato mentre scrivevo. Beh, mi dispiace... )))
 
Dmitry Sumsky:

Questo thread è progettato per aiutare coloro che stanno cercando di imparare ma lo trovano lungo e doloroso. Ho solo offerto il mio aiuto per un apprendimento più rapido del linguaggio, più una comprensione di come funziona nella memoria del computer, in modo da poter programmare il miglior codice in una volta sola, invece di fare "in qualche modo", e poi cercare di ottimizzarlo... )))

Penso che tali costruzioni non siano molto ottimali:

for(int i=0; i+1<iBars(NULL,Sarpperiod); i++)

Sarebbe meglio assegnare il risultato della funzione iBars() a una variabile prima dell'operatore for, poiché "Expression2" viene controllata per la verità dopo ogni iterazione, e ogni volta che la funzione viene chiamata ci vorrà più tempo che confrontandola con una variabile.

 
Vasiliy Pushkaryov:

A mio parere, tali disegni non sono molto ottimali:

for(int i=0; i+1<iBars(NULL,Sarpperiod); i++)

Sarebbe meglio assegnare il risultato della funzione iBars() a una variabile prima dell'istruzione for, poiché "Expression2" viene controllata per la verità dopo ogni iterazione, e ogni volta che la funzione viene chiamata, ci vorrà più tempo che confrontandola con la variabile.

Sono d'accordo, è soprattutto quello che faccio io. E se non fa differenza dove iniziare il passaggio, allora scrivo for(int i=iBars(NULL,SarPeriod)-1; i>=0; i--). Questo è ottimale per il processo e meno caratteri nella stringa. In questo codice, non miravo all'ottimizzazione al 100% - dovevo fare meno stringhe, quindi l'ho scritto così... )))

La cosa che "mangia" il processo più di tutte è iCustom ecc. Dovrei scrivere gli algoritmi di tutti gli indicatori che uso nell'Expert Advisor stesso per farlo "volare", ma non avevo un tale compito...

 
Dmitry Sumsky:
Sono d'accordo, è praticamente quello che faccio io. E se non fa differenza dove iniziare il passaggio, allora scrivo for(int i=iBars(NULL,SarPeriod)-1; i>=0; i--). Questo è ottimale per il processo e meno caratteri nella stringa. In questo codice, non miravo all'ottimizzazione al 100% - dovevo fare meno stringhe, quindi l'ho scritto così... )))
Capisco. Sono tranquillo per i tuoi studenti allora )
 
Vasiliy Pushkaryov:

A mio parere, tali disegni non sono molto ottimali:

for(int i=0; i+1<iBars(NULL,Sarpperiod); i++)

Sarebbe meglio assegnare il risultato di iBars() a una variabile prima dell'istruzione for, perché "Expression2" viene testata per la verità dopo ogni iterazione, e ogni volta che la funzione viene chiamata, ci vorrà più tempo che confrontandola con la variabile.

Non ha molta importanza. Ricordo che "The Art of Programming" di Knuth diceva qualcosa del genere - un buon programmatore dovrebbe:

1. essere in grado di accorciare o ottimizzare qualsiasi programma,

2. non farlo mai.

 
Yuriy Asaulenko:

Non è poi così importante. Ricordo che The Art of Programming di Knuth dice qualcosa del genere: un buon programmatore dovrebbe:

1. essere in grado di accorciare o ottimizzare qualsiasi programma,

2. non farlo mai.

Questo approccio mi piace di più.

Quando scrivo le mie funzioni, sono lunghe e complesse. Contengono rientri a più livelli e cicli annidati. Hanno lunghe liste di argomenti. I nomi sono scelti in modo caotico e ci sono duplicati nel codice. Ma ho anche una suite di test unitari per tutte queste linee goffe fino all'ultima.

Così, comincio a "pettinare" e raffinare il mio codice, evidenziando nuove funzioni, cambiando i nomi ed eliminando i duplicati. Accorcio i metodi e li riordino. A volte devo interrompere intere classi, ma mi assicuro che tutti i test vengano eseguiti con successo.

Alla fine, mi restano delle funzioni costruite secondo le regole delineate in questa categoria. Non li scrivo così dall'inizio. E credo che nessuno possa farlo del tutto.

Robert Martin, Codice pulito. Creazione, analisi e refactoring.

Alcune persone sono capaci e lo fanno, altre sono capaci e non lo fanno, è una questione di come lo si fa.

 
Vasiliy Pushkaryov:

Mi piace di più questo approccio

Alcuni possono e lo fanno, altri possono e non lo fanno, è una questione di come lo si fa.

Questi non sono approcci che si escludono a vicenda. Si tratta di cose diverse.