Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 362

 
Sepulca:


Là, on dirait que ça dessine quelque chose.

Bien que je n'aie pas complètement

comprendre pleinement la signification de l'indicateur

Le fait est qu'en cas de baisse ou de hausse ne dépassant pas 50 pips, l'indicateur ne doit pas changer par rapport à la valeur précédente,

que nous avons enregistré s'il n'y avait pas de dépassement. Et à chaque tic, nous le comparons.

S'il n'y a pas d'excédent, une ligne droite est tracée ; s'il y a un excédent, l'indicateur obtient la valeur actuelle.

Environ.

le code ci-dessous. Mais lorsque je l'exécute dans le testeur, je constate qu'il montre des choses différentes dans la réalité. Il commence à dévier lorsqu'il n'y a pas d'excès.

par les mêmes 50 points. Je peux voir qu'il retarde surtout sur la montée et commence à changer à travers la barre.

J'ai fait une erreur quelque part, je ne sais pas où.

//--- buffers
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_SECTION,0,1);
   SetIndexBuffer(0,ExtMapBuffer1);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    raznica,raznica_static,MA_1_t,MA_2_t;
    
  if(counted_bars>0)
      counted_bars--;
   limit=Bars-counted_bars;
  static double MA_otshet; 
  for(int i=0;i<limit;i++)
   {    
      MA_1_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+0);  
      MA_2_t=iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,i+1); 
      raznica=MA_1_t-MA_2_t;
      raznica_static=MA_1_t-MA_otshet;
      if(raznica_static > -0.005 && raznica_static < 0.005)
      {
      ExtMapBuffer1[i]=MA_otshet;
      }
      else
      if(raznica > -0.005 && raznica < 0.005)
      {
      ExtMapBuffer1[i]=MA_2_t;
      MA_otshet=MA_2_t;
      }
      if((raznica > 0.005) || (raznica <- 0.005))
      {
      ExtMapBuffer1[i]=MA_1_t;
      }  
   } 
   return(0);
  }
//+------------------------------------------------------------------+
 
ALXIMIKS:


Tu te moques de moi ? Les lignes pointillées n'ont pas d'épaisseur autre que standard (et dans la documentation quelque part était écrit, je ne peux pas préciser l'endroit, mais je me souviens que j'ai lu)

Nous prouvons :

1) ajouter un masque normal

2) entrez dans les propriétés "Couleurs".

3) définir le type de ligne - ligne en pointillés

4) Sélectionnez l'épaisseur 2-5.

Résultat: une ligne en pointillé devient une ligne normale.

Eh bien, c'est ce que j'écris sans la ligne pointillée.
 
XuMuk:
Salut à tous ! !! J'ai essayé d'écrire un simple expert moi-même. Mais un problème survient que je ne comprends pas. Voici un oscilloscope simple que j'ai trouvé dans un livre. Je le compile et rien ne s'affiche. Cependant, si vous mettez "-" à la place de la division dans la boucle while, tout fonctionne.

Voilà, ça dessine même

#property indicator_buffers 1
#property indicator_separate_window
extern int Period_valroc=10;
double Line0[];
int init()
  {
   SetIndexBuffer(0,Line0);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,Magenta);

   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    i,Counted_bars=1000+Period_valroc;
    for (i=Counted_bars-1-Period_valroc; i>=0;i--)
      {
        Line0[i]=100*(Close[i]/Close[i+Period_valroc]);
//        i--;
      }
//----
   return(0);
  }

purple votre dinde))))

 

Soirée.

J'ai décidé de télécharger l'historique, il n'y avait qu'une année de USD|JPY.

Ça s'est avéré être une mauvaise idée, j'ai eu une carte molle.

Comment revenir au début :( ?

DoC : F r o u r !

Merci !

 
Forexman77:

L'idée est qu'en cas de baisse ou de hausse ne dépassant pas 50 pips, l'indicateur ne doit pas changer par rapport à la valeur précédente,

que nous avons enregistré s'il n'y avait pas de dépassement. Et à chaque tic, nous le comparons.

S'il n'y a pas d'excédent, une ligne droite est tracée ; s'il y a un excédent, l'indicateur obtient la valeur actuelle.

Environ.

le code ci-dessous. Mais lorsque je l'exécute dans le testeur, je constate qu'il montre des choses différentes dans la réalité. Il commence à dévier lorsqu'il n'y a pas d'excès.

par les mêmes 50 points. Je peux voir qu'il retarde surtout sur la montée et commence à changer à travers la barre.

J'ai fait une erreur quelque part, je ne sais pas où.


À première vue, ça va. La seule chose est que je préfère, par exemple, les cycles de barres du passé vers le futur : moins de possibilités de changer les valeurs des indicateurs au cours de l'histoire. Le décalage pourrait être dû à l'utilisation d'un muving (vous avez une période de 7) et le "bavardage" pourrait être dû à l'utilisation du prix de clôture de la barre zéro - il change constamment au cours de la barre.
 
VladislavVG:

A première vue, tout est normal. La seule chose que je préfère, par exemple, ce sont les cycles de barres du passé vers le futur : moins de possibilités de modifier les valeurs des indicateurs au cours de l'histoire. Le décalage peut être lié à l'utilisation d'un muving (vous avez un muving de 7 périodes), et le "bavardage" - avec l'utilisation du prix de clôture de la barre zéro - il change constamment pendant la barre.

Fait les conditions du cycle

for(int i=Bars-1;i>=0;i--)

Réduction significative de la vitesse de test.

Pour vérifier, j'ai ajouté un muving à 7 périodes au testeur. Il y a des écarts de 50 points, mais l'indicateur ne change pas immédiatement.

 
Forexman77:

Fait les conditions du cycle

Réduit considérablement la vitesse du test.



  for(int i=limit-1;i>=0;i--)

Le reste est le même que dans votre version.

De même, IMHO, vous ne devriez pas utiliser de valeurs absolues lorsque vous comparez - 0,005 - mieux 50*Point. Sinon, vous obtiendrez des résultats différents sur des paires différentes.

 
VladislavVG:

Le reste est le même que dans votre version.

Et aussi, IMHO, vous ne devriez pas utiliser des valeurs absolues lorsque vous comparez - 0.005 - mieux 50*Point. Sinon, vous obtiendrez des résultats différents selon les paires.

Merci ! Cela semble fonctionner.

Avez-vous rencontré quelque chose de similaire ? Qui a pu mettre en œuvre cette idée ?

J'ai trouvé l'indicateur de glissement et le zigzag de Kaufman. L'indicateur zigzag est fabriqué de manière similaire.

 
Forexman77:

Merci ! Cela semble fonctionner.

Avez-vous rencontré quelque chose de ce genre ? Peut-être que quelqu'un a mis en œuvre cette idée ?

Pour l'instant, j'ai trouvé l'indicateur de glissement et de zigzag de Kaufman. L'indicateur zigzag est fabriqué de manière similaire.



Non, je n'ai rien vu de tel.
 
fozi:

Soirée.

J'ai décidé de télécharger l'historique, il n'y avait qu'une année de USD|JPY.

Ça s'est avéré être une mauvaise idée, j'ai eu une carte molle.

Comment revenir au début :( ?

DoC : F r o u r !

Merci !

Si vous cliquez avec le bouton droit de la souris sur le graphique et sélectionnez "rafraîchir" ?
Raison: