Questions des débutants MQL5 MT5 MetaTrader 5 - page 654

 
pako:

Le numéro de barre de la fractale inférieure est connu.

A partir de là, recherchez dans la boucle le premier sommet correspondant au creux de la fractale connue.

Cela peut être fait, mais je ferais l'inverse. C'est-à-dire qu'il faut d'abord trouver le sommet de la bougie précédente (formée), puis la dernière fractale descendante. S'ils sont identiques, mettez un point.
 
Alexey Kozitsyn:
Nous pourrions le faire, mais je ferais le contraire. C'est-à-dire que nous trouvons d'abord le sommet de la bougie précédente (formée), puis la dernière fractale descendante. S'ils coïncident, on met un point.

Je ne comprends pas. Je pensais que c'était ce qu'on faisait dans l'état.

if( High[i+1]==Low[isFractalDn()])//максимум первой свечи равен первому фракталу Dn
Comment l'écrire ?
 
Vladimir Karputov:
Entrez le LOGIN et le PASSWORD de MQL5.community.
Où se trouve exactement une ligne
Dossiers :
 
Ласло Подобедов:
Où y a-t-il exactement une ligne ?
Désolé, j'ai confondu avec le terminal. Bien sûr, il vous suffit d'entrer le LOGIN de MQL5.community.
 
Vladimir Karputov:
Désolé, j'ai confondu avec le terminal. Bien sûr, il vous suffit d'entrer le LOGIN de MQL5.community.
Merci, mais il ne montre aucun signe de vie... peut-être ai-je fait quelque chose de mal ?
Dossiers :
 
mila.com:

Je ne comprends pas. Je pensais que c'était ce qu'on faisait dans l'état.

if( High[i+1]==Low[isFractalDn()])//максимум первой свечи равен первому фракталу Dn
Comment l'écrivez-vous ?

Facile... fais ça...

#property copyright "Tapochun"
#property link      "https://www.mql5.com/ru/users/tapochun"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
//---
#property indicator_type1 DRAW_ARROW
#property indicator_width1 5
#property indicator_color1 clrAqua
#property indicator_type2 DRAW_ARROW
#property indicator_width2 5
#property indicator_color2 clrRed
//+------------------------------------------------------------------+
//| Глобальные переменные                                                                                                                       |
//+------------------------------------------------------------------+
double bufSell[];
double bufBuy[];
//+------------------------------------------------------------------+
//| Входные параметры                                                                                                                           |
//+------------------------------------------------------------------+
input int inpNum=50;    // Количество свечей для поиска последнего фрактала
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   SetIndexBuffer(0,bufBuy);
   SetIndexBuffer(1,bufSell);
   SetIndexEmptyValue(0,EMPTY_VALUE);
   SetIndexEmptyValue(1,EMPTY_VALUE);
   SetIndexArrow(0,225);
   SetIndexArrow(1,226);
   IndicatorDigits(_Digits);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   if(rates_total<=0 || prev_calculated<0)
      return( 0 );
//---
   if(prev_calculated>0) // Если не первый расчет индикатора
     {

     }
   else                         // Если первый расчет индикатора
     {
      ArrayInitialize(bufBuy,EMPTY_VALUE);
      ArrayInitialize(bufSell,EMPTY_VALUE);
      //---
      for(int i=1; i<rates_total-7; i++)
        {
         CheckBuyArrow(low[i],i,i+4,rates_total-3,time);
         CheckSellArrow(high[i],i,i+4,rates_total-3,time);
        }
     }
//---
   return(rates_total);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CheckBuyArrow(const double price,
                   const int index,
                   const int first,
                   int last,
                   const datetime &time[]
                   )
  {
   last=(first+inpNum-1<last) ? first+inpNum-1 : last;
   double iPrice;
//---
   for(int i=first; i<=last; i++)
     {
      iPrice=iFractals(_Symbol,_Period,MODE_UPPER,i);
      if(iPrice!=EMPTY_VALUE)
        {
         if(price==iPrice)
           {
            bufBuy[index]=iPrice-10*_Point;
            Print(__FUNCTION__,": "+TimeToString(time[index])+" - "+TimeToString(time[i]));
           }
         return;
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CheckSellArrow(const double price,
                    const int index,
                    const int first,
                    int last,
                    const datetime &time[]
                    )
  {
   last=(first+inpNum-1<last) ? first+inpNum-1 : last;
   double iPrice;
//---
   for(int i=first; i<=last; i++)
     {
      iPrice=iFractals(_Symbol,_Period,MODE_LOWER,i);
      if(iPrice!=EMPTY_VALUE)
        {
         if(price==iPrice)
           {
            bufSell[index]=iPrice+10*_Point;
            Print(__FUNCTION__,": "+TimeToString(time[index])+" - "+TimeToString(time[i]));
           }
         return;
        }
     }
  }
//+------------------------------------------------------------------+
Je compte juste sur les histoires.
 
Ласло Подобедов:
Merci, mais il ne montre aucun signe de vie... peut-être ai-je fait quelque chose de mal ?
Il peut y avoir plusieurs possibilités :
  1. Vous avez un système d'exploitation 32 bits. Dans ce cas, vous n'êtes pas autorisé à partir.
  2. Le temps est court - il faut deux minutes pour rejoindre le nuage.
  3. Il est possible que des ports soient fermés par le pare-feu - il faut regarder les journaux de l'agent.
 
Vladimir Karputov:
Plusieurs options sont possibles :
  1. Vous avez un système d'exploitation 32 bits. Dans ce cas, vous n'êtes pas autorisé à partir.
  2. Cela n'a pas été long - il faut deux minutes pour rejoindre le nuage.
  3. Il est possible que les ports soient bloqués par le pare-feu - vous devez consulter les journaux de l'agent.
Le système est x64 car j'ai 8gb de RAM et le système d'exploitation est win 10, ok merci j'ai déconnecté le firewall maintenant je vais réessayer !
 
Ласло Подобедов:
Eh bien, le système est x64, parce que j'ai 8 Go de RAM, et le système win 10, ok merci déconnecté le pare-feu maintenant essayer à nouveau !
Savez-vous comment trouver le port TCP ? Je viens de télécharger le metatester séparément ...
 
mila.com:

Je ne comprends pas. Je pensais que c'était ce qu'on faisait dans l'état.

if( High[i+1]==Low[isFractalDn()])//максимум первой свечи равен первому фракталу Dn
Comment l'écrivez-vous ?
Regardez dans la boîte.
Raison: