[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 534

 
PapaYozh:

Спасибо, я понял!))
 

у меня такой цикл

int limit;
int counted_bars = IndicatorCounted();
//---- последний посчитанный бар будет пересчитан
if(counted_bars > 0) 
counted_bars--;
limit = Bars - counted_bars - 1;
if (limit > maxBars) limit=maxBars;
//---- основной цикл
for( i = limit; i >= 0; i--)
{
 b[i]=High[i+1];
}

при таком запросе предыдущего хая, индикатор может перерисовыватся?

 
Господа, подскажите, где можно найти исходный код функций Hour() и Day ()???

 
Cmu4:
Господа, подскажите, где можно найти исходный код функций Hour() и Day ()???

    // 1.5.5. Метод возвращает час (0, 1, 2, ..., 23) для указанного времени.
    template <typename Type1, typename Type2> // Рекомендуемые типы для Type1: WORD, DWORD. Рекомендуемые типы для Type2: int, long, __int64, __time32_t, __time64_t.
    static Type1 Hour(const Type2 t2Time) // Дата, представленная в виде количества секунд, прошедших после 00:00 1 января 1970 года.
     {
      return(Type1(GetGMT(t2Time).tm_hour)); // Возвращаем результат.
     }
    // 1.5.1. Метод возвращает день месяца (1 - 31) для указанного времени.
    template <typename Type1, typename Type2> // Рекомендуемые типы для Type1: WORD, DWORD. Рекомендуемые типы для Type2: int, long, __int64, __time32_t, __time64_t.
    static Type1 Day(const Type2 t2Time) // Дата, представленная в виде количества секунд, прошедших после 00:00 1 января 1970 года.
     {
      return(Type1(GetGMT(t2Time).tm_mday)); // Возвращаем результат.
     }
    // 1.8.1. Метод возвращает для указанного времени: struct tm {int tm_sec;     // Секунды.
    //                                                            int tm_min;     // Минуты.
    //                                                            int tm_hour;    // Часы.
    //                                                            int tm_mday;    // День месяца.
    //                                                            int tm_mon;     // Месяц.
    //                                                            int tm_year;    // Год.
    //                                                            int tm_wday;    // День недели.
    //                                                            int tm_yday;    // День года.
    //                                                            int tm_isdst;); // Летнее время.
    template <typename Type> // Рекомендуемые типы: __time32_t, __time64_t.
    static tm GetGMT(Type tTime) // Время в виде количества секунд от 01.01.1970 года.
     {// Переменные.
      __time64_t    t64Time(tTime); // Присваиваем и преобразуем тип времени.
      DWORD         dwError = 0;    // Номер ошибки.
      tstringstream ssExclusion;    // Строка с сообщением об ошибке.
      // Структуры.
      struct tm NewTime = {0}; // Структура 
      //----
      if (::_gmtime64_s(&NewTime, &t64Time) != 0)
       {
        if (DEBUGGING || DEBUGGING_EXCLUSION)
         {
          dwError = ::GetLastError();
          ssExclusion << std::endl << _T("Ошибка в методе \"Utils::UTime::GetGMT()\".")
                      << std::endl << _T("Не заполнена структура \"tm\".")
                      << std::endl << Utils::Error::Description(dwError) << std::endl;
          if (DEBUGGING) tcout << ssExclusion.str();
          if (DEBUGGING_EXCLUSION) throw(ssExclusion.str());
         }
       }
      return(NewTime); // Возвращаем результат.
     }

Примерно так...

 
Zhunko:

Примерно так...

Спасибо!
 

Как из OrderOpenTime() получить час открытия позиции, чтобы в дальнейшем сравнить его с текущим часом Hour()?

 
charter:

Как из OrderOpenTime() получить час открытия позиции, чтобы в дальнейшем сравнить его с текущим часом Hour()?


int TimeHour( datetime time)
Возвращает час для указанного времени.
 
Vinin:

int TimeHour( datetime time)
Возвращает час для указанного времени.


Правильно ли я понял?

datetime time =OrderOpenTime() 

int TimeHour(time)
 

Добрый день, объясните где ошибка в цикле, вертится по кругу (бесконечно) и ничего не помогает, все перепробовал. Возникает в момент когда ордер обрабатывался в советнике, а по тп или сл был удален.

for.... выборка одного ордера для работы
---
---
l_pos_2 = 0;
l_ord_modif_1 = false;
while (!l_ord_modif_1 && l_pos_2 < 10) {
 if (OrderCloseTime() == 0) l_ord_modif_1 = OrderModify(OrderTicket(), OrderOpenPrice(), MarketInfo(Symbol(), MODE_BID) - d_level, MarketInfo(Symbol(), MODE_ASK) + d_level, 0,CLR_NONE);
 else break;
 l_pos_2++;
}
---
---
}
 

MQL5. Мультивалютный советник.

Прибыль или убыток считаю по отдельным валютам нормально.

Как учесть сделки закрываемые тестером в конце?

Причина обращения: