[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 279

 
Ekburg:


Merci d'être précis, car le lien qu'on m'a envoyé ne contenait pas ces tableaux, et je n'ai pas fait attention à la colonne de gauche parce que j'étais au travail.

mais personne n'avalera tout ce que vous crachez sauf vous ;)


Comment avez-vous appris, si tant est que ce soit le cas, des indices ? Seule une étude personnelle active et curieuse portera ses fruits ! Je t'ai mâché le travail et tu me "recraches" des conseils judicieux ! Prends une baby-sitter pour nettoyer ton bordel !
 
Bonsoir à tous, j'ai un indicateur B construit à partir de l'indicateur A (via iCustom) .les deux indicateurs sont sur le graphique.quand je change les paramètres de l'indicateur A , l'indicateur B ne se reconstruit pas automatiquement, il doit être recompilé de force ! Pourquoi l'indicateur B ne se reconstruit pas automatiquement ? S'il vous plaît, dites-moi quelle est mon erreur ?
 
MK07:
Bonsoir à tous, j'ai un indicateur B construit à partir de l'indicateur A (via iCustom) . Les deux indicateurs sont sur le graphique. Quand je change les paramètres de l' indicateur A , l'indicateur B ne se reconstruit pas automatiquement, je dois le recompiler de force. Pourquoi l'indicateur B ne se reconstruit-il pas automatiquement ? S'il vous plaît, dites-moi mon erreur ?
Vous appelez l'indicateur A (via iCustom) avec des paramètres spécifiques qui sont INDEPENDANTS des paramètres de l'indicateur A. Cela signifie que le terminal calcule simultanément deux copies indépendantes de l'indicateur A. L'indicateur qui est appelé de l'extérieur (d'un autre code) est calculé virtuellement par le terminal.
 
TarasBY:
Vous appelez l'indicateur A (via iCustom) avec certains paramètres, qui ne dépendent PAS des paramètres de l'indicateur A. Cela signifie que le terminal calcule simultanément deux copies indépendantes de l'indicateur A.

Que faut-il faire pour que le terminal calcule la deuxième variante de l'indicateur A?
 
MK07:
Que faut-il faire pour que le terminal calcule la deuxième version de l'indicateur A?
Soyez plus précis quant à la tâche à accomplir.
 
borilunad:

Comment avez-vous appris, si vous avez appris, à partir des messages-guides ? Seule une étude personnelle active et curieuse portera ses fruits ! Je t'ai mâchouillé et tu craches des conseils avisés ! Prends une baby-sitter pour nettoyer ton bordel !

modère ton ego ! je ne rebondis pas sur ce conseil, je l'ai pris et je t'ai remercié, mais je ne le prends pas comme ça ! j'ai demandé et répondu de manière civilisée !
 

Bonjour !

La valeur de la variable Point doit être utilisée dans l'EA.

Mais il est égal à 0.

D'après ce que j'ai compris, cela est dû aux 5 chiffres après la virgule dans la citation.

Existe-t-il un moyen de déterminer cette valeur ?

Merci.

 
TarasBY:
Veuillez rendre votre tâche plus claire.

Indicateur A - AO normal (My_AO) - celui du haut sur la photo.

Indicateur B-histogramme(+1/-1) de l'indicateur AO (My_AO) - celui du milieu dans la figure.

Lorsque vous modifiez les paramètres de l'indicateur A (celui du bas dans l'image), l'indicateur B ne change pas, même si vous recompilez.

J'ai montré deux indicateurs AO (My_AO) en même temps juste pour illustrer ce qui se passe avec les indicateurs, mais dans des conditions réelles il devrait y avoir un seul AO (My_AO).



Le premier code est l'indicateur A.

Deuxième code - indicateur B.

//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Black
#property  indicator_color2  Green
#property  indicator_color3  Red
#property  indicator_width2  2
#property  indicator_width3  2
#property  indicator_level1 0.0

//---- input parameters
extern int FastPeriod =5;
extern int LowPeriod  =34;
//---- indicator buffers
double     ExtBuffer0[];
double     ExtBuffer1[];
double     ExtBuffer2[];



//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   //---- drawing settings
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   IndicatorDigits(Digits+1);
   SetIndexDrawBegin(0,34);
   SetIndexDrawBegin(1,34);
   SetIndexDrawBegin(2,34);
//---- 3 indicator buffers mapping
   SetIndexBuffer(0,ExtBuffer0);
   SetIndexBuffer(1,ExtBuffer1);
   SetIndexBuffer(2,ExtBuffer2);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("My_AO");
   SetIndexLabel(1,NULL);
   SetIndexLabel(2,NULL);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Awesome Oscillator                                               |
//+------------------------------------------------------------------+
int start()
  {
      
  
   int    limit;
   int    counted_bars=IndicatorCounted();
   double prev,current;
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd
   for(int i=0; i<limit; i++)
      ExtBuffer0[i]=iMA(NULL,0,FastPeriod,0,MODE_SMA,PRICE_MEDIAN,i)-iMA(NULL,0,LowPeriod,0,MODE_SMA,PRICE_MEDIAN,i);
//---- dispatch values between 2 buffers
   bool up=true;
   for(i=limit-1; i>=0; i--)
     {
      current=ExtBuffer0[i];
      prev=ExtBuffer0[i+1];
      if(current>prev) up=true;
      if(current<prev) up=false;
      if(!up)
        {
         ExtBuffer2[i]=current;
         ExtBuffer1[i]=0.0;
        }
      else
        {
         ExtBuffer1[i]=current;
         ExtBuffer2[i]=0.0;
        }
        
       
     }
//---- done
   return(0);
  }
#property indicator_separate_window
#property indicator_minimum -1.5
#property indicator_maximum 1.5
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_color2 Red
#property  indicator_width1  2
#property  indicator_width2  2
#property indicator_level1 0.0

//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexBuffer(1,ExtMapBuffer2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {  
      
       
    double UP,DN;     
  
  
    int counted_bars=IndicatorCounted(),
       limit;  
       
    if(counted_bars>0)
      counted_bars--;
   
      limit=Bars-counted_bars;
//----
   for(int i=0;i<limit;i++)
       
      { 
        UP=iCustom(NULL,0,"My_AO",1,i+1);               
        DN=iCustom(NULL,0,"My_AO",2,i+1);    
             
        
       if(UP>0)       
         {ExtMapBuffer1[i+1]=1;
          ExtMapBuffer2[i+1]=0;
         }
         
       if(UP<0)       
         {ExtMapBuffer1[i+1]=-1;
          ExtMapBuffer2[i+1]=0;
         }  
         
                              
       if(DN>0)            
         {
          ExtMapBuffer1[i+1]=0;
          ExtMapBuffer2[i+1]=1;
         }
              
       if(DN<0)            
         {
          ExtMapBuffer1[i+1]=0;
          ExtMapBuffer2[i+1]=-1;
         }
               
                       
    
    }
//----
   return(0);
 
   }
   
//+------------------------------------------------------------------+    
   
        
        
 
MK07:

Indicateur A - indicateur AO normal (My_AO) - figure du haut.

Indicateur B - histogramme(+1/-1) de l'indicateur AO (My_AO) - au milieu de la figure.

Si vous modifiez les paramètres de l'indicateur A (en bas sur la figure), l'indicateur B ne change pas même si vous recompilez.

Les deux indicateurs AO (My_AO) en même temps, je les ai montrés juste pour illustrer ce qui se passe avec les indicateurs, mais dans la vie réelle il devrait y avoir un seul AO (My_AO).

Le premier code est l'indicateur A.

Le deuxième code est l'indicateur B.

Et cet ordre des choses est normal (ce sont les principes du terminal).

Si vous voulez changer les paramètres de l'indicateur A, faites l'échange d'information entre les indicateurs (peut être un fichier, des variables globales du terminal, RAM) : l'indicateur A passe les paramètres initialisables pendant l'initialisation et l'indicateur B vérifie périodiquement les changements de l'indicateur A. Quand il détecte des changements, l'indicateur B doit aussi être initialisé avec les nouveaux paramètres (init() forcé).

 
Je ne trouve pas la commande qui redessine l'indicateur personnalisé. Si quelqu'un le sait, qu'il me le dise. Merci d'avance =)
Raison: