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

 
Server:

Merci pour cette réponse sensée

Encore plus intelligible :

Vous organisez une énumération des postes ouverts. Filtrez-les par symbole, type et magie. Si le bénéfice de la position sélectionnée correspond au critère de déclenchement du chalut - déplacer l'arrêt de cette position au niveau spécifié, sans oublier de faire tous les contrôles sur la justesse de ces actions.

J'ai travaillé à mon tour... Suivant... :)

 
alsu:



Merci pour votre réponse concernant le croisement du CCI avec zéro.
 
MK07:

Merci pour votre réponse concernant le croisement du CCI avec zéro.

On vous a montré comment calculer les croisements CCI.

//+------------------------------------------------------------------+
//|                                                    count bar.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012,mario"
#property link      ""

datetime TimeStart = 0;
//+------------------------------------------------------------------+
int init(){return(0);}
int deinit(){Comment("");return(0);}
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   int f;
   double   MyPoint = 0.0001;
   bool     cu1     = false;
   bool     cu2     = false;
   double   ma_1    = iMA(NULL,0,31,0,MODE_SMA,PRICE_OPEN,0);
   double   ma1     = iMA(NULL,0,11,0,MODE_SMA,PRICE_OPEN,0);
   double   ma_2    = iMA(NULL,0,31,0,MODE_SMA,PRICE_OPEN,1);
   double   ma2     = iMA(NULL,0,11,0,MODE_SMA,PRICE_OPEN,1);
//Уточнение-при кое събитие ще запомни датата-пресичането
//Уточняем,когда запомнит время пересечения
   if(ma2<ma_2 && ma1>ma_1)
      TimeStart=Time[0]; 
   if(ma2>ma_2 && ma1<ma_1)
      TimeStart=Time[0];
//Кога е истината
//Когда истина
   if(ma1>ma_1)
      cu1=true;
   if(ma1<ma_1)
      cu2=true;
//Шифтвам до датата-когато има истина
//Шифт до дата истини
   if(cu1==true || cu2==true)  
      int b1=iBarShift(Symbol(), PERIOD_H1, TimeStart);      
      int b2=iBarShift(Symbol(), PERIOD_H1, TimeCurrent());
//Преброяване на баровете-от нулевия до последната дата
//Пересчитаем бари от нуля до последная дата
    for(int j=b2;j<=b1;j++){
         f=b1-b2;
      }
      
   Comment("\nВреме на брокера: ",TimeToStr(TimeCurrent(),TIME_SECONDS),", Локално време: "+TimeToStr(TimeLocal(),TIME_SECONDS),
             "\nТекущ спред: ",DoubleToStr((Ask-Bid)/MyPoint,1),
             "\n=====================",
             "\n Начална дата:           ",TimeToStr(TimeStart,TIME_DATE|TIME_SECONDS), 
             "\n Брой барове:            ",f,
             "\n=====================" 
             ); 
   return(0);
  }
//+------------------------------------------------------------------+
Je pense que vous serez en mesure de le gérer à partir d'ici.
 
alsu:

Le period_converter de la fourniture standard ne convient-il pas ?


Bien sûr que non, il ne forme pas des semaines et surtout correctement, l'avez-vous utilisé ?

CAMARADES, BRONTO, BRONTO !!! AIDE

Autre question, quelle est l'erreur de données défectueuses du testeur ? Combien de barres minimum le testeur doit-il exécuter et pourquoi cette restriction est-elle nécessaire ?

Ce paramètre peut-il être modifié ?

 
ZZZEROXXX:


Non, bien sûr, il ne forme pas des semaines et plus correctement, l'avez-vous utilisé vous-même ?

CAMARADES, BRONTO, BRONTO !!! AIDE

Autre question, quelle est l'erreur du testeur ? De combien de barres le testeur a-t-il besoin au minimum pour commencer ?

Mettez 10 millions dans les paramètres !
 
borilunad:
Réglez-le à 10 millions dans les paramètres !

J'en ai un million, mais j'ai constaté que si le nombre de barres est inférieur à 100, le testeur ne teste pas du tout. La question qui se pose alors est la suivante : si la règle des 100 barres est respectée, pourquoi le test ne se fait-il pas dans ces 100 barres et ne commence-t-il qu'après ?
 
ZZZEROXXX:

J'en ai un million, j'ai constaté que si moins de 100 bars, le testeur ne teste pas du tout. La question qui se pose alors est la suivante : si la règle des 100 barres est respectée, pourquoi le test ne se fait-il pas dans ces 100 barres et ne commence-t-il qu'après ?
Les 10 millions de barres sont pour les barres minutes sur lesquelles le testeur simule des ticks. Et 100 barres-minutes, c'est très peu, moins que les barres qui tiennent sur un graphique d'une minute. Le testeur devrait fonctionner s'il y a au moins 1440 barres à parcourir de 0.00 à 0.00 ! C'est probablement le minimum, et pourquoi en avez-vous besoin ? Vouliez-vous tester sur une courte section ? Mais vous ne pouvez pas définir des tests par heures, seulement par dates, des jours entiers. Je comprends dans votre cas.
 

C'est la fonction de l'indicateur :

//+-------------------------------------------------------------------------------------+
//| Определение индекса бара, с которого необходимо производить перерасчет              |
//+-------------------------------------------------------------------------------------+
int GetRecalcIndex(int& total)
{
   int counted_bars = IndicatorCounted();          // Сколько баров уже посчитано
   total = Bars - 1;                               // Определение первого бара истории
   if (indBarsCount > 0 && indBarsCount < total)   // Если не нужно рассчитывать всю..
      total = indBarsCount;                        // ..историю, то начнем с указанного..
                                                   // ..бара - indBarsCount
   if (counted_bars == 0)                          // Кол-во посчитанных баров - 0. 
   {
      DeleteAllObjects();                          // Не забудем удалить все созданные..
                                                   // ..объекты
      return(total);                               // Нужно пересчитать всю историю
   }
   return(Bars - counted_bars - 1);                // Начинаем с первого непосчитанного..
                                                   // ..бара
}

Une chose que je ne comprends pas. Habituellement, ils vérifient le nombre de barres non calculées comme ceci :

Barres - counted_bars

L'essentiel est le suivant. Par exemple, nous avons 500 barres. En outre, 500 ont été calculés. Une fois la fonction exécutée, elle renvoie 500 - 500 - 1 = -1. Est-ce normal ?

S'il n'y avait pas -1 à la fin, il retournerait 0, c'est-à-dire que toutes les barres sont calculées. Comment comprendre ce point ?

 
hoz:

C'est la fonction de l'indicateur :

Une chose que je ne comprends pas. Habituellement, ils vérifient le nombre de barres non calculées comme ceci :

Barres - counted_bars

L'essentiel est le suivant. Par exemple, nous avons 500 barres. En outre, 500 ont été calculés. Une fois la fonction exécutée, elle renvoie 500 - 500 - 1 = -1. Est-ce normal ?

S'il n'y avait pas -1 à la fin, il retournerait 0, c'est-à-dire que toutes les barres sont calculées. Comment comprendre ce point ?

Une barre de zéro ne peut pas être "calculée" car elle n'est pas encore complète.
 
tara:
La barre de zéro ne peut pas être "calculée" car elle n'est pas encore terminée.


Exactement. Quelque chose à propos des indicateurs est plus difficile à percevoir pour moi. Même les plus évidentes sont... :(
Raison: