Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2381

 
Aleksandr Slavskii #:
Попробуйте в OnInit прописать iTime с периодом Н1, тогда тестер загрузит не только график Н4, но и Н1 тоже.
Но это не точно)

Когда в OnInit прописываю iBars с нужным символом и периодом, то тогда точно график загружается.

С уважением, Владимир.

 

Если я правильно понял.

int OnInit()

{
   int barsCountH1 = iBars(_Symbol, PERIOD_H1);

Не получается.

Файлы:
 
AndreyTrM #:

Если я правильно понял.

Не получается.

Поняли правильно, только у меня ещё стоит проверка:

int OnInit()

{
   int barsCountH1 = iBars(_Symbol, PERIOD_H1);
   if(barsCountH1==0)
      return(INIT_FAILED);

С уважением, Владимир.

 
Так если бы ошибка возникала через раз, тогда проверка может еще бы и помогла, но оно вообще не работает. Не могу получить бары нижнего ТФ, только текущего и выше
 
AndreyTrM #:
Так если бы ошибка возникала через раз, тогда проверка может еще бы и помогла, но оно вообще не работает. Не могу получить бары нижнего ТФ, только текущего и выше

Всё работает. Вот проверочный код:

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                                  Copyright 2023, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int barsCountH1 = iBars(_Symbol, PERIOD_H1);
   if(barsCountH1==0)
      return(INIT_FAILED);
   int barsCountH4 = iBars(_Symbol, PERIOD_H4);
   if(barsCountH4==0)
      return(INIT_FAILED);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }
//+------------------------------------------------------------------+


Запуск кода на таймфрейме Н1:


Запуск кода на таймфрейме Н4:


С уважением, Владимир.

 

У меня есть типа зигзага  и мне нужно чтобы на одном графике H4 рисовалось два зигзага по барам Н1 и Н4...

Для этого я получаю бары Н1 и Н4 для расчетов. Если я запускаю тестер на графике Н1, тогда все норм - зеленая Н1, красная Н4.

Но такого же расчета я не могу получить если запускаю тестер на Н4, я не могу получить бары Н1


int OnInit()
{
   int barsCountH1 = iBars(_Symbol, PERIOD_H1);
   int barsCountH4 = iBars(_Symbol, PERIOD_H4);
   Print("H1 баров: " + barsCountH1);
   Print("H4 баров: " + barsCountH4);

14й скрин когда запускаю тестер Н4

15й скрин когда запускаю тестер Н1

Файлы:
 
AndreyTrM #:

У меня есть типа зигзага  и мне нужно чтобы на одном графике H4 рисовалось два зигзага по барам Н1 и Н4...

Для этого я получаю бары Н1 и Н4 для расчетов. Если я запускаю тестер на графике Н1, тогда все норм - зеленая Н1, красная Н4.

Но такого же расчета я не могу получить если запускаю тестер на Н4, я не могу получить бары Н1


14й скрин когда запускаю тестер Н4

15й скрин когда запускаю тестер Н1

Вы тестируете по ценам открытия, сделайте OHLC на М1, в скорости вы потеряете не много, но зато будет работать)

 
Да, с М1 все работает, спасибо.
 
Aleksandr Slavskii #:

Вы тестируете по ценам открытия, сделайте OHLC на М1, в скорости вы потеряете не много, но зато будет работать)

Александр, а не баг ли это? Какая разница по каким ценам ведётся тестирование? Честно говоря, никогда в жизни не пользовался ценами открытия, т.к. применяю только режим "Каждый тик на основе реальных тиков". Интересуюсь с целью самообразования.

С уважением, Владимир.

 
MrBrooklin #:

Александр, а не баг ли это? Какая разница по каким ценам ведётся тестирование? Честно говоря, никогда в жизни не пользовался ценами открытия, т.к. применяю только режим "Каждый тик на основе реальных тиков". Интересуюсь с целью самообразования.

С уважением, Владимир.

тесты по ценам открытия неплохи, если все торговые операции исключительно по ценам открытия. То есть нет тейк-профит и стоп-лосс и никаких тралов . 

тогда чем меньше тайм-фрейм тем ближе к истине. И без напрасных потерь скорости

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