Je vais écrire l'indicateur gratuitement - page 44

 

Aide pour l'indicateur


Je veux le garder tel quel, mais le refaire en deux tampons.


#propriété indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 DodgerBlue

#property indicator_maximum 1.4

#property indicator_level1 0

#property indicator_minimum -1.2


//------- Paramètres de l'indicateur externe -------------------------------

extern int CCI_Period_0 = 14 ; // Période CCI pour la période en cours

extern int Level_0 = 100 ; // Niveau CCI pour le TF actuel

extern int TF_1 = 60 ; // Nombre de minutes dans la première période de temps.

extern int CCI_Period_1 = 14 ; // Période CCI pour le premier TF

extern int Level_1 = 100 ; // Niveau CCI pour le premier TF

extern int TF_2 = 240 ; // Nombre de minutes de la deuxième TF

extern int CCI_Period_2 = 14 ; // Période CCI pour le second TF

extern int Level_2 = 100 ; // Niveau CCI pour le deuxième TF

extern int NumberOfBars = 10000 ; //Nombre de barres(0-all)


//------- Tampons indicateurs ------------------------------------------

double buf0[] ;

//+------------------------------------------------------------------+

//| Fonction d'initialisation de l'indicateur personnalisé |

//+------------------------------------------------------------------+

void init()

{

IndicateurDigits(1) ;


SetIndexBuffer(0,buf0) ;

SetIndexLabel(0, "i-3CCI-h") ;

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2) ;

SetIndexEmptyValue(0,0) ;

}

//+------------------------------------------------------------------+

//| Fonction personnalisée de désinitialisation de l'indicateur |

//+------------------------------------------------------------------+

void deinit()

{

Commentaire (") ;

}

//+------------------------------------------------------------------+

//| Fonction d'itération de l'indicateur personnalisé |

//+------------------------------------------------------------------+

void start()

{

double cci0,cci1,cci2 ;

int nb1,nb2 ;

int LoopBegin,sh ;


if(NumberOfBars==0) LoopBegin=Bars-1 ;

sinon LoopBegin=NumberOfBars-1 ;

LoopBegin=MathMin(Bars-1,LoopBegin) ;


for(sh=LoopBegin ; sh>=0 ; sh--)

{

nb1=iBarShift(NULL, TF_1, Time[sh], False) ;

nb2=iBarShift(NULL, TF_2, Time[sh], False) ;


cci0=iCCI(NULL, 0 , CCI_Period_0, PRICE_CLOSE, sh) ;

cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1) ;

cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2) ;


if(cci0>Niveau_0 && cci1>Niveau_1 && cci2>Niveau_2) buf0[sh]=1 ;

if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf0[sh]=-1 ;

}

}

//+------------------------------------------------------------------+


Je l'ai essayé moi-même, sans succès pour l'instant.

J'ai essayé de cette façon


#propriété indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Green

#property indicator_color2 Red

#property indicator_maximum 1.4

#property indicator_level1 0

#property indicator_minimum -1.2


//------- Paramètres de l'indicateur externe -------------------------------

extern int CCI_Period_0 = 14 ; // Période CCI pour la période en cours

extern int Level_0 = 100 ; // Niveau CCI pour le TF actuel

extern int TF_1 = 60 ; // Nombre de minutes dans la première période de temps.

extern int CCI_Period_1 = 14 ; // Période CCI pour le premier TF

extern int Level_1 = 100 ; // Niveau CCI pour le premier TF

extern int TF_2 = 240 ; // Nombre de minutes du deuxième TF

extern int CCI_Period_2 = 14 ; // Période CCI pour le deuxième TF

extern int Level_2 = 100 ; // Niveau CCI pour le deuxième TF

extern int NumberOfBars = 10000 ; //Nombre de barres(0-all)


//------- Tampons indicateurs ------------------------------------------

double ExtBuffer1[] ;

double ExtBuffer2[] ;

//+------------------------------------------------------------------+

//| Fonction d'initialisation de l'indicateur personnalisé |

//+------------------------------------------------------------------+

void init()

{

SetIndexBuffer(0,ExtBuffer1) ;

SetIndexStyle(0,DRAW_HISTOGRAM,0,2) ;

//----

SetIndexBuffer(1, ExtBuffer2) ;

SetIndexStyle(1,DRAW_HISTOGRAM,0,2) ;

}

//+------------------------------------------------------------------+

//| Fonction personnalisée de désinitialisation de l'indicateur |

//+------------------------------------------------------------------+

void deinit()

{

Commentaire (") ;

}

//+------------------------------------------------------------------+

//| Fonction d'itération de l'indicateur personnalisé |

//+------------------------------------------------------------------+

void start()

{

double cci0,cci1,cci2 ;

int nb1,nb2 ;

int LoopBegin,sh ;


if(NumberOfBars==0) LoopBegin=Bars-1 ;

sinon LoopBegin=NumberOfBars-1 ;

LoopBegin=MathMin(Bars-1,LoopBegin) ;


for(sh=LoopBegin ; sh>=0 ; sh--)

for(st=LoopBegin ; st<0 ; st--)

{

nb1=iBarShift(NULL, TF_1, Time[sh], False) ;

nb2=iBarShift(NULL, TF_2, Time[st], False) ;


cci0=iCCI(NULL, 0 , CCI_Period_0, PRICE_CLOSE, sh) ;

cci1=iCCI(NULL, TF_1, CCI_Period_1, PRICE_CLOSE, nb1) ;

cci2=iCCI(NULL, TF_2, CCI_Period_2, PRICE_CLOSE, nb2) ;


if(cci0>Niveau_0 && cci1>Niveau_1 && cci2>Niveau_2) buf1[sh]=1 ;

if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf2[st]=-1 ;



l'erreur est


à la fin, nous avons besoin de deux tampons, un au-dessus de zéro et un en dessous.


Dossiers :
12121.jpg  42 kb
ere.mq4  6 kb
 

Cher Koziabrrr ! !! Vous avez créé votre propre sujet. Il y a plus de sujets. Et si quelqu'un commence à chercher un sujet ? Et il y a beaucoup de sujets, c'est difficile à trouver. Pour faciliter l'accès au sujet par sujet. Le sujet le plus haut est destiné à aider les débutants. C'est là que votre question devrait aller. Sujet créé supprimer, et là écrire en tenant compte de mes commentaires !!! Ensuite, vous avez également écrit dans ce fil - et bien, c'est de la mégalomanie, une opinion exagérée de la valeur de sa personne.

Pour attirer l'attention, vous devez expliquer la tâche. 1. A quoi ressemble l'indicateur = capture d'écran. 2. Que fait l'indicateur, quelle est son utilité (les points d'entrée seront indiqués, la tendance, le plat, ...). 3) Pourquoi avons-nous besoin de deux tampons ? Qu'est-ce qui est plus utile pour cela (cela montre mieux la tendance, le plat, les points d'entrée) ? C'est alors que tout le monde se précipitera pour l'affiner !!!! .... Ce sera bon pour eux et pour vous ! On devrait être amis, partager.

 

Voici une nouvelle version. Cela semble montrer une tendance. Mais c'est de la triche.

Dans une demi-heure, nous saurons que nous aurions dû vendre...

Et que c'est le moment d'acheter - c'est silencieux...

 
Quelque chose comme ça serait mieux :

ou MAinColor de quelque sorte

 
STARIJ:

Voici une nouvelle version. Cela semble montrer une tendance. Mais c'est de la triche.

Nous saurons dans une demi-heure que nous aurions dû vendre...

Et que c'est le moment d'acheter - c'est silencieux...


Oui, c'est mieux, merci pour le nouveau design. Mais je ne comprends toujours pas comment)))

 
koziabrrr: Oui, c'est mieux, merci pour le nouveau design. Mais je ne comprends toujours pas comment))
#property indicator_buffers 2
#property indicator_color2 Tomato
double buf0[], buf1[];  //------- Буферы индикатора ------   добавил второй буфер
void init() 
  {
..................
   SetIndexBuffer(1,buf1);
   SetIndexLabel(1,"Вниз");
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexEmptyValue(1,0);
  }

void start() 
  {
....................
..................

      buf0[sh]=0;buf1[sh]=0;
      if(cci0>Level_0 && cci1>Level_1 && cci2>Level_2) buf0[sh]=1;
      if(cci0<-Level_0 && cci1<-Level_1 && cci2<-Level_2) buf1[sh]=-1;
    }
}
 
STARIJ:

STARIJ:

J'essaie, mais je n'arrive pas à faire le tour de la question. C'est bien quand on connaît le problème, mais quand on ne le connaît pas, chaque petite chose est un jour.

 
koziabrrr:


J'essaie, mais je n'arrive pas à faire le tour de la question. C'est bien quand on connaît le problème, mais quand on ne le connaît pas, chaque petite chose est un jour.

... Et chaque jour est une expérience inestimable qui ne s'acquiert que par votre propre travail - et non par la solution d'un forum.
 
Artyom Trishkin:
... Et chaque jour est une expérience inestimable qui ne vient que de son propre travail - pas d'une décision sur un forum.

C'est oui !


STARIJ: Merci pour votre aide !!!!


Le problème est résolu))))

 

Salut Yuri.

Description de l'indicateur : à partir de 3 bougies maintenues au même niveau ou presque, il envoie une alerte par email et transmet un son. L'instrument et le cadre temporel s'affichaient également à l'écran jusqu'à ce que je l'annule. Regardez les fichiers joints s'il vous plaît, il y a des exemples

Dossiers :
11.png  25 kb
12.png  24 kb
13.png  24 kb
14.png  27 kb