Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 654

 
pako:

Il numero di barra del frattale inferiore è noto

Da esso, cercate nel ciclo il primo alto corrispondente al basso del frattale conosciuto

Questo si può fare, ma io farei il contrario. Cioè prima trovare il massimo della candela precedente (formata), e poi l'ultimo frattale in basso. Se sono uguali, metti un punto.
 
Alexey Kozitsyn:
Potremmo farlo, ma io farei il contrario. Cioè prima troviamo il massimo della candela precedente (formata), e poi l'ultimo frattale in basso. Se coincidono, mettiamo un punto.

Non capisco. Pensavo che fosse quello che stavamo facendo nella condizione.

if( High[i+1]==Low[isFractalDn()])//максимум первой свечи равен первому фракталу Dn
Come si dovrebbe scrivere?
 
Vladimir Karputov:
Inserisci LOGIN e PASSWORD da MQL5.community.
Dove esattamente c'è una linea
 
Ласло Подобедов:
Dove si trova esattamente una linea?
Scusa, mi sono confuso con il terminale. Naturalmente è sufficiente inserire il LOGIN da MQL5.community.
 
Vladimir Karputov:
Scusa, mi sono confuso con il terminale. Naturalmente è sufficiente inserire il LOGIN da MQL5.community.
Grazie, ma non mostra alcun segno di vita... forse ho fatto qualcosa di sbagliato?
 
mila.com:

Non capisco. Pensavo che fosse quello che stavamo facendo nella condizione.

if( High[i+1]==Low[isFractalDn()])//максимум первой свечи равен первому фракталу Dn
Come si fa a scriverlo?

Facile... fare questo...

#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;
        }
     }
  }
//+------------------------------------------------------------------+
Contando solo sulle storie.
 
Ласло Подобедов:
Grazie, ma non mostra alcun segno di vita... forse ho fatto qualcosa di sbagliato?
Ci potrebbero essere diverse possibilità:
  1. Avete un sistema operativo a 32 bit. In questo caso non vi è permesso di andare.
  2. Non è passato molto tempo - ci vogliono due minuti per entrare nella nuvola.
  3. Possibili porte chiuse dal firewall - bisogna guardare i log dell'agente.
 
Vladimir Karputov:
Sono possibili diverse opzioni:
  1. Avete un sistema operativo a 32 bit. In questo caso non vi è permesso di andare.
  2. Non è passato molto tempo - ci vogliono due minuti per entrare nella nuvola.
  3. Forse le porte sono bloccate dal firewall - devi guardare i log dell'agente.
bene il sistema è x64 perché ho 8gb di RAM e il sistema operativo è win 10, ok grazie ho disabilitato il firewall ora riproverò!
 
Ласло Подобедов:
Bene, il sistema è x64, perché ho 8GB di RAM, e il sistema win 10, ok, grazie, ho scollegato il firewall e ora riprovo!
Sapete come scoprire la porta TCP che ho appena scaricato il metatester separatamente ...
 
mila.com:

Non capisco. Pensavo che fosse quello che stavamo facendo nella condizione.

if( High[i+1]==Low[isFractalDn()])//максимум первой свечи равен первому фракталу Dn
Come si fa a scriverlo?
Guarda nella scatola.