Répondre

Prix moyen des commandes (plusieurs chiffres magiques)

4 réponses

ramacan

Abonné, bbp_participant, communauté, 72 réponses.

Visiter le profil

il y a 11 ans #111190

Comment puis-je calculer le prix moyen des ordres (nombres magiques multiples) pondéré par les lots ?

Voir aussi.

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 11 ans #121712

vous pouvez vérifier la fonction sqGetOrdersAveragePrice() dans le code généré par l'EA.

Marque
StratégieArchitecte de Quantités

0

ramacan

Abonné, bbp_participant, communauté, 72 réponses.

Visiter le profil

il y a 11 ans #121731

Marquer,

 

Voulez-vous dire que je devrais utiliser sqGetOrdersAveragePrice() dans la zone des fonctions personnalisées ? Soyez indulgent avec moi car je ne suis pas un programmeur, donnez-moi un exemple de la façon de récupérer le prix moyen pondéré par les lots pour Magic#1 et Magic#2.

 

Voir aussi.

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

il y a 11 ans #121833

Bonjour,

 

Désolé pour la réponse insuffisante.

 

Vous pouvez ajouter le code suivant au fichier {EA Wizard}/code/CustomFunctions.mq4.

L'EA Wizard ajoutera cette fonction à chaque code EA généré.

 

 

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) {
        sum += OrderLots() * OrderOpenPrice () ;
        cnt += OrderLots() ;
      }
      if(OrderType() == OP_SELL && OrderCloseTime() == 0) {
        sum += OrderLots() * OrderOpenPrice () ;
        cnt += OrderLots() ;
      }
    }
  }

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

  return(sum / cnt) ;
}

 

 

 

Ensuite, dans les règles de l'EA Wizard, vous pouvez utiliser cette nouvelle fonction comme Fonctions -> Fonction personnalisée : GetMultiOrdersAveragePrice(1000, 2000)

pour obtenir le prix moyen des ordres avec les nombres magiques 1000 et 2000.

 

Marque

Marque
StratégieArchitecte de Quantités

0

ramacan

Abonné, bbp_participant, communauté, 72 réponses.

Visiter le profil

il y a 11 ans #121843

Merci pour les instructions détaillées.

 

Voir aussi.

 

0

Affichage de 4 réponses de 1 à 4 (sur un total de 4)