Antwort

Bestellungen Durchschnittspreis (mehrere magische Zahlen)

4 Antworten

ramacan

Abonnent, bbp_participant, Gemeinschaft, 72 Antworten.

Profil besuchen

vor 11 Jahren #111190

Wie kann ich den Durchschnittspreis der Aufträge (Multiple Magic Numbers) gewichtet nach Lots berechnen?

Herzliche Grüße.

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 11 Jahren #121712

können Sie die Funktion sqGetOrdersAveragePrice() im generierten EA-Code überprüfen.

Mark
StrategyQuant Architekt

0

ramacan

Abonnent, bbp_participant, Gemeinschaft, 72 Antworten.

Profil besuchen

vor 11 Jahren #121731

Mark,

 

Meinen Sie damit, dass ich sqGetOrdersAveragePrice() im Bereich Benutzerdefinierte Funktionen verwenden sollte? Bitte geben Sie mir ein Beispiel, wie ich den nach Lots gewichteten Durchschnittspreis für Magic#1 und Magic#2 abrufen kann, da ich kein Programmierer bin.

 

Herzliche Grüße.

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 11 Jahren #121833

Hallo,

 

Entschuldigung für die unzureichende Antwort.

 

Sie können den folgenden Code in die Datei {EA Wizard}/code/CustomFunctions.mq4 einfügen.

Dadurch wird EA Wizard diese Funktion zu jedem generierten EA-Code hinzufügen.

 

 

double GetMultiOrdersAveragePrice(int magic1, int magic2) {
  double sum = 0,0;
  double cnt = 0.0;
  for (int cc = OrdersTotal() - 1; cc >= 0; cc-) {
    if (!OrderSelect(cc, SELECT_BY_POS) ) continue;
    if((OrderMagicNumber() == magic1 || OrderMagicNumber() == magic2) && OrderSymbol() == Symbol()) {
      if(OrderType() == OP_BUY && OrderCloseTime() == 0) {
        Summe += OrderLots() * OrderOpenPrice ();
        cnt += OrderLots();
      }
      if(OrderType() == OP_SELL && OrderCloseTime() == 0) {
        Summe += OrderLots() * OrderOpenPrice ();
        cnt += OrderLots();
      }
    }
  }

  if (NormalizeDouble (cnt, Digits) == 0) return (0);

  return(Summe / cnt);
}

 

 

 

In den Regeln des EA-Assistenten können Sie diese neue Funktion dann unter Funktionen -> Benutzerdefinierte Funktion verwenden: GetMultiOrdersAveragePrice(1000, 2000)

um den Durchschnittspreis der Aufträge mit den magischen Zahlen 1000 und 2000 zu ermitteln.

 

Mark

Mark
StrategyQuant Architekt

0

ramacan

Abonnent, bbp_participant, Gemeinschaft, 72 Antworten.

Profil besuchen

vor 11 Jahren #121843

Vielen Dank für die ausführliche Anleitung.

 

Herzliche Grüße.

 

0

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)