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

 
ZS - lot = 0 - provoquera une erreur lors de la tentative de placement d'une transaction...
 
Aidez-moi à comprendre. J'ai un Expert Advisor doubleminus_1 (le code me rappelle celui de Ilan 1.6 Pipstep). Ces derniers temps, il arrive de plus en plus souvent que les transactions ne s'ouvrent que dans un sens, mais après quelques heures, tout redevient normal. La fréquence est variable et ne dépend pas de la volatilité. Le code de l'EA étant trop long pour être ajouté ici, je joins le fichier de l'EA lui-même.

	          
Dossiers :
 
ierehon:
Aidez-moi à comprendre. J'ai un Expert Advisor doubleminus_1 (le code me rappelle celui de Ilan 1.6 Pipstep). Ces derniers temps, il arrive de plus en plus souvent que les transactions ne s'ouvrent que dans un sens, mais après quelques heures, tout redevient normal. La fréquence est variable et ne dépend pas de la volatilité. Le code de l'EA étant trop long pour être ajouté ici, je joins le fichier de l'EA lui-même.

C'est absurde. Essayez-le sur une autre société de courtage. Par exemple, celui-ci fonctionne selon l'algorithme sans aucune question.
 
Roman.:

C'est absurde. Essayez-le sur un autre DC. Par exemple, celui-ci - il fonctionne selon l'algorithme sans aucune question.
Je ne comprends pas pourquoi cela se produit, mais c'est un fait. Il fonctionne donc bien, mais il y a des périodes où il ouvre des transactions dans une seule direction. D'après mes observations, cela se produit après une forte hausse ou une forte baisse sans correction sérieuse. La seule chose à laquelle je pense est que cela pourrait être lié au RSI, mais comment exactement, je ne le sais pas.
 
ierehon:
Je ne comprends pas pourquoi cela arrive, mais c'est néanmoins un fait. Il fonctionne bien, mais il y a des périodes où il n'ouvre des transactions que dans une seule direction. Selon les observations, cela se produit après une forte hausse ou une forte baisse sans corrections sérieuses. La seule chose à laquelle je pense est que cela pourrait être lié au RSI, mais comment exactement, je ne le sais pas.
Comment cela ? Étudiez attentivement la partie signal du conseiller expert... Là, les entrées sont effectuées lorsque l'indicateur RSI franchit certains niveaux. Tout fonctionne correctement si vous n'arrivez pas à comprendre, alors ne vous inquiétez pas...
 
Roman.:
Comment cela ? Étudiez attentivement la partie signal du conseiller expert... Les entrées sont effectuées lorsque l'indicateur RSI franchit certains niveaux. Tout fonctionne correctement, si vous n'arrivez pas à comprendre, alors ne vous en faites pas...
.
Alors qu'est-ce que ça peut être ? Pas de limite de temps, pas de limite du nombre d'ordres non plus (valeur supérieure à 1000)...
 
ierehon:
Alors qu'est-ce que ça peut être ? Pas de limite de temps, pas de limite non plus sur le nombre d'ordres (plus de 1000)...

Ce n'est PAS le moment de l'exécution (du déclenchement) des signaux d'entrée (de moyenne) sur le marché. Vous devez attendre...
 
SkinnerDE:

Bonjour à tous. Aidez-moi à trouver un bug dans le code, je suis épuisé - je ne peux rien faire.

Très probablement dans la dernière partie.


ObjectSetText

tout en haut, à quoi fait-il référence ? Enlevez-le.

 

J'écris un indicateur qui calcule la moyenne de l'intervalle quotidien pour une période spécifiée. Lorsqu'il est attaché au graphique, celui-ci s'affiche normalement :

Mais après avoir reçu un nouveau devis, la valeur change radicalement.

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

extern int History=1000;
extern int D1_Period=21;
//+------------------------------------------------------------------+
double Buf_0[];
//+------------------------------------------------------------------+
int init()
  {
   SetIndexBuffer(0, Buf_0);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {
   int Counted_Bars, i, n, count=0;
   double L_High, L_Low, L_Range, Sum=0, range;
//+------------------------------------------------------------------+
   Counted_Bars=IndicatorCounted();
   i=Bars-Counted_Bars-1;
   if(i>History-1)
      i=History-1;
   while(i>=0)
    {
     for(n=i;n<=D1_Period+i;n++)
      {
        L_High=iHigh(NULL,PERIOD_D1,n);
        L_Low =iLow(NULL,PERIOD_D1,n);
        L_Range=(L_High-L_Low)/Point;
        Sum=Sum+L_Range;
        count++;         
      }
     range=MathRound(Sum/count);
     Buf_0[i]=range; 
     i--;
    }   
   return(0);
  }
//+------------------------------------------------------------------+
Quelle en est la raison ?
 
silhouette:

J'écris un indicateur qui calcule la moyenne de l'intervalle quotidien pour une période spécifiée. Lorsqu'il est attaché au graphique, celui-ci s'affiche normalement :

Mais après avoir reçu un nouveau devis, la valeur change radicalement.

Quelle en est la raison ?


Le problème est dans ce cycle

     for(n=i;n<=D1_Period+i;n++)
      {
        L_High=iHigh(NULL,PERIOD_D1,n);
        L_Low =iLow(NULL,PERIOD_D1,n);
        L_Range=(L_High-L_Low)/Point;
        Sum=Sum+L_Range;
        count++;         
      }
Raison: