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

 
SemenTalonov:

Возвращаемое значение, если бар на указанное время не найден. При значении exact=false iBarShift возвращает индекс ближайшего бара, у которого время открытия меньше указанного (time_open<time). Если такой бар не найден (нет истории раньше указанного времени), то функция вернет -1.

Но история то есть, этож факт. Всё происходит на самом новом (0-ом по таймсерии) баре.

А таймсерия готова при обращении к ней?
 
Artyom Trishkin:
А таймсерия готова при обращении к ней?

А она может быть не готова?

 
SemenTalonov:

А она может быть не готова?

Да
 
Комментарии, не относящиеся к этой теме, были перенесены в "Особенности языка mql5, тонкости и приёмы работы".
 
Синхронизация данных терминала и данных сервера

Если при обработке события OnTick() или OnCalculate() не удалось получить все необходимые данные требуемой таймсерии, то следует выйти из обработчика события, рассчитывая на появление доступа к данным при следующем вызове обработчика.


Похоже на то..

 
Подскажите есть ли на сайте скрипт или индикатор, который показывает уровень безубытка именно для двух индикаторов? Вот например у меня сетка стоит из ордеров, цена находится на 1.2255, а у меня открыто много ордеров, но мне надо вычеслить безубыток двух селл ордеров, уровень безубытка именно для двух селл ордеров, для 1.3400, который в плюсе и для 1.2150, который в минсе. Вот мне среди них надо уровень безубытка найти. Есть ли такой скрипт чтобы я просто 2 или 3 висячих ордера указал и мне бы уровень 0 показал график с учетом лота, мартингейла если таковой имеется?
 
Пишу вот так:
void OnTick()
{
   double raznica=Close[30000];
   Alert(raznica);
}


В тестере ошибка:



Почему?

 
multiplicator:
Пишу вот так:

В тестере ошибка:

Почему?

Потому что на графике и в терминале нет бара с индексом 30000

 
Vladimir Pastushak:

Потому что на графике и в терминале нет бара с индексом 30000

а как же мне тогда его протестировать?

советник, когда запускается, должен обработать 30 000 предыдущих минуток.


Я тестирую советник за  2018 год.

В момент запуска он должен просмотреть все минутки за предыдущий месяц (это получается за последний месяц 2017-го года), 
и по ним рассчитать коэффициент дисперсии.

Минуток там аж 30 000.


а последующие можно взять? советник может "заглянуть в будущее"?
мне дисперсию посчитать, так что мне все равно, последующие будут или предыдущие.
 
multiplicator:
советник может "заглянуть в будущее"?

не может

используйте iBars() чтобы узнать доступную историю

ЗЫ: если не ошибаюсь, то в тестере при запуске советника доступно 1000 баров, потом по мере генерирования новых данных количество баров будет увеличиваться. Тестер моделирует историю ко всем ТФ к которым происходит обращение, т.е. если Вы запустили тест на Н1 и в процессе тестирования обращаетесь к данным ТФ М1, то при запуске у Вас будет доступна история 1000 баров на Н1, и соотвественно будет доступно 60 * 1000 = 60 000 баров М1

подробнее нужно почитать статьи, примерно как эта https://www.mql5.com/ru/articles/1511

Strategy Tester: режимы моделирования при тестировании торговых стратегий
Strategy Tester: режимы моделирования при тестировании торговых стратегий
  • www.mql5.com
Многие программы технического анализа позволяют проводить тестирование торговых стратегий на исторических данных. В большинстве случае тестирование идет по уже сформированным данным, без попыток моделирования движения внутри ценового бара. Получается быстро, но недостаточно точно. Для качественного тестирования торговой стратегии важно выбрать...
Причина обращения: