Ik ben gewoon benieuwd naar jullie mensen daar. Gebruikt iemand hier echt veel MetaTrader (om MQL te schrijven), maar slechts weinigen gebruiken cTrader (cAlgo)?
Afgezien van de voordelen die de makelaar te bieden heeft, ben ik van mening dat MetaTrader niet het beste platform is om EA's te bouwen. MQL = C , ze gebruiken C als hun basiscode. Het staat op hun documentatiepagina:
https://www.mql5.com/en/docs
Terwijl cTrader (cAlgo) C# als basiscode gebruikt.
Ik ben een fulltime technisch adviseur, applicatieontwikkelaar, beginnend webdesigner en ken de meeste recente technologie voor applicatieontwikkeling. Ik doe dit al meer dan 10 jaar en ontdekte dat C# en Java beide sterke concurrenten zijn. Beiden werden genoemd in de top 10 van meest populaire programmeertalen, samen met Javascript, Scala, Go, Phyton. Maar geen van hen is C . Naar mijn ervaring (na het schrijven van 3 EA's), is MQL gewoon moeilijk. Als uw logica zo simpel is als iets berekenen en vervolgens lopende orders of posities cre�ren op basis van de markt, is MQL net genoeg. Maar als je eenmaal op complexere idee�n ingaat, is MQL gewoon niet genoeg... sorry om te zeggen.
Neem bijvoorbeeld een van mijn EA, Tunnel Martingale (TM). Als je mijn topic volgt (
https://www.aforexa.com/trading-syst...ivots-win.html) in het commerci�le gedeelte, is het eigenlijk gebouwd met MQL. Omdat de logica eenvoudig is! Start willekeurig een marktpositie, plaats dan een lopende order in de tegenovergestelde richting, zodra de lopende order is bereikt/uitgevoerd, plaats dan een andere lopende order in de tegenovergestelde richting, enz..etc. Een strategie is maar een strategie, mislukt, de investering droog gezogen en dan weer terug naar de tekentafel.
Naarmate idee�n om te verbeteren net iets verder komen, wordt het coderen met MQL alleen maar moeilijker. Een van de idee�n om te verbeteren is, in plaats van de Martingale-serie onbeperkt en voor onbepaalde tijd uit te voeren, kunnen we het tijdsbestek beperken tot alleen op een specifieke datum en tijd voor alleen een specifiek interval/duur. Nu is hier de vangst.
De manier waarop C met datum en tijd omgaat, gebruikt momenteel het oude gegevenstype dat is gebaseerd op een geheel getal dat teken vertegenwoordigt die zijn berekend sinds 1 januari 1970! Dat is zoiets als prehistorisch spul. Dus nu begrijp ik dat als ik een specifieke datum en tijd van A naar B wil defini�ren, ik de vinkweergave van die datum moet weten.
Dus als ik wil schrijven dat de TM begint op 31 maart 2020 12:00:00, moet ik 637212528000000000 schrijven in een parameter, variabele of een andere communicatiemethode tussen mezelf als gebruiker van de EA. Dat is het niet, DateTime-functies zijn zeer beperkt in MQL.
Nu is een andere uitdaging dat ik een object voor de datums wil introduceren in de invoerparameter. Zowel MQL als cAlgo kunnen op geen enkele manier complexe invoerparameters defini�ren. Maar dat kan door een bestandsconfiguratie te introduceren, zoiets als JSON of XML. In MQL zijn er enkele regels nodig om een ??????bestand te lezen. U moet het concept van de aanwijzer begrijpen, u moet controleren of de bestandshandle gesloten is, indien niet gesloten, moet u de handgreep sluiten, zo niet, dan zal het vastlopen enz. enz.
In cAlgo kan deze taak worden uitgevoerd door een functie aan te roepen en deze vervolgens toe te wijzen aan een variabele. Slechts 1 regel.
Nu, praat over het object in de programmeerwereld, zodra we het configuratiebestand hebben gelezen, kunnen we de configuratie benaderen met behulp van OOP, waarin binnenin het object ook een array van een ander object etc..etc is. OOP in C is gewoon tijdverspilling. Dit is waarom:Je kunt XML of JSON niet zomaar inlezen in een object in C . Er zijn te veel stappen om dit te bereiken, terwijl in cAlgo minimaal in 2 regels kan worden gedaan. Je kunt niet zomaar een reeks objecten sorteren (en dit is gewoon dom). U kunt sorteren als het te sorteren gegevenstype het getal is (int, long, short), niet met een ander gegevenstype zoals datum/tijd. En het sorteren is net zo eenvoudig, er is geen andere functie. Men moet zijn eigen sorteerfunctie cre�ren, en door dit te doen, verspilt u gewoon veel tijd. Alleen om die 2 redenen heb ik mijn kansen opgegeven en ben ik overgestapt op cTrader.
Het is niet dat ik geen MQL wil leren. Maar goed, het schrijven van EA's zou net zoiets moeten zijn als het schrijven van een zakelijke applicatie, het moet robuust, snel, snel, eenvoudig zijn, zodat de minder belangrijke dingen op gang komen. Tenzij, als u code schrijft voor een machine, robotachtige dingen of gaming, of code die snellere toegang tot de machinetaallaag nodig heeft, dan is C de beste keuze.
Stelt u zich eens voor, u wilt van uw standplaats nu in Hawaii naar New York uw bestemming. Met C# (of cTrader/cAlgo) hoeft u alleen maar elk beschikbare vervoermiddel te gebruiken (of te kopen), auto's, veerboottickets, vliegtuigtickets, bussen, treinen, alles om uw bestemming snel te bereiken. Met MQL heb ik het gevoel in het jaar 1781 te leven, waar we met onze handen een boot moeten bouwen om daar te komen.
Dus, hoe is je ervaring, mensen?