Besonderheiten von Expert Advisors

MetaQuotes | 4 November, 2015

Das Schreiben und Testen von Experten im Handelssystem MetaTrader hat einige Besonderheiten.

  • Bevor man eine Position eröffnet, muss man überprüfen, ob es verfügbares Geld auf dem Konto gibt. Wenn das Geld nicht ausreichend ist, wird die Aufgabe "Positioneröffnung"misslingen. Dabei muss der "FreeMargin"-Wert beim Testen mindestens 1000 betragen, denn der Preis eines Lots macht beim Testen 1000 aus.

  • if(AccountFreeMargin() < 1000) return(0); // kein Geld - beenden
  • Den Zugang zu historischen Daten kann man durch die indizierten und vorgegebenen Arrays Time, Open, Low, High, Close und Volume bekommen. Der Index nimmt in diesen Arrays historisch bedingt vom Ende zum Beginn zu. D.h die letzten Daten haben den Index 0. Der Index 1 bedeutet Daten mit der Verschiebung um eine Periode zurück, der Index 2 - zwei Perioden zurück, 3 - drei Perioden zurück usw.

  • // wenn Close auf dem vorherigen Balken weniger als  
    // Close auf dem Balken vor diesem Balken ist
    if(Close[1] < Close[2]) return(0);
  • Man kann auch den Zugang zu historischen Daten über andere Zeitintervallen sowie andere Währungspaare bekommen. Um diese Daten zu erhalten, muss man zuerst ein eindimensionales Array definieren und anhand der Funktion "ArrayCopySeries" kopieren. Dabei kann man beim Funktionsaufruf weniger Parameter mitteilen und voreingestellte Parameter nicht angeben.

  • double eur_close_m1[];
    int number_copied = ArrayCopySeries(eur_close_m1, MODE_CLOSE, 
                                        "EURUSD", PERIOD_M1);