Errori, bug, domande - pagina 1937

 
Renat Fatkhullin:
Mi dispiace, ma non ho assolutamente il tempo di occuparmi di insegnare la programmazione a ogni singolo principiante. Soprattutto quando si vede che la persona non ha nemmeno passato le basi della comprensione della programmazione e chiede cose banali.


Ma vi mostrerò la direzione:

  1. Documentazione MQL5
  2. Codebase
  3. Articoli
  4. Forum (non in modalità "scrivi per me, perché non mi insegni e fai il mio lavoro?)
  5. Freelance (possono scriverlo correttamente qui)
  6. Lavoro indipendente con analisi ponderata "perché questo wrapper dovrebbe rallentare e sprecare risorse, forse riscrivere in modo ottimale?"
  7. Utilizzando un profiler che mostra il consumo reale di risorse in ogni linea di codice

Grazie Renat!

Non mi sono sbagliato in te!

Suggerisco di ottenere il diritto di scaricare ME e comunicare con voi in sostanza per fornire attraverso il LC un diploma di istruzione superiore nel campo del "Programmatore".

 
Alexey Viktorov:

Non ho alcun desiderio di comunicare in questo modo. Invece di cercare di capire quello che viene detto, di capire cosa succederà, si tirano fuori delle obiezioni incredibili.

Perché si immagina le cose? Ho capito la tua idea e ho confermato che funziona, e avrà un effetto, se la richiesta viene fatta solo una volta e se si sa quante barre sono necessarie perché l'EA funzioni.

O forse hai suggerito di usare la struttura in un modo diverso? Allora per favore spiega, ma non ti offendere!

 
Aleksey Vyazmikin:

Suggerisco che al fine di ottenere il diritto di scaricare ME e comunicare con voi in sostanza fornire un diploma di istruzione superiore nel campo del "Programmatore" attraverso il LC.

Heh... Una laurea non è garanzia di nulla.

Fondamentalmente, posso offrirvi questa variante (non ho controllato la correttezza del codice, solo per il tester, il simbolo attuale, il periodo attuale):

double iClose(int index)
  {
   double arr[ 1 ];
   return( ( CopyClose(_Symbol,_Period,index,1,arr) == 1 )? arr[ 0 ] : WRONG_VALUE );
  }

Potete fare il resto delle funzioni per analogia.

 
Renat Fatkhullin:
Mi dispiace, ma non ho assolutamente il tempo di occuparmi di insegnare la programmazione a ogni singolo principiante. Soprattutto quando si vede che la persona non ha nemmeno passato le basi della comprensione della programmazione e chiede cose banali.


Ma vi mostrerò la direzione:

  1. Documentazione MQL5
  2. Codebase
  3. Articoli
  4. Forum (non nel modo "scrivi per me, perché non mi insegni e fai il mio lavoro?)
  5. Freelance (possono scriverlo correttamente qui)
  6. Lavoro indipendente con un'analisi ponderata del "perché questo wrapper dovrebbe rallentare e sprecare risorse, forse riscrivere in modo ottimale?"
  7. Utilizzando un profiler che mostra il consumo reale di risorse in ogni linea di codice

Perché non iniziamo un thread sulle migliori (più efficienti) pratiche di programmazione direttamente su MT5? C'era, per esempio, un ramo sulla realizzazione di iBarShift. Anche altre sfumature possono essere migliorate insieme. La gente, in generale, non vuole imparare a programmare, ma a costruire rapidamente e comodamente un Expert Advisor - mi dispiace, ma è così. E l'esperto, naturalmente, non dovrebbe rallentare o schiantarsi. Se si potesse, come i mattoni pronti, mettere insieme "proprio bene", sarebbe fantastico. Perché ci sono tutti i tipi di "cosa non va bene" ovunque. E non è sempre ovvio quale sia lo "sbaglio". Che ne dici di "il modo giusto"?

La documentazione è piuttosto minimalista in molti aspetti.

Il codebase è una grande pila in cui bisogna scavare consapevolmente e intelligentemente per giorni per trovare il codice giusto.

Articoli - di regola, gli autori e altamente specializzati, più nel commercio che nella programmazione (ma la direzione della risorsa deve essere considerata), e quelli che sono sulla programmazione - per lo più sugli espedienti.

È qui che si trova il forum. Loro fanno domande qui e noi le mandiamo a... anche qui.

Il freelance non è una garanzia di buone pratiche o di formazione.

Lavoro autonomo, anche con un profiler - naturalmente presente, ma non abbastanza tempo per tutto. Qualcosa che voglio prendere sotto forma di blocchi di costruzione già pronti.

 
Aleksey Vyazmikin:

Suggerisco che per poter scaricare ME e comunicare con voi nel merito, dovreste fornire una laurea in programmazione tramite il LC.

Non hai bisogno di un diploma per comunicare, ma ne hai bisogno per dire "E dov'è la velocità lodata di MT5?

Ti sono stati fatti notare più volte i tuoi errori, ma invece continui a piegare la linea del "ho il diritto di non sapere, insegnami sette!".
 
Alexey Kozitsyn:

Heh... Una laurea non è garanzia di nulla.

Fondamentalmente, posso offrirvi questa variante (non ho controllato la correttezza del codice, solo per il tester, il simbolo attuale, il periodo attuale):

Potete fare le altre funzioni per analogia.

Grazie! Cercherò di fare secondo la tua ricetta.

Riguardo al diploma - sono d'accordo, ma ci sono industrie dove non si può lavorare senza - per esempio, per condurre affari in tribunale come rappresentante per le cause CAS. Tuttavia, in questo modo gli sviluppatori non possono perdere tempo con i commercianti, ma prestare attenzione ai programmatori, e come prodotto, essere ad un livello superiore nella classifica dei linguaggi di programmazione.

 
Stanislav Korotky:

Perché non iniziamo un ramo sulle migliori (più efficaci) pratiche di programmazione direttamente per MT5? C'era, per esempio, un ramo sull'implementazione di iBarShift. Anche altre sfumature possono essere migliorate insieme. La gente, in generale, non vuole imparare a programmare, ma creare rapidamente e comodamente un Expert Advisor - mi dispiace, ma è così. E l'esperto, ovviamente, non dovrebbe rallentare o schiantarsi. Se si potesse, come i mattoni pronti, mettere insieme "proprio bene", sarebbe fantastico. Perché ci sono tutti i tipi di "cosa non va bene" ovunque. E non è sempre ovvio quale sia lo "sbaglio". Che ne dici di "il modo giusto"?

La documentazione è piuttosto minimalista in molti aspetti.

Il codebase è un grande mucchio che si deve scavare consapevolmente e intelligentemente per giorni per trovare il codice giusto.

Articoli - di regola, gli autori e altamente specializzati, più nel commercio che nella programmazione (ma la direzione della risorsa deve essere considerata), e quelli che sono sulla programmazione - per lo più sugli espedienti.

È qui che si trova il forum. Loro fanno domande qui e noi le mandiamo a... anche qui.

Il freelance non è una garanzia di buone pratiche o di formazione.

Lavoro autonomo, anche con un profiler - naturalmente presente, ma non abbastanza tempo per tutto. Alcune cose voglio prenderle sotto forma di mattoni pronti.

Sono totalmente d'accordo con te!

Vengo rimproverato per averlo fatto 'male' e mandato nel posto dove l'ho imparato...

 
Renat Fatkhullin:

Non hai bisogno di un diploma per comunicare, ma ne hai bisogno per dire "E dov'è la tanto decantata velocità di MT5?

Ti sono stati fatti notare i tuoi errori diverse volte, ma invece continui a piegare la linea del "ho il diritto di non sapere, insegnami sette!".

Le emozioni non sono state cancellate - le ho segnalate nella speranza di un aiuto!

Voglio sbagliarmi, sono pronto a cambiare il codice, ma voglio credere che tutto non sarà vano!

Non sono d'accordo con te che pretendo "ho il diritto di non sapere, insegnami sette!". - per quanto riguarda l'obbligo di insegnare - personalmente mi aspettavo un aiuto da te, come esperto, e consigli specifici su come le cose dovrebbero essere fatte.

Ogni metodo dell'autore lo considero e lo provo, che segue a questo thread e per il quale sono "grazie!".


 
Aleksey Vyazmikin:

Vi è già stata consigliata una soluzione già pronta -https://www.mql5.com/ru/code/18305

In base alle vostre esigenze:

Ho dei cicli nel mio codice, la quantità di calcoli può non essere conosciuta in anticipo.

Ho dei cicli nel mio codice e la quantità di calcoli può essere sconosciuta.

Высокопроизводительная библиотека iTimeSeries
Высокопроизводительная библиотека iTimeSeries
  • voti: 20
  • 2017.05.25
  • nicholishen
  • www.mql5.com
Эта библиотека предоставляет молниеносный доступ к таймсериям для реализации привычных методов MQL4 (например, iBarShift) в чувствительных к задержкам приложениях на MQL5.
 
Alexey Kozitsyn:

Fondamentalmente, posso offrirti questa variante (non ho controllato la correttezza del codice, solo per il tester, simbolo attuale, periodo attuale):

Si possono fare altre funzioni per analogia.

Provato la tua variante - entro il margine di variazione dell'errore

Era:
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1: 107509 tick, 35385 barre generate. Ambiente sincronizzato alle 0:00:00.032. Test superato in 0:02:52.037 (compresa la preelaborazione dei tic 0:00:00.031).
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1: tempo totale dal login all'arresto del test 0:02:52.069 (incluso 0:00:00.032 per la sincronizzazione dei dati storici)
2017.07.21 17:23:20.046 Core 1 351 Mb di memoria utilizzata compresi 32 Mb di dati storici, 64 Mb di dati di tick

Diventato con il tuo codice
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1: 107509 tick, 35385 barre generate. Ambiente sincronizzato alle 0:00:00.031. Test superato in 0:02:58.013 (compreso il preprocessing di ticks 0:00:00.031).
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1: tempo totale dal login all'arresto del test 0:02:58.044 (incluso 0:00:00.031 per la sincronizzazione dei dati storici)
2017.07.21 17:27:37.393 Core 1 352 Mb di memoria utilizzata compresi 32 Mb di dati storici, 64 Mb di dati di tick

MT4
2017.07.21 17:27:57.070 RUBRUR,M1: 225314 eventi tick (35701 barre, 231783 stati delle barre) processati in 0:00:04.306 (tempo totale 0:00:11.357)

Motivazione: