Tester di supporto agli script e ai consulenti MG4 - pagina 5

 
Integer:
In questo senso, C++ è uguale a JavaScript. Ed è vero!

Una magnifica bugia!

Dacci un esempio di un'implementazione C++ di una funzione simile a eval() di Javascript:

01      var str = "if (a) { 1+1 } else { 1+2 }"
02      var a = true
03      var b = eval(str)
04      alert("b равно : " + b) // 2
05       
06      // теперь поменяем "a"
07       
08      a = false
09      b = eval(str)
10      alert("b равно : " + b) // 3

Cioè, scrivere un pezzo di codice sorgente C++ in una variabile di tipo std::string, e poi chiamare la funzione eval(), che eseguirà quel pezzo di codice preso dalla variabile di tipo std::string.

Suggerisci un'implementazione di una tale funzione eval() in C++ (cioè non sto nemmeno parlando dell'assenza di una tale funzione, ma della possibilità di una tale funzione nel linguaggio stesso).

Inutile dire che questa non è l'unica differenza.

Il nucleo di MQL4++ non differisce da quello di MQL5: stessa sintassi, stessi tipi, operazioni, oggetti, polimorfismo, sovraccarico...

L'unica differenza è la libreria che implementa l'API di Expert Advisors, indicatori e script. In questo senso, nello stesso Javascript, c'è un linguaggio di base e due modelli di oggetti:

Strutturalmente, JavaScript può essere rappresentato come un'unione di tre parti chiaramente distinguibili:

  • kernel (ECMAScript),
  • Modello di oggetto del browser (BOM),
  • Modello di oggetto del documento (Document Object Model o DOM).

E MQL può essere rappresentato come cose chiaramente distinguibili: il linguaggio di base e le librerie. Se il core MQL4 è diverso dal core MQL4++, il core MQL4++ non differisce dal core MQL5.

Quindi, Renat ha assolutamente ragione qui, ed è strano discutere con questo.

 
Integer:

Esattamente. Soprattutto approfittando dell'autorità della propria posizione superiore.

Tutte le lingue sono uguali, tranne quelle particolarmente stravaganti. Tutti loro possono essere imparati in 21 giorni da qualsiasi idiota. Tutti hanno per, mentre, se, interruttore, forse la forma di scrittura è diversa, ma in linea di principio non cambia nulla.

Naturalmente, una comprensione così superficiale rende impossibile vedere la differenza. Ecco perché sembrano essere tutti uguali.

Vorrei giocare con la funzione eval() non solo in C++ ma anche in MQL4++.

Scrivereste una tale funzione almeno in MQL4++, dato che non ce n'è una integrata?

Non sarò in grado di scriverlo - le differenze tra Javascript e MQL4++ sono troppo per me.

Stai dicendo che tutti i linguaggi sono uguali, e quindi Javascript e MQL4++ sono la stessa cosa, quindi deve essere abbastanza facile per te scriverlo.

 
Renat:

Invece siamo passati a funzioni CopyXXX molto economiche, dove lo sviluppatore interroga esattamente l'array locale per quanti dati ha bisogno, non l'intero grafico disponibile. Poi viene la gestione più veloce possibile dei dati locali (invece del vecchio piuttosto costoso Open/High/Low/Close/Time[xxx]), in più l'autore può mettere in cache quei dati e usarli con parsimonia nella chiamata successiva. Il risparmio di memoria e di CPU è enorme. Inoltre, la piattaforma stessa è particolarmente libera di gestire vasti database - l'accesso ad essi è sempre su richiesta (piuttosto che un accesso diretto non supervisionato) e questo permette una gestione flessibile delle cache.

Va anche notato che la semplicità delle chiamate Open/High/Low/Close/Time[xxx] in MQL4 era limitata al simbolo e al timeframe corrente, e tutti gli altri dati per altri simboli e timeframe erano ottenuti usando le funzioni iClose/iLow(...), che causavano gravi ritardi. La transizione in MQL5 ad un unico modello di funzione CopyXXX ha migliorato radicalmente la situazione, permettendo agli sviluppatori di ottenere i pezzi di dati richiesti in una sola richiesta, e di non fare più chiamate bloccate (si pensi ai blocchi in ogni singola chiamata a iClose).

Queste non sono le nostre funzioni e nemmeno questo articolo. Questo articolo è un insieme di stampelle mostruose, ma è stato rilasciato per mostrare la differenza.

Ho spiegato ripetutamente la necessità di usare le nuove caratteristiche di MQL5, non le orrende stampelle.

Se ci fosse una documentazione con un numero sufficiente di esempi allegati, basati sull'uso letterale delle nuove caratteristiche di MQL5, in modo che anche i neofiti possano assemblare il loro codice come dadi, senza entrare in tutti i dettagli, e il codice sarebbe comunque letterato in generale, grazie al numero sufficiente di esempi e al codice di esempi scritto con l'uso letterale delle nuove caratteristiche di MQL5, la situazione con MT5 non sarebbe così male.

Tuttavia, non appena al suo posto ci sono stati articoli con "un mucchio di orribili stampelle" usate come codice, abbiamo sia la MT5 rifiutata che un tale atteggiamento verso le API in MQL5. E la stragrande maggioranza del pubblico non sono programmatori professionisti. Naturalmente, questa non è l'unica ragione per il rifiuto della MT5, ma è una delle principali.

 

A qualcuno è stato chiesto:

- Perché se, diciamo, gli alieni esistono, non ci parlano, non ci insegnano?

Gli è stato detto:

- Insegneresti agli scarafaggi a parlare? Perché non lo fai?


Sempliciotto, senza offesa, non hai capito un accidente di quello che ha dettoInteger.
 
simpleton:

Se solo ci fosse una documentazione con un numero sufficiente di esempi allegati, scritti sulla base dell'uso competente delle nuove caratteristiche di MQL5,

Ladocumentazione di MQL5 è di 4000 pagine in 9 lingue, un enorme kodobase in codice sorgente, 360 articoli tradotti in 5 lingue, forum in 5 lingue, dove si possono fare domande, ecc.

 
rustein:

Sempliciotto, senza offesa, non hai capito un cazzo di quello che ha dettoInteger.

Ha capito bene.

Reshetov l'ha detto in modo ancora più preciso: https://www.mql5.com/ru/forum/153749/page4#998584

In generale, gli attacchi alla MT5 sono solo scuse marce di chi non vuole passare a un nuovo terminale o invenzioni di chi ha solo sentito parlare della MT5 ma non sa dove sia.

 
Renat:

Ha capito bene.

In generale, gli attacchi alla MT5 sono solo scuse marce da parte di chi non vuole passare a un nuovo terminale, o invenzioni di chi ha solo sentito parlare della MT5 ma non sa dove sia.


Cosa c'entra la MT5?
Voglio farlo per molto tempo. Ma il broker non offre ancora MT5. Quindi promuovilo correttamente.
Per quanto riguarda chi ha capito cosa o no, forse non capite. È così importante?
 
rustein:

Per quanto riguarda chi ha capito cosa o non ha capito, forse non l'hai capito neanche tu. È così importante?

Non hai pronunciato una sola frase significativa o fatto una sola argomentazione. Solo emozioni.

 
Renat:

Non hai pronunciato una sola frase significativa o fatto una sola argomentazione. Solo l'emozione.

И?
 
simpleton:

...

C'è stata una discussione da qualche parte qui di recente su quale linguaggio di programmazione imparare. Un partecipante ha dato una raccomandazione molto utile - prima il russo (o qualsiasi altra lingua madre). Per capire di cosa tratta la conversazione.

Nella frase"In questo senso, C++ non è diverso da JavaScript. "la frase"In questo modo" definisce (o chiarisce) il criterio di confronto. Quindi sorge una strana domanda - "Di cosa stai parlando qui adesso?".

Motivazione: