Est-il possible de trouver par programme TOUS les canaux/flots horizontaux à un certain intervalle de temps ou au moins de formuler correctement le cahier des charges ? - page 7

 
Rayder69:

Voici un script dont je ne me souviens plus où ni quand je l'ai trouvé.

Peut-être que quelqu'un pourrait l'utiliser...


Que fait-il ?
 
Vous entrez dans la variable le type de flop qui vous intéresse pendant toute la durée de l'historique et il vous donne le plus long flop dans le nombre de pips spécifié, quand et combien de temps il a duré.
 

Merci.

 
Rayder69:
Vous entrez dans la variable le flip en pips qui vous intéresse dans l'historique, et il vous donne le plus long flip dans le nombre de pips spécifié, quand et combien de temps il a duré.


Erreur : Le script ne peut pas fonctionner sur ce graphique.

Qu'est-ce que je fais de mal ?

 
Je ne peux pas le dire. Cela fonctionne bien pour moi. Je l'ai placé dans le dossier experts/scripts et tout fonctionne bien, qu'il s'agisse de devises ou de contrats à terme.
 
il ne fonctionne pas sur cinq chiffres
 
alsu:
il ne fonctionne pas sur cinq chiffres

est-il possible de le réparer ? et puis-je demander de mettre dans les variables l'intervalle de temps auquel il cherche un appartement ?
 
sever30:

et oserais-je demander de mettre dans les variables l'intervalle de temps auquel il cherche un appartement ?
//////////////////////////////////////////////////////////////////////
//   ПОИСК САМОГО ДЛИННОГО ФЛЕТА ПО ВРЕМЕНИ      +111.mq4           //
//////////////////////////////////////////////////////////////////////
#property show_inputs  
  extern int ПУНКТЫ=300;
  extern datetime НАЧАЛО=D'2010.9.3';
  extern datetime КОНЕЦ=D'2010.1.1';
//----------Переменные для вывода данных--------------  
  int FBars,          //кол-во баров в коридоре      
      SiftBars;       //индекс бара
  double PriceMin,    //минимум коридора
         PriceMax;    //максимум коридора
//----------------------------------------------------
int init()
  {
   НАЧАЛО=iBarShift(0,0,НАЧАЛО);
   КОНЕЦ=iBarShift(0,0,КОНЕЦ);
  }
//----------------------------------------------------
int start()
  {
   int i,n,D,ST,Bar;
//----
   Alert("*********************");
   int Shift_Min=iLowest(Symbol(),0,MODE_LOW,Bars,0);     //Находим индекс минимального бара
   int Shift_Max=iHighest(Symbol(),0,MODE_HIGH,Bars,0);   //Находим индекс максимального бара
   double Min=iLow(Symbol(),0,Shift_Min);                 //Находим минимум на графике
   double Max=iHigh(Symbol(),0,Shift_Max);                //Нходим максимум на графике
   double Z=(Max-Min)/Point;             //Растояние в пунктах от минимума до максимума на всем графике
   double W=Z-ПУНКТЫ;                //Переменная W нужна для ограничения бесполезных циклов по ценам ось(Y)  
//--------------------------------------------------------   
   for (i=0;i<=W;i++)//Цикл по ценам ось(Y) 
    { 
     ST=0;                                
     for(n=НАЧАЛО;n<=КОНЕЦ&&n<Bars;n++)//Цикл по барам ось(X)
      {
       if(Low[n]>Min && High[n]<Min+ПУНКТЫ*Point)
        {
         if(ST==0)
          {
           Bar=n;
          }
         ST++;
        }else
        {
         if(FBars<ST)
          {
           FBars=ST;                   //Сохраним кол-во баров в коридоре
           PriceMin=Min;               //Сохраним минимум коридора
           PriceMax=Min+ПУНКТЫ*Point;  //Сохраним максимум коридора
           SiftBars=Bar;               //Сохраним индекс бара
           ST=0;                       //Обнуляем счетчик
          }else
          {
           ST=0;                       //Обнуляем счетчик
          }
        }
      }
     Min+=1*Point;                     //Сдвигаем коридор на один пункт вверх                   
    }
//--------------------- ВЫВОД ДАННЫХ --------------------
   ObjectDelete("q9w8e5");
   ObjectCreate("q9w8e5",OBJ_RECTANGLE,0,Time[SiftBars],PriceMin,Time[SiftBars+FBars],PriceMax);
   
   datetime Нач=Time[SiftBars+FBars];
   datetime Кон=Time[SiftBars];
   
   Alert("Самый длинны флет в ",ПУНКТЫ," пунктов был с ",TimeDay(Нач),".",TimeMonth(Нач),".",TimeYear(Нач),"   ",TimeHour(Нач),":",TimeMinute(Нач),
        "  по ",TimeDay(Кон),".",TimeMonth(Кон),".",TimeYear(Кон),"   ",TimeHour(Кон),":",TimeMinute(Кон),"    Цена :  MAX = ",PriceMax,"  MIN = ",PriceMin,
        "   Кол-во баров в коридоре = ",FBars,"       :)"); 
   
   return(0);
  }
//+------------------------------------------------------------------+
 
sever29:

Si vous voulez utiliser le script pour évaluer les performances des EA de type avalanche, cela ne convient que pour une avalanche classique avec des canaux stationnaires. Si des canaux non stationnaires sont utilisés, les triangles divergents sont les plus dangereux dans ce cas.
 
khorosh:
Si vous voulez utiliser le script pour évaluer les performances des EA de type avalanche, cela ne convient que pour une avalanche classique avec des canaux stationnaires. Si des canaux non stationnaires sont utilisés, les triangles divergents sont les plus dangereux dans ce cas.
Un canal stationnaire est-il un canal avec deux frontières parallèles ?