10. MQL5: Aggiunto il supporto nativo per le librerie .NET con importazione di funzioni "intelligenti". Ora puoi usare le librerie .NET senza scrivere wrapper speciali - MetaEditor si occupa di questo.
Non chiamando a scrivere in C#. Solo che i benefici della conversione implicita sono discutibili (imho, zucchero, non di più), non aumenta la redditività delle strategie. Se qualcuno può spiegare perché aiuta così tanto quando si codificano le strategie, sarei felice di imparare qualcosa di nuovo.
Vasiliy Sokolov: Non aumenta la redditività delle strategie.
Fare riferimento alla redditività delle strategie quando si parla di tecniche di programmazione è piuttosto deprimente.
Vasiliy Sokolov: Se qualcuno può spiegare perché aiuta così tanto nella codifica - sarò felice di imparare qualcosa di nuovo.
Non riesci nemmeno a creare correttamente il tuo array multidimensionale. Figuriamoci un array con diversi tipi di valori. Non si può nemmeno fare con uno solo, perché tale codice non entrerebbe in mql:
Naturalmente, potete scrivere d=array[5].to_double(), far finta che sia così ed essere felici del vostro brutto codice. Ma se l'overloading delle operazioni di conversione dei tipi fosse permesso, quasi nessuno preferirebbe questo modo di scrivere d=array[5].
Naturalmente potete scrivere d=array[5].to_double(), fingere che questo sia corretto ed essere felici del vostro codice buggato. Ma se l'overloading delle operazioni di conversione dei tipi fosse permesso, quasi nessuno preferirebbe questo modo di scrivere d=array[5].
Semplice. d=array[5] potrebbe:
template <typename T>
class MainArray
{
private:
T m_items[];
int m_curr;
public:
MainArray()
{
ArrayResize(m_items, 16);
m_curr = 0;
}
void Add(T item)
{
m_items[m_curr++] = item;
}
T operator[](int index)
{
return m_items[index];
}
};
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
MainArray<double> array;
array.Add(123.456);
double v = array[0];printf((string)v);
}
Se si diventa nerd, ci sono ancora difficoltà con array[3] = 4.00123; Ma è leggibile e va bene così com'è.
Se si diventa noiosi, allora ci sono difficoltà con array[3] = 4.00123; Ma è leggibile e abbastanza buono così com'è.
Sì, d=array[5] va bene. ma poi non puoi fare array[5]=d. Ma si può fare %= al posto di =. nessun problema, allo stesso tempo l'icona ci ricorderà attraverso quale luogo si fa tutto))
Naturalmente potete scrivere d=array[5].to_double(), fingere che questo sia corretto ed essere felici del vostro codice buggato. Ma se l'overloading delle operazioni di conversione dei tipi fosse permesso, quasi nessuno preferirebbe questo modo di scrivere d=array[5].
Che problemi ha la gente))) Oh, che la mia vita sia benedetta!
A proposito, scrivered=array[5].to_double() è molto più semplice did=(double)array[5] Basta premere un punto. Ma non stiamo cercando modi facili...
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Per quanto mi ricordo, C# non è buon amico di mql
https://www.mql5.com/ru/forum/285631
10. MQL5: Aggiunto il supporto nativo per le librerie .NET con importazione di funzioni "intelligenti". Ora puoi usare le librerie .NET senza scrivere wrapper speciali - MetaEditor si occupa di questo.
Non aumenta la redditività delle strategie.
Fare riferimento alla redditività delle strategie quando si parla di tecniche di programmazione è piuttosto deprimente.
Se qualcuno può spiegare perché aiuta così tanto nella codifica - sarò felice di imparare qualcosa di nuovo.
Non riesci nemmeno a creare correttamente il tuo array multidimensionale. Figuriamoci un array con diversi tipi di valori. Non si può nemmeno fare con uno solo, perché tale codice non entrerebbe in mql:
Naturalmente, potete scrivere d=array[5].to_double(), far finta che sia così ed essere felici del vostro brutto codice. Ma se l'overloading delle operazioni di conversione dei tipi fosse permesso, quasi nessuno preferirebbe questo modo di scrivere d=array[5].
...
Naturalmente potete scrivere d=array[5].to_double(), fingere che questo sia corretto ed essere felici del vostro codice buggato. Ma se l'overloading delle operazioni di conversione dei tipi fosse permesso, quasi nessuno preferirebbe questo modo di scrivere d=array[5].
Semplice. d=array[5] potrebbe:
Se si diventa nerd, ci sono ancora difficoltà con array[3] = 4.00123; Ma è leggibile e va bene così com'è.
Giusto. d=array[5] va bene:
Se si diventa noiosi, allora ci sono difficoltà con array[3] = 4.00123; Ma è leggibile e abbastanza buono così com'è.
Sì, d=array[5] va bene. ma poi non puoi fare array[5]=d. Ma si può fare %= al posto di =. nessun problema, allo stesso tempo l'icona ci ricorderà attraverso quale luogo si fa tutto))
Sì, d=array[5] può. ma allora non puoi fare array[5]=d. Ma puoi fare %= invece di =. Nessun problema, e l'icona ti ricorderà quale posto usare))
Se vuoi davvero farlo, puoi fare così
ecc.
Anch'io ero critico all'inizio, ma poi ho pensato che avrei trovato un uso per me stesso:
Ho chiesto un operatore di parentesi e un operatore di colpo d'uva circa tre o quattro anni fa.
chiedete, forse potete fare di meglio.
...
Naturalmente potete scrivere d=array[5].to_double(), fingere che questo sia corretto ed essere felici del vostro codice buggato. Ma se l'overloading delle operazioni di conversione dei tipi fosse permesso, quasi nessuno preferirebbe questo modo di scrivere d=array[5].
Che problemi ha la gente))) Oh, che la mia vita sia benedetta!
A proposito, scrivered=array[5].to_double() è molto più semplice did=(double)array[5] Basta premere un punto. Ma non stiamo cercando modi facili...