[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 45

 
Stells:

Bon après-midi.

Veuillez m'aider à extraire les valeurs de Up_Line et Down_Line de l'indicateur ExTrendv2 (ci-joint) vers l'Expert Advisor.

J'essaie la méthode suivante :

Pour Up_Line iCustom(NULL, 0, "ExTrendv2", 0, 0,1)

pour Down_Line iCustom(NULL, 0, "ExTrendv2", 0, 1,1)

échoue.


Un EA avec un tel indicateur n'accroche-t-il pas le terminal ?
 

Il ne semble pas s'accrocher dans le testeur.

Seulement, je n'arrive toujours pas à faire sortir les valeurs, ça n'a aucun sens.

 
Bonjour, j'essaie de tester l'Expert Advisor sur un symbole et 4 horizons temporels en même temps - j'ai un petit problème - erreur 129 - mauvais prix à l'ouverture et à la fermeture, le fil de négociation semble être séparé avant d'envoyer l'orer et while(IsTradeContextBusy() || !IsTradeAllowed()){int Interval = MathRand()+1000 ;
Print("Le fil de négociation est occupé. Répéter la vérification dans "+DoubleToStr((Intervalle/1000),0)+" sec") ;
Sleep(Interval);} RefreshRates() ; Quelqu'un sait-il ce qu'est ce truc et comment le gérer ?
 
Stells:

Il ne semble pas s'accrocher dans le testeur.

Seulement, je n'arrive toujours pas à faire sortir les valeurs, ça n'a aucun sens.


Essayez de cette façon, il n'y a pas de paramètres.

Up_Line iCustom(  NULL, 0, "ExTrendv2", 0,1);
Down_Line iCustom(NULL, 0, "ExTrendv2", 1,1);

Bien que l'indicateur recalcule tout à chaque tick.

 
Dimoncheg:
Bonjour à tous, j'essaye de tester l'Expert Advisor sur un symbole et 4 timeframes en même temps - j'ai un petit problème - erreur 129 - mauvais prix à l'ouverture et à la fermeture, le fil d'échange semble être séparé avant d'envoyer l'orer et après la fermeture while(IsTradeContextBusy() || !IsTradeAllowed()){int Interval = MathRand()+1000 ;
Print("Le fil d'échange est occupé. Répéter la vérification dans "+DoubleToStr((Intervalle/1000),0)+" sec") ;
Sleep(Interval);} RefreshRates() ; Quelqu'un sait-il ce qu'est ce truc et comment le gérer ?
ERR_INVALID_PRICE 129 Prix incorrect


Normaliser le prix en chiffres avant d'envoyer la demande au serveur.

 
Vinin:


Essayez de cette façon, il n'y a pas de paramètres

Bien que l'indicateur effectue un recalcul complet à chaque tick.

J'ai regretté de l'avoir mis sur le tableau. Le terminal est entré dans une profonde réflexion, et après 15 minutes, je l'ai tué.
 
artmedia70:
ERR_INVALID_PRICE 129 Prix incorrect


Normaliser les prix en chiffres avant d'envoyer la demande au serveur.



Les prix sont bien sûr normalisés par NormalizeDouble(Ask,Digits) et NormalizeDouble(Bid,Digits), pour envoyer les ordres j'ai aussi essayé la fonction d'Igor Kim, qui est ici - la même erreur se produit, parce que la fonction ne la traite pas, elle essaie juste d'envoyer l'ordre cinq fois et c'est tout. L'erreur ne se produit pas à chaque commande d'envoi d'un ordre, la plupart des ordres sont encore ouverts. J'ai le sentiment que ce problème a quelque chose à voir avec le flux de transactions puisque dans un certain cas, l'erreur se produit lorsque l'EA veut envoyer plusieurs ordres simultanément à différentes échéances d'un symbole et l'un d'entre eux est généralement envoyé, alors que les autres n'obtiennent aucun succès avec cette erreur.
 
Dimoncheg:

Les prix sont bien sûr normalisés par NormalizeDouble(Ask,Digits) et NormalizeDouble(Bid,Digits), pour envoyer les ordres j'ai aussi essayé la fonction d'Igor Kim, qui est ici - la même erreur se produit, parce que la fonction ne la traite pas, elle essaie juste d'envoyer l'ordre cinq fois et c'est tout. L'erreur ne se produit pas à chaque commande d'envoi d'un ordre, la plupart des ordres sont encore ouverts. J'ai le sentiment que ce problème a quelque chose à voir avec le flux de transactions puisque dans un certain cas, l'erreur se produit lorsque l'EA veut envoyer plusieurs ordres simultanément à différentes échéances d'un symbole mais un ordre est généralement envoyé mais les autres échouent.

Immédiatement avant d'utiliser Ask et Bid, exécutez RefreshRates().
 
//-------------------------------------------------------------------+
extern int    TotalOrders    = 1;
//-------------------------------------------------------------------+
// Global variables
int Cnt = 0;              // counter variable, used in for() loops
    // only perform analysis and open new order if we have not reached our TotalOpenOrders max
    if(TotalOpenOrders() < TotalOrders)
    {
//+------------------------------------------------------------------+
//|-----------------------//  Orders Count  //-----------------------|
//+------------------------------------------------------------------+
// This function returns the total amount of orders the expert advisor has open  
int TotalOpenOrders()
{
  Cnt=OrdersTotal();
  int TotalOpenOrders = 0;
  if(Cnt==0)
  {
    return(0);
  }
    else
    {
    for(;Cnt>=0;Cnt--)
    {
      RefreshRates();
      OrderSelect(Cnt,SELECT_BY_POS);
      if(OrderMagicNumber()==Magic)
      {
      TotalOpenOrders++;
      }
    }
  }
  return(TotalOpenOrders);
}
 
artmedia70:
J'ai regretté de l'avoir mis sur le tableau. Le terminal est entré dans une profonde réflexion, après environ 15 minutes, je l'ai tué.

Vous ne regardez pas le code avant de mettre quelque chose en place.