[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 64

 
pourquoi l'indicateur ROC ne prend pas réellement une valeur inférieure à "0", mais le fait graphiquement ?
 
vilard:
pourquoi l'indicateur ROC ne prend pas réellement une valeur inférieure à "0", mais le fait graphiquement ?

Quel ROC ? Celui-là ?
 
Roman.:

Quel ROC ? Celui-là ?

https://www.mql5.com/ru/code/9340
 

Bonjour à tous. Les gars, j'ai une condition pour trouver max : mais dans un couloir.

for (int max=1 ; max<1000 ; max++)
if (High[max+1] < High[max] && High[max] > High[max-1] && Low[max+1] < Low[max] &&& Low[max] > Low[max-1] &&
High[max] > low_level_s && High[max] < high_level_s) break ;

cela ne fonctionne pas.
si je supprime le couloir Tout est ok :

for (int max=1 ; max<1000 ; max++)
if (High[max+1] < High[max] && High[max] > High[max-1] && Low[max+1] < Low[max] && Low[max] > Low[max-1] ) break ;

Quel pourrait être le problème ?

Je comprends que max<1000 devrait être augmenté, je l'ai essayé mais ça n'a pas marché.

Voici un exemple en chiffres :

1. 4100<1.4150<1.4200 mais 1.4150 doit baisser

à l'intérieur de bas_niveau_s(1.4145), haut_niveau_s(1.4155) . Dans cet exemple, c'est le cas.

Mais si ce n'est pas le cas, supposons que c'est 1.4160, nous continuerons à chercher. Le problème est que cette valeur élevée peut remonter à 3 ans, par exemple, et que le programme ne peut pas la trouver.

Que faire ? Peut-être est-il possible d'obtenir l'archive des devis ?

 
vilard:

https://www.mql5.com/ru/code/9340

Regardez mon lien - c'est une variante de base avec la description de l'indicateur de taux de prix + EA basé sur celui-ci (l'indicateur iCustom() succombe). Si vous avez d'autres conditions de trading pour l'entrée sur le marché, modifiez celles qui existent et allez-y, tout se teste bien, maintenant moi-même, je viens de finir de le tester comme une variante de lachanalysis (filtre d'entrée sur le marché), de plus il y a une description et tout le reste... Modifiez-le pour l'adapter à vos conditions et c'est tout. Le conseiller expert est ici.
 
Roman.:

Regardez mon lien - c'est une variante de base avec la description de l'indicateur de taux de prix + un conseiller expert basé sur celui-ci (l'indicateur iCustom() s'y prête). Si vous avez d'autres conditions de trading pour l'entrée sur le marché, modifiez celles qui existent et allez-y, tout est testé correctement, maintenant moi-même, je viens de finir de le tester comme une variante de la tehanalyse (filtre d'entrée sur le marché), de plus, il y a une description et tout le reste... Modifiez-le pour l'adapter à vos conditions et c'est tout. Le conseiller expert est ici.

Merci
 

Ouf ! !! L'ordinateur est en panne ! !! Il réagit avec un certain retard, fait apparaître de mauvaises fenêtres, ne supprime pas, se fige... J'ai redémarré 20 fois, je l'ai débranché.

Merci.

C'est peut-être un virus.

Le dossier des utilisateurs fait quarante-cinq mille mégaoctets, mon Dieu ! Et la somme des dossiers qu'il contient, la somme de ce qu'il contient, en vérifiant en cliquant sur les propriétés du dossier, ne donne même pas le trentième.

Ce n'est pas supprimé ! !! C'est juste un ralentissement, rien n'est juré.

Rien téléchargé, rien supprimé, j'ai eu du mal à effacer des photos et puis un film de Ninja, l'espace a ajouté un bord comme insignifiant, un millimètre de rouge.

 
J'ai attaché un Trailing Stop à cet EA. Compile à 0 et 0, mais dans le testeur
Trailinstop ne fonctionne pas. Veuillez me dire comment j'aurais dû l'entrer correctement

Code d'arrêt de fin de course.

extern double  lots    = 1,

               No_Loss              = 7,     //перевод в безубыток
               TrailingStop         = 12;     //тралл  

extern string P_Performanc0= "-- 1 --";

extern int TP1BUY   = 222,  
           SL1BUY   = 99999;   

extern string P_Performanc1= "-- 2 --";  

extern int TP2SELL  = 222,
           SL2SELL  = 99999;
           
extern string P_Performanc2= "-- 3 --";         
           
extern int TP3BUY   = 222,         
           SL3BUY   = 99999;

extern string P_Performanc3= "-- 4 --";   
           
extern int TP4SELL  = 222,
           SL4SELL  = 99999;          

extern string P_Performanc4= "-- 5 --";        
           
extern int TP5BUY   = 222,
           SL5BUY   = 99999;
           
extern string P_Performanc5= "-- 6 --";              
           
extern int TP6SELL  = 222,        
           SL6SELL  = 99999;
           
extern string P_Performanc6= "-- 7 --";              
           
extern int TP7BUY   = 222,
           SL7BUY   = 99999; 
           
extern string P_Performanc7= "-- 8 --";              
           
extern int TP8SELL  = 222,
           SL8SELL  = 99999;                   

           
int        last_bar = 0;

int start()
{
   if (TrailingStop!=0) TrailingStop(0,TrailingStop);
   if (No_Loss!=0)      TrailingStop(1,No_Loss);
   string Name;
   //-----------------------------------------------------------------------   
double StopLevel =MarketInfo(Symbol(),MODE_STOPLEVEL);  // текущий уровень стопов  
   if (last_bar == Bars) return(0);
   last_bar = Bars;
   if (OrdersTotal() == 0)
   {
OrderSend(Symbol(),OP_BUY,lots,Ask,3,Bid-SL1BUY*Point,Ask+TP1BUY*Point);
OrderSend(Symbol(),OP_BUY,lots,Ask,3,Bid-SL3BUY*Point,Ask+TP3BUY*Point);
OrderSend(Symbol(),OP_BUY,lots,Ask,3,Bid-SL5BUY*Point,Ask+TP5BUY*Point);
OrderSend(Symbol(),OP_BUY,lots,Ask,3,Bid-SL7BUY*Point,Ask+TP7BUY*Point);

OrderSend(Symbol(),OP_SELL,lots,Bid,3,Ask+SL2SELL*Point,Bid-TP2SELL*Point);
OrderSend(Symbol(),OP_SELL,lots,Bid,3,Ask+SL4SELL*Point,Bid-TP4SELL*Point);
OrderSend(Symbol(),OP_SELL,lots,Bid,3,Ask+SL6SELL*Point,Bid-TP6SELL*Point);
OrderSend(Symbol(),OP_SELL,lots,Bid,3,Ask+SL8SELL*Point,Bid-TP8SELL*Point);
   } 
   return(0);
}
void TrailingStop(int NL, int tral)
{
   int tip,Ticket;
   bool error;
   double StLo,OSL,OOP;
   for (int i=0; i<OrdersTotal(); i++) 
   {  if (OrderSelect(i, SELECT_BY_POS)==true)
      {  tip = OrderType();
         if (tip<8 && OrderSymbol()==Symbol())
         {
            OSL   = OrderStopLoss();
            OOP   = OrderOpenPrice();
            Ticket = OrderTicket();
            if (tip==OP_BUY)             
            {
               if (NL==1 && OSL>OOP) continue;
               StLo = NormalizeDouble(Bid - tral*Point,Digits); 
               if (StLo > OSL && StLo > OOP)
               {  error=OrderModify(Ticket,OOP,StLo,OrderTakeProfit(),0,White);
                  Comment("TrailingStop ",Ticket," ",TimeToStr(TimeCurrent(),TIME_MINUTES));
                  Sleep(500);
                  if (!error) Print(Symbol(),"   Error order ",Ticket," TrailingStop ",GetLastError());
               }
            }                                         
            if (tip==OP_SELL)        
            {
               if (NL==1 && (OSL<OOP&&OSL!=0)) continue;
               StLo = NormalizeDouble(Ask + tral*Point,Digits);
               if ((StLo < OSL||OSL==0) && StLo < OOP)
               {  error=OrderModify(Ticket,OOP,StLo,OrderTakeProfit(),0,White);
                  Comment("TrailingStop ",Ticket," ",TimeToStr(TimeCurrent(),TIME_MINUTES));
                  Sleep(500);
                  if (!error) Print(Symbol(),"   Error order ",Ticket," TrailingStop ",GetLastError());
               }
            } 
         }
      }
   }
}
//--------------------------------------------------------------------
 
Veuillez me dire s'il est possible d'afficher différentes lignes du même indicateur dans différentes sous-fenêtres du graphique. Merci.
 
Ouvrez l'indicateur dans deux fenêtres et définissez la ligne non désirée comme la couleur de fond.