[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 121

 
Allis:

http://clip2net.com/s/2LkQp


Tout ce que vous pouvez faire pour aider... Salutations à tous ! J'ai besoin de mettre les paramètres pour les fractales dans la fenêtre des paramètres, et ils sont dans la fonction.....


Ajouter ;


extern int Bars.left =5 ;

et dans le prochain aussi.

et commentez les lignes ci-dessous pour qu'elles ne se répètent pas

// int Bars.left =5 ;

// int Bars.righ =5 ;

 
BeerGod:

Ajouter ;


extern int Bars.left =5 ;

et dans le prochain aussi

et commentez les lignes ci-dessous pour qu'elles ne se répètent pas

// int Bars.left =5 ;

// int Bars.righ =5 ;


Je ne l'ai pas fait comme vous l'avez écrit ? Je l'ai amené aux Externs et l'ai commenté en bas de .....

http://clip2net.com/s/2LlEi c'est là que j'ai commencé.

//+------------------------------------------------------------------+
//|                                                                  |
//|                 Copyright © 1999-2008, MetaQuotes Software Corp. |
//|                                         http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property copyright "© 2007 Takbir"
#property link      "www.stigal.com"
//----
#define major   1
#define minor   1
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DarkGreen
#property indicator_color2 Maroon
#property indicator_width1  1
#property indicator_width2  1
extern int Bars.left =5     // надо что бы было здесь и соответственно в окошке настроек
extern int Bars.right =5    // надо что бы было здесь и соответственно в окошке настроек
//----
double UpperFr[];
double LowerFr[];
//----
int Bars.left=5;       //а оно здесь, да ещё участвует в формуле
int Bars.right=5;      //а оно здесь, да ещё участвует в формуле

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void init()
  {
   SetIndexBuffer(0, UpperFr);
   SetIndexBuffer(1, LowerFr);
   //
   SetIndexEmptyValue(0, 0);
   SetIndexEmptyValue(1, 0);
   //
   SetIndexStyle(0, DRAW_ARROW);
   SetIndexArrow(0, 159);
   //
   SetIndexStyle(1, DRAW_ARROW);
   SetIndexArrow(1, 159);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start()
  {
   int counted=IndicatorCounted();
   if (counted < 0) return(-1);
   if (counted > 0) counted--;
   int limit=Bars-counted;
//-----
   double dy=0;
     for(int i=1; i<=20; i++) 
     {
      dy+=0.3*(High[i]-Low[i])/20;
     }
   for(i=1+Bars.right; i<=limit+Bars.left; i++)
     {
      UpperFr[i]=0;
      LowerFr[i]=0;
//----
      if (IsUpperFr(i)) UpperFr[i]=High[i] + dy;
      if (IsLowerFr(i)) LowerFr[i]=Low[i] - dy;
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsUpperFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);

      if (High[bar] < High[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (High[bar] < High[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsLowerFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);
      if (Low[bar] > Low[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (Low[bar] > Low[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+
 

Essayez ceci

//+------------------------------------------------------------------+
//|                                                                  |
//|                 Copyright © 1999-2008, MetaQuotes Software Corp. |
//|                                         http://www.metaquotes.ru |
//+------------------------------------------------------------------+
#property copyright "© 2007 Takbir"
#property link      "www.stigal.com"
//----
#define major   1
#define minor   1
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DarkGreen
#property indicator_color2 Maroon
#property indicator_width1  1
#property indicator_width2  1
extern int Bars.left =5;     // надо что бы было здесь и соответственно в окошке настроек
extern int Bars.right =5;    // надо что бы было здесь и соответственно в окошке настроек
//----
double UpperFr[];
double LowerFr[];
//----
//int Bars.left=5;       //а оно здесь, да ещё участвует в формуле
//int Bars.right=5;      //а оно здесь, да ещё участвует в формуле

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void init()
  {
   SetIndexBuffer(0, UpperFr);
   SetIndexBuffer(1, LowerFr);
   //
   SetIndexEmptyValue(0, 0);
   SetIndexEmptyValue(1, 0);
   //
   SetIndexStyle(0, DRAW_ARROW);
   SetIndexArrow(0, 159);
   //
   SetIndexStyle(1, DRAW_ARROW);
   SetIndexArrow(1, 159);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start()
  {
   int counted=IndicatorCounted();
   if (counted < 0) return(-1);
   if (counted > 0) counted--;
   int limit=Bars-counted;
//-----
   double dy=0;
     for(int i=1; i<=20; i++) 
     {
      dy+=0.3*(High[i]-Low[i])/20;
     }
   for(i=1+Bars.right; i<=limit+Bars.left; i++)
     {
      UpperFr[i]=0;
      LowerFr[i]=0;
//----
      if (IsUpperFr(i)) UpperFr[i]=High[i] + dy;
      if (IsLowerFr(i)) LowerFr[i]=Low[i] - dy;
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsUpperFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);

      if (High[bar] < High[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (High[bar] < High[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool IsLowerFr(int bar)
  {
   for(int i=1; i<=Bars.left; i++)
     {
      if (bar+i>=Bars) return(false);
      if (Low[bar] > Low[bar+i]) return(false);
     }
   for(i=1; i<=Bars.right; i++)
     {
      if (bar-i < 0) return(false);
      if (Low[bar] > Low[bar-i]) return(false);
     }
//----
   return(true);
  }
//+------------------------------------------------------------------+


 
BeerGod:

Essayez ceci, il compile sans erreurs, je n'ai pas vérifié la fonctionnalité)


Bummer.... J'ai commencé avec cette une.... Exactement comme celui-là... J'ai posté le lien.... Et pour une raison quelconque, ça n'a pas marché... Merci !
 
hoz:

Artem, tu ferais mieux de boire du jus comme tu l'as fait. Je ne recommande pas la bière... Je ne le conseille pas... :)

Eh... Cela fait huit ans que je ne veux plus prendre d'alcool - ça ne m'intéresse pas... :)

Merci de vous préoccuper de votre santé ;)

 
hoz:

Non. Je pense simplement que les conditions et les contrôles inutiles sont un gaspillage de ressources.
Oui... C'est beaucoup plus facile de sauter quelques contrôles nécessaires que de se présenter à l'oncle Kolya...
 
Allis:

Bummer.... J'ai commencé là.... Exactement comme celui-là... J'ai posté le lien.... Et pour une raison quelconque, ça n'a pas marché... Merci !
Cela ne fonctionnait pas simplement parce qu'il fallait mettre un point-virgule après la déclaration de la variable et que vous n'en aviez pas.
 

Pour regarder les chandeliers standards sous un angle différent, je vais déplacer la ligne de temps de gauche à droite. Les chandeliers horaires ne doivent pas commencer et finir à 00 minute, mais à 10 ou 20 minutes, par exemple.

Il donnera quelques informations supplémentaires. Même chose pour les chandeliers quotidiens - décalage par heures (par exemple, sessio ouverte). J'ai commencé à éditer les archives csv dans excel, mais cela prend beaucoup de temps. Peut-être que quelqu'un peut trouver une autre solution pour décaler les minutes et recalculer le reste de la période.

 
Operr:

Pour regarder les chandeliers standard sous un angle différent, je vais déplacer la ligne de temps de gauche à droite. Les chandeliers horaires ne doivent pas commencer et finir à 00 minute, mais à 10 ou 20 minutes, par exemple.

Il donnera quelques informations supplémentaires. Même chose pour les chandeliers quotidiens - décalage par heures (par exemple, sessio ouverte). J'ai commencé à éditer les archives csv dans excel, mais cela prend beaucoup de temps. Peut-être que quelqu'un peut trouver une autre solution pour déplacer les minutes et recalculer le reste du TF.


Vous pouvez utiliser le script period_converter et modifier les conditions de recadrage des chandeliers. Par exemple, en un coup d'œil, pour obtenir des chandeliers pour x heures et 10 minutes :

      if(time0>=i_time+periodseconds || i==0)

remplacer par

      if(TimeMinute(time0)==10 || i==0)

Ou alors)))

 
alsu:

Prenez le script period_converter et modifiez la condition de coupure des chandeliers à votre convenance, et vous serez satisfait. Par exemple, en un coup d'œil, pour obtenir des bougies pendant x heures et 10 minutes :

remplacer par

ou quelque chose comme ça)))


Merci pour cette idée géniale ! J'ai essayé tout ce que j'ai pu trouver, mais la logique du script me dépasse.

Les chandeliers horaires avec coeff=1 sont toujours identiques à l'original, mais la sortie en est proche :(
if(time0>=i_time+periodseconds && TimeMinute(time0)==10 || i==0)
// и
if(time0>=i_time+periodseconds +60*10 || i==0)
// и
if(TimeMinute(time0)==10 || i==0)
// тоже

Comment décaler de 10 minutes l'ouverture de la bougie de l'heure dans le script Period_converter? Dois-je apporter des modifications au stade de l'enregistrement de l'historique ?

Raison: