Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 654

 
pako:

Номер бара нижнего фрактала известен

От него ищем в цикле первый high  соответствующий low известного фрактала

Можно и так, но я бы сделал наоборот. Т.е. вначале находим хай предыдущей (сформированной) свечи, а потом последний фрактал вниз. Если совпали - ставим точку.
 
Alexey Kozitsyn:
Можно и так, но я бы сделал наоборот. Т.е. вначале находим хай предыдущей (сформированной) свечи, а потом последний фрактал вниз. Если совпали - ставим точку.

Не понимаю. Я думала, мы делаем именно это в условии.

if( High[i+1]==Low[isFractalDn()])//максимум первой свечи равен первому фракталу Dn
Как нужно записать - то?
 
Vladimir Karputov:
Ввести ЛОГИН и ПАРОЛЬ от MQL5.community.
А куда именно там одна строчка же
Файлы:
 
Ласло Подобедов:
А куда именно там одна строчка же
Извините, с терминалом попутал. Конечно Вам нужно ввести только ЛОГИН от MQL5.community.
 
Vladimir Karputov:
Извините, с терминалом попутал. Конечно Вам нужно ввести только ЛОГИН от MQL5.community.
Спасибо, но что-то он признаков жизни не подает..может сделал что-то не так?
Файлы:
 
mila.com:

Не понимаю. Я думала, мы делаем именно это в условии.

if( High[i+1]==Low[isFractalDn()])//максимум первой свечи равен первому фракталу Dn
Как нужно записать - то?

Спокойно... сделайте так... 

#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;
        }
     }
  }
//+------------------------------------------------------------------+
Расчет только на истории.
 
Ласло Подобедов:
Спасибо, но что-то он признаков жизни не подает..может сделал что-то не так?
Возможно несколько вариантов:
  1. У Вас операционная система 32-бита. В таком случае Вам путь закрыт.
  2. Прошло мало времени - для присоединения к облаку нужно минуты две.
  3. Возможно закрыты порты файерволом - нужно смотреть логи агентов.
 
Vladimir Karputov:
Возможно несколько вариантов:
  1. У Вас операционная система 32-бита. В таком случае Вам путь закрыт.
  2. Прошло мало времени - для присоединения к облаку нужно минуты две.
  3. Возможно закрыты порты файерволом - нужно смотреть логи агентов.
нус система х64, ибо у меня 8 гб озу, а ось вин 10, окай спасибо отключил брандмайер сейчас попробую еще раз !
 
Ласло Подобедов:
нус система х64, ибо у меня 8 гб озу, а ось вин 10, окай спасибо отключил брандмайер сейчас попробую еще раз !
А не подскажете еще момент, как узнать TCP порт я просто метатестер отдельно скачал ..
 
mila.com:

Не понимаю. Я думала, мы делаем именно это в условии.

if( High[i+1]==Low[isFractalDn()])//максимум первой свечи равен первому фракталу Dn
Как нужно записать - то?
Личку гляньте
Причина обращения: