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

 
evillive:

Vous n'avez pas envie de sortir du cadre ?

Juste ici :

Aussi, "ne veut pas montrer" tout ce qui est là, pas seulement low[1].

1
 
mario065:
Suggestions - comment le réparer ?
Expliquez en langage humain ce que vous attendez de ce script ?
 
evillive:
Expliquez en langage humain, ce que vous attendez de ce script.

Trouvez la valeur la plus basse/haute de l'indicateur de volume depuis le début de la journée jusqu'à maintenant.

S'il y a une nouvelle valeur haute/faible, il se souvient de la dernière.

 

evillive,

Merci de votre attention :)

 
mario065:

Trouvez la valeur la plus basse/la plus haute de l'indicateur de volume depuis le début de la journée jusqu'à aujourd'hui.

S'il y a une nouvelle valeur haute ou basse, elle se souviendra de la dernière.

C'est probablement le mieux :

//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
int high,low;
datetime timeh,timel;
//+------------------------------------------------------------------+
int init(){  
  return(0);
 }
int deinit(){
  Comment("");
  return(0);
 }  
//-------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnStart(){
    double   spred = MarketInfo(Symbol(),MODE_SPREAD);
    int      limit,Open_bar_per,Close_bar_per,av_vol;
    datetime Time_period,Close_per;
//+------------------------------------------------------------------+
       Time_period   = iTime(Symbol(),PERIOD_D1,0);
       Open_bar_per  = iBarShift(Symbol(),0,Time_period,false);
       Close_per     = iTime(Symbol(),0,0);
       Close_bar_per = iBarShift(Symbol(),0,Close_per,false);
       limit         = Open_bar_per - Close_bar_per;

int hivol_s=iHighest(NULL,0,MODE_VOLUME,limit,1);
int lovol_s=iLowest(NULL,0,MODE_VOLUME,limit,1);
high=iVolume(NULL,0,hivol_s);
low=iVolume(NULL,0,lovol_s);
timeh=iTime(NULL,0,hivol_s);
timel=iTime(NULL,0,lovol_s);
       av_vol = NormalizeDouble(high/3,0);
//+------------------------------------------------------------------+
     Print("\nВреме на брокера: ",TimeToStr(TimeCurrent(),TIME_SECONDS),", Локално време: "+TimeToStr(TimeLocal(),TIME_SECONDS),
             "\nТекущ спред: ",DoubleToStr(spred/10,1),
             "\n High_per  :  ",high,
             "\n Low_per   :  ",low,   
             "\n time_high :  ",TimeToStr(timeh,TIME_SECONDS),
             "\n time_low  :  ",TimeToStr(timel,TIME_SECONDS),
             "\n Close_per :  ",TimeToStr(Close_per,TIME_SECONDS),
             "\n Open_per  :  ",TimeToStr(Time_period,TIME_SECONDS), 
             "\n av_vol    :  ",av_vol
             ); 
  }

Mon commentaire ne montre pas quelque chose, il s'imprime bien...

 
void CalculateSimpleMA(int rates_total,int prev_calculated,const double &price[])
  {
   int i,limit;
//--- first calculation or number of bars was changed
   if(prev_calculated==0)
   
     {
      limit=InpMAPeriod;
      //--- calculate first visible value
      double firstValue=0;
      for(i=0; i<limit; i++)
         firstValue+=price[i];
      firstValue/=InpMAPeriod;
      ExtLineBuffer[limit-1]=firstValue;
      ExtLineBufferFid[1]=(firstValue*InpMAPeriod-price[i-InpMAPeriod])/i-1; Добрый человек предоставил вот такую реализацию(sma99[i]=(sma100[i]*100-d[i-100])/99;), но что то не выходит!

Salutations, excusez la répétition, mais question intéressante).

COMMENT calculer :

Avoir une période glissante (par exemple 16) calculer une période de 15, en partant d'une période de 16.

 
evillive:

C'est probablement mieux :

Mon commentaire ne montre rien, l'impression se fait normalement...

Bonjour evllive,

C'est possible, mais je n'en ai pas besoin. J'ai besoin d'un tableau.

Tu ne peux pas voir le commentaire parce que tu utilises voidOnStart et que j'utilise intstart.

Voici ce que j'ai écrit l'autre jour dans le fichier de commentaires, en bulgare.

Je vais y réfléchir aujourd'hui et voir ce dont nous avons discuté.

Merci pour vos commentaires.

PS : J'ai ajouté un autre fichier.

Fichier H_L- premier indicateur, fichier_6 dans l'explorateur de corps mais ne fait que dessiner.

 
evillive:

C'est probablement mieux comme ça :

Commentaire J'ai quelque chose qui ne s'affiche pas, l'impression sort normalement...

C'est dit et fait. Je ne l'ai pas encore mis dans des tableaux, mais je le ferai une fois que je l'aurai converti en fonction externe.

Les lignes sont dessinées sur la première fenêtre de l'indicateur-data, si c'est pour le volumétrique, il faut un data brother pour le volumétrique.

De cette façon, je formalise la gamme du Volumet en parties basse, moyenne, haute.

 

Bonsoir !

Pouvez-vous me dire ce qui ne va pas avec ma première évaluation environnementale ? Il n'a pas affiché les messages au moment de la fracture :

//--------------------------------------------------------------------

extern Period_MA=8; // Période de la MA calculée

//--------------------------------------------------------------------

int start() // Démarrage de la fonction spéciale

{

double MA_f, // Valeur MA sur 0 bar

MA_s, // Valeur MA sur 1 barre

MA_t, // Valeur MA sur 2 barres

//--------------------------------------------------------------------

// Accès à la fonction tech.ind.

MA_f =iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,0) ;

MA_s =iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,1) ;

MA_t =iMA(NULL,0,Period_MA,0,MODE_SMA,PRICE_CLOSE,2) ;

//--------------------------------------------------------------------

si (MA_t>MA_s<MA_f)

Alert("Fracture au milieu vers le bas");// Message

si (MA_t<MA_s>MA_f)

Alert("Coupure au milieu depuis le haut");// Message

//--------------------------------------------------------------------

return ; //sortir de start()

}

//--------------------------------------------------------------------

Merci !

 
Top2n:

Salutations, excusez la répétition, mais question intéressante).

COMMENT calculer :

Avoir une période glissante (par exemple 16) calculer la période 15, en commençant par la période 16.

Y(n+1)=(Y(n)*n+x[n+1])/(n+1), où Y(i) est la moyenne mobile de i valeurs, x[i] est la valeur numéro i. Numérotation des valeurs comme dans les séries chronologiques.

Je vous serais très reconnaissant si vous pouviez me dire pourquoi vous avez besoin de tout ça.