Auguri per MQL5 - pagina 4

 
drknn:
Intero:
drknn:
Beh, ho un modesto suggerimento. Propongo di introdurre nel linguaggio una funzione che restituisca il numero di celle dell'array in cui si trova il valore dato (o in caso di fallimento - restituisca meno uno), altrimenti dobbiamo fare un ciclo ogni volta. La funzione ArrayBsearch() non è adatta - restituisce il valore sbagliato.

Il valore restituito da questa funzione sarà ancora controllato per essere uguale a -1, quindi potete controllare che il valore con l'indice restituito da ArrayBsearch sia uguale al valore che state cercando. Non una grande differenza

Cito dal riferimento.

int ArrayBsearch(...)
Restituisce l'indice del primo elemento trovato nella prima dimensione dell'array.
Se non c'è nessun elemento con il valore specificato nell'array, la funzione restituisce l'indice dell'elemento più vicino (per valore).

Bene, quando si cerca l'indice non solo di un numero, ma di un biglietto nell'array, questa funzione non si adatta affatto - perché ho bisogno dell'indice del biglietto simile più vicino, quando ho bisogno esattamente di questo biglietto, e se è assente, l'ordine non è tra quelli di mercato - è chiuso e dovremmo trovarlo nella storia! Quando si lavora con gli array spostati in modo sincrono, l'indice è una cosa molto importante, e deve essere preciso o non disponibile.



Ancora una volta, leggete quello che vi ho scritto

"Il valore restituito da questa funzione sarà ancora controllato per l'uguaglianza a -1, quindi potete controllare il valore con l'indice restituito da ArrayBsearch per l'uguaglianza al valore cercato. Non c'è una grande differenza".

Trova il biglietto più vicino, confrontalo con quello che stavi cercando, se non è uguale, non è nell'array.

 
Integer:

Rileggi quello che ti ho scritto

"Il valore restituito da questa funzione sarà ancora controllato per l'uguaglianza con -1, quindi potete controllare il valore con l'indice restituito da ArrayBsearch per l'uguaglianza con il valore che state cercando. Non c'è una grande differenza".

Trovato il biglietto più vicino, lo confronta con il biglietto, se non è uguale, significa che non è nella matrice.

Perché devi andare sempre in giro? Mostratemi un linguaggio di programmazione normale che non abbia una funzione che restituisca l'indice dell'elemento dell'array richiesto. Bene, scriverò la funzione da solo, allora almeno fatemi passare l'array in una subroutine come parametro.

Gli svantaggi di MQL4 sono numerosi. La flessibilità di questo linguaggio è inutile, ascoltiamo le nostre necessità e salviamo il codice dell'Expert Advisor. А? O gli sviluppatori non si preoccupano di nessuno se non di loro stessi?

 
drknn:

Beh, al diavolo, scriverò questa funzione da solo, poi almeno lasciatemi passare l'array come parametro alla subroutine.

In MQL4 è facile passare un array ad un sottoprogramma e altrettanto facile da accettare.
Ci sono molti svantaggi in MQL4. Ascoltiamo ciò che è necessario e salviamo il codice di Expert Advisor. А? O gli sviluppatori non si preoccupano di tutti tranne che di loro stessi?
Sì, gli svantaggi sono ben noti. Gli sviluppatori non hanno detto niente in contrario, vero? Abbiamo lavorato sul linguaggio MQL5 per molto tempo.
 
drknn, dai un'occhiata qui: https://docs.mql4.com/ru/basis/variables/formal. Si tratta di trasferire gli array.
 
xenon13:

Con tutto il rispetto MQL4 è ancora il miglior MTS sul mercato, le seguenti cose sono molto mancanti:

1. API o possibilità di chiamare le funzioni EA dalla DLL (signor sviluppatore - ne ha davvero bisogno !!!! )

Gestori di eventi - almeno un evento di sistema (un CallBack o qualcosa con un numero di messaggio, per esempio il messaggio - il trading su questo simbolo è fermo)

3. Strutture, assegnazioni nel record a = b = d = e, conversioni implicite di tipo.

Chiedo ad altri di unirsi e continuare la lista dei desideri in questo thread.

P.S. ancora una volta riguardo al primo punto, si può lasciare tutto com'è - ma fare la chiamata da DLL.


Mi piacerebbe vedere un linguaggio orientato agli oggetti vicino al C++

Se ci stiamo avvicinando allo scambio

Vorrei ottenere

1 chiamare questa funzione con timer personalizzabile (sarebbe una caratteristica molto bella)

2 LOSS TAKE ACTION (anche se capisco che questo può essere tracciato programmaticamente usando diversi gestori)

3 sarebbe bello avere un qualche tipo di debugger visivo (anche se sono soddisfatto della stampa di controllo)

 
Mathemat:
drknn, dai un'occhiata qui: https://docs.mql4.com/ru/basis/variables/formal. Si tratta di trasferire gli array.

Grazie. Darò un'occhiata.
 
Renat:
Sì, i difetti sono noti. Gli sviluppatori non hanno detto niente in contrario, vero? Stiamo lavorando sul linguaggio MQL5 da molto tempo ormai.

Mi dispiace, forse ho esagerato. Il problema è che non esiste una guida adeguata alla lingua. Se avessimo avuto un aiuto adeguato, gli utenti avrebbero avuto meno domande.
 
Una lista di nuove caratteristiche del linguaggio MQL5 sarebbe stata pubblicata da MQ. Sarebbe stato possibile discutere alcuni punti in anticipo - le nuove proprietà della lingua. Gli sviluppatori avrebbero modificato i loro piani. Potremmo anche fare una votazione sulle nuove caratteristiche o su quelle che vengono, per esempio, abolite.

A proposito, sarebbe bene aggiungere l'ordinamento delle schede con il codice nel meta-editor. Spesso uno vuole raggruppare alcuni moduli uno accanto all'altro per non dover scorrere continuamente per trovarne uno necessario.
C'è stato un problema in un linguaggio quando ho passato una variabile di carattere stringa che era un parametro di un'altra funzione.
Non ha funzionato così:

func(Symbol());

void func(string symbol) {
mql_func(simbolo);
}

Ma funziona così

void func() {
mql_func(simbolo();
}
 
drknn писал (а):


Perché devi andare sempre in giro? Mostratemi un linguaggio di programmazione normale che non abbia una funzione che restituisca l'indice dell'elemento dell'array richiesto. Bene, scriverò la funzione da solo, allora almeno fatemi passare l'array in una subroutine come parametro.


Delphi non ha una tale funzione. :) E forse esiste da qualche parte in un modulo separato. Se esiste, non ne so niente, perché è più facile scriverlo io stesso che cercarlo o meno.

A proposito, implementare gli algoritmi da soli non è un "workaround". "Workaround" è quando si usano componenti di terze parti, procedure, librerie e pezzi di codice già pronti. Questo è il bypass. Il termine scientifico per questo è "lamerismo". :)
Gli sviluppatori hanno già detto che fanno un linguaggio per i programmatori, non per i programmatori sfigati. :)

Tutte le funzioni che molte persone vogliono, puoi crearle tu stesso in mezz'ora, invece di aspettare per 3 anni che gli sviluppatori le facciano per te. Poi sono state caricate in una libreria separata e semplicemente inserite in ogni nuovo Expert Advisor da un solito inlude. È così difficile pensarci? Questa è una scuola materna. Il linguaggio è fresco, ci sono molte opportunità per la creatività. Ma se una persona non è creativa, questo linguaggio gli è controindicato. È controindicato in molte cose, compreso il commercio. :) Scusate l'eventuale bruschezza, non potevo sopportarla.



Vorrei solo che fosse stato aggiunto un operatore di transizione. Il resto mi va bene.

Se volessi cambiare il parametro OrderLots nel commercio reale, non vorrei doverlo cancellare e impostarne uno nuovo. Ho tutti i miei stati pieni di ordini pendenti. Penso che non dovrebbe essere difficile da implementare. Renat, se stai leggendo questo, per favore rispondi.
 
Bauleken:
drknn ha scritto (a):


Amico, perché devi andare sempre in giro? Mostratemi un linguaggio di programmazione normale, che non abbia una funzione che restituisca l'indice dell'elemento dell'array richiesto. Dai, scriverò questa funzione da solo, almeno fammi passare l'array in una subroutine come parametro.


Non esiste una funzione simile in Delphi. :) Se esiste, non ne so nulla, perché è più facile scriverlo da soli che cercarlo o meno.

A proposito, implementare gli algoritmi da soli non è un "workaround". "Workaround" è quando si usano componenti di terze parti, procedure, librerie e pezzi di codice già pronti. Questo è il bypass. Il termine scientifico per questo è "lamerismo". :)
Gli sviluppatori hanno già detto che fanno un linguaggio per i programmatori, non per i programmatori sfigati. :)
Non dovremmo programmare del tutto in codice macchina? Perché tutti questi linguaggi di alto livello e persino l'assembler? Con una cosa così unica come il codice macchina si può fare quello che si vuole :)


Tutte le funzioni che molte persone vogliono, puoi crearle tu stesso in mezz'ora, invece di aspettare per 3 anni che gli sviluppatori le facciano per te. Poi le stipuli in una libreria separata e le inserisci semplicemente in ogni nuovo Expert Advisor con un solito inlude. È così difficile pensarci? Questa è una scuola materna. Il linguaggio è fresco, ci sono molte opportunità per la creatività. Ma se una persona non è creativa, questo linguaggio gli è controindicato. È controindicato in molte cose, compreso il commercio. :) Scusate l'eventuale bruschezza, non potevo sopportarla.
:))))))))))) Mi ha tirato su il morale - mi ha dato una bella risata :))))))))) grazie. No, davvero :)))))
Vorrei solo che fosse stato aggiunto un operatore di transizione. Il resto mi va bene.

Se volessi cambiare il parametro OrderLots nel commercio reale, non vorrei doverlo cancellare e impostarne uno nuovo. Ho tutti i miei stati pieni di ordini pendenti. Penso che non dovrebbe essere difficile da implementare. Renat, se stai leggendo questo, per favore rispondi.
Se l'avete letto, vi prego di rispondermi, ma potreste dirmi di più? Si può modificare una posizione put o non capisco qualcosa?