Dall'annuncio di MT5, ho cercato di ottenere una risposta alla domanda:
Quanto aumenteranno le prestazioni della mia EA (o di chiunque altro) se ci metto tutta questa roba super-duper?
Non ho mai ricevuto una risposta...
...
Non è possibile implementare un algoritmo di trading complesso senza un linguaggio di programmazione sviluppato. Le soluzioni semplici a livello di "compra più in alto di mashka, vendi più in basso" sono nel passato, negli anni 80. Di conseguenza, non è possibile scrivere nulla di redditizio su un linguaggio di programmazione limitato (la fortuna non è presa in considerazione, ovviamente).
Le librerie esterne sono vietate, da qui il mercato R. Se non fosse per questa restrizione, diventerei ricco senza alcun rischio vendendo indicatori di altissima qualità.
...
Sai cosa ferma un cattivo ballerino?
Nessuno vieta di arricchirsi convertendo metodi statistici superprofitti in codice MQL. AlgLib è il vostro aiuto.
Ma è tutto come la tua fantasia: "Se avessi avuto lo stesso, ma con le asole rosa, avrei fatto qualcosa che mi avrebbe fatto diventare un top! - Cercate di scrivere qualcosa e di vendere prima almeno una copia del vostro prodotto. Rapidamente scenderai sulla terra e capirai che tutto è molto più complicato della semplice implementazione di qualche metodo statistico.
Sfortunatamente, le interfacce sono proibite in MQL5, il che è molto spiacevole, anche se avrebbero potuto essere abilitate con una mossa pulita: permettere l'ereditarietà multipla di classi puramente astratte.
Le interfacce in MQL5 funzionano:
class Interface
{
public:
virtualvoid Do(void)=0;
};
class MyTest : public Interface
{
public:
MyTest(void) {};
~MyTest(void) {};
virtualvoid Do(void) { Print("Hello!"); }
};
voidOnStart()
{
MyTest test;
test.Do();
}
Sfortunatamente, solo a livello di pensiero velleitario:
//+------------------------------------------------------------------+//| Class of all classes |//+------------------------------------------------------------------+class CObject
{
};
//+------------------------------------------------------------------+//| Enumerator interface |//+------------------------------------------------------------------+template<typename T>
class IEnumerator
{
public:
virtualbool MoveNext();
virtual void Reset();
virtual T Current();
};
class CList : public CObject, public IEnumerator
{
...
}
Cioè, finché IEnumerator è una classe puramente astratta, l'ereditarietà multipla che la coinvolge è completamente sicura.
Nel frattempo, infatti, le interfacce devono ancora essere avvolte in lunghe catene di eredità. Un esempio di questo è la meravigliosa libreria Internal postata da MQ:
Renat Fatkhullin: Ci stiamo già lavorando, ne abbiamo bisogno noi stessi.
Ben fatto. Sarà davvero bello. Inoltre, la soluzione è abbastanza elegante: è sufficiente permettere l'ereditarietà multipla dalle classi se e solo se sono rappresentate come classi astratte pure (non contengono dati o implementazioni, tutti i metodi sono pubblici). Cioè non è necessario introdurre qualche costrutto o parola chiave specifica che non fa parte dello standard C++.
Inoltre, come nota a margine: la biblioteca interna deve essere ulteriormente sviluppata. Diventerà una grande caratteristica quando appariranno le interfacce. Il vecchio CObject sarà dimenticato come un brutto sogno.
Vasiliy Sokolov: è sufficiente permettere l'ereditarietà multipla dalle classi se e solo se sono rappresentate come classi puramente astratte (non contengono dati o implementazioni, tutti i metodi sono pubblici).
... e non sono ereditati da nessuno, altrimenti sono ancora rombi.
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.
Dall'annuncio di MT5, ho cercato di ottenere una risposta alla domanda:
Quanto aumenteranno le prestazioni della mia EA (o di chiunque altro) se ci metto tutta questa roba super-duper?
Non ho mai ricevuto una risposta...
...
...
Le librerie esterne sono vietate, da qui il mercato R. Se non fosse per questa restrizione, diventerei ricco senza alcun rischio vendendo indicatori di altissima qualità.
...
Sai cosa ferma un cattivo ballerino?
Nessuno vieta di arricchirsi convertendo metodi statistici superprofitti in codice MQL. AlgLib è il vostro aiuto.
Ma è tutto come la tua fantasia: "Se avessi avuto lo stesso, ma con le asole rosa, avrei fatto qualcosa che mi avrebbe fatto diventare un top! - Cercate di scrivere qualcosa e di vendere prima almeno una copia del vostro prodotto. Rapidamente scenderai sulla terra e capirai che tutto è molto più complicato della semplice implementazione di qualche metodo statistico.
Sfortunatamente, le interfacce sono proibite in MQL5, il che è molto spiacevole, anche se avrebbero potuto essere abilitate con una mossa pulita: permettere l'ereditarietà multipla di classi puramente astratte.
Le interfacce in MQL5 funzionano:
Le interfacce in MQL5 funzionano:
Un oggetto deve essere in grado di supportare più interfacce, altrimenti diventa privo di significato.
Sfortunatamente, solo a livello di pensiero velleitario:
Cioè, finché IEnumerator è una classe puramente astratta, l'ereditarietà multipla che la coinvolge è completamente sicura.
Le interfacce in MQL5 funzionano:
Nel frattempo, infatti, le interfacce devono ancora essere avvolte in lunghe catene di eredità. Un esempio di questo è la meravigliosa libreria Internal postata da MQ:
Un oggetto deve essere in grado di supportare più interfacce, altrimenti diventa privo di significato.
Ci stiamo già lavorando, ne abbiamo bisogno noi stessi.
è sufficiente permettere l'ereditarietà multipla dalle classi se e solo se sono rappresentate come classi puramente astratte (non contengono dati o implementazioni, tutti i metodi sono pubblici).