Ничего не понимаю, приведите пожалуйста пример тайм-серии.
Ну не является опен ТС и что? Установите его через Set в тайм серию, и будет он ТС. Вы что первый раз терминал запускаете? Что для вас это такая прям новость. Помоему давеча, кто-то как раз писал, что надо какбы для себя определиться как работать в своих программах - с ТС или просто с масивами.
Ничего не понимаю, приведите пожалуйста пример тайм-серии.
open[] и все остальные массивы в OnCalculate являются таймсериями. И в самом начале, когда язык MQL5 писался, ArrayGetAsSeries() возвращала для них true и индексация для них была именно как для таймсерии - то есть задом наперед.
Но потом оказалось очень неудобно и противоестественно писать расчеты индикаторных буферов в стиле MQL4, и оставался один выход - каждый раз переворачивать индексацию этих таймсерий, чтобы ими было удобно пользоваться. Начали писать пользовательские индикаторы в таком духе:
intOnCalculate (constint rates_total, // размер входных таймсерийconstint prev_calculated, // обработано баров на предыдущем вызовеconstdatetime& time[], // Timeconstdouble& open[], // Openconstdouble& high[], // Highconstdouble& low[], // Lowconstdouble& close[], // Closeconstlong& tick_volume[], // Tick Volumeconstlong& volume[], // Real Volumeconstint& spread[] // Spread)
{
//---- переворачиваем все таймсерии, чтобы ими было удобно пользоваться, как обычными массивамиArraySetAsSeries(open,false);
ArraySetAsSeries(high,false);
ArraySetAsSeries(low,false);
ArraySetAsSeries(close,false);
ArraySetAsSeries(time,false);
ArraySetAsSeries(tick_volume,false);
ArraySetAsSeries(volume,false);
ArraySetAsSeries(spread,false);
ArraySetAsSeries(open,false);
.... остальной код
}
Но каждый раз писать такую портянку переворачиваний тоже оказалось не Айс. Поэтому было принято решение передавать эти таймсерии с индексацией как у обычных массивов. Вот так и получился такой парадокс, когда таймсерия имеет индексацию не как у таймсерии. Поэтому в справке и сказано, что порядок индексации необходимо проверять и при необходимости устанавливать как требуется.
1. проверьте плиз подгрузку в тестер истории (тестирование запускается впервые).
Провожу тестирование пары EURUSD при помощи стандартного MACD Sample на H1 с интервалом "последний месяц".
Закачка дошла до 57% и успешно зависла, при этом в журнале только эта строчка
2011.01.19 17:16:23 Tester EURUSD: history preliminary downloading started
2. Можно сделать так чтобы в новых билдах в тестере плечо 1:200 и 1:500 было постоянно?
Я понимаю что не у всех ДЦ такие плечи, тем более в МТ5, но в тестере наверное нужно это оставить, поскольку стратегии тестировать в любом случае удобней на новой платформе.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Запустите такой индикатор, и все увидите сами:
То есть в
open[] тоже не является тайм серией?
Ничего не понимаю, приведите пожалуйста пример тайм-серии.
билд 375. косячище ну просто ужасный, в результате которого я уже потерял вполне конкретные деньги...
параметры экспертов не восстанавливаются на установленные после закрытия/открытия терминала.
точнее, у какой-то части могут восстановиться (например у 3 из 6), а у остальных сбрасываются на параметры по умолчанию. вобщем, своя жизнь.
каждый раз при перезапуске терминала, эксперты инициализируются с разными параметрами (какими угодно).
Эта функция проверяет направление, а не меняет.
1) Без инициализации
2) С инициализацией
3) Вышеописанный код, только с функцией получения направления индексации массива ArrayGetAsSeries
В сервис-деске я ошибся с именем функции простоТо есть в
open[] тоже не является тайм серией?
Ничего не понимаю, приведите пожалуйста пример тайм-серии.
Поэтому я в OnCalculate() делаю так:
Вы помогите сделать так, что бы ArrayGetAsSeries(low) выдавала бы true
Вы помогите сделать так, что бы ArrayGetAsSeries(low) выдавала бы true
То есть в
open[] тоже не является тайм серией?
Ничего не понимаю, приведите пожалуйста пример тайм-серии.
open[] и все остальные массивы в OnCalculate являются таймсериями. И в самом начале, когда язык MQL5 писался, ArrayGetAsSeries() возвращала для них true и индексация для них была именно как для таймсерии - то есть задом наперед.
Но потом оказалось очень неудобно и противоестественно писать расчеты индикаторных буферов в стиле MQL4, и оставался один выход - каждый раз переворачивать индексацию этих таймсерий, чтобы ими было удобно пользоваться. Начали писать пользовательские индикаторы в таком духе:
Но каждый раз писать такую портянку переворачиваний тоже оказалось не Айс. Поэтому было принято решение передавать эти таймсерии с индексацией как у обычных массивов. Вот так и получился такой парадокс, когда таймсерия имеет индексацию не как у таймсерии. Поэтому в справке и сказано, что порядок индексации необходимо проверять и при необходимости устанавливать как требуется.
Вы помогите сделать так, что бы ArrayGetAsSeries(low) выдавала бы true
Она и выдает true, просто из-за ошибки компилятора ее значение в качестве параметра выводится неверно. Проверьте таким образом:
Результат:
Она и выдает true, просто из-за ошибки компилятора ее значение в качестве параметра выводится неверно. Проверьте таким образом:
Результат:
Спасибо, разобрался.
ArrayIsSeries() и ArrayGetAsSeries() в условном операторе if() работают как описано, но на Print() всегда выводят false.
Разработчикам.
1. проверьте плиз подгрузку в тестер истории (тестирование запускается впервые).
Провожу тестирование пары EURUSD при помощи стандартного MACD Sample на H1 с интервалом "последний месяц".
Закачка дошла до 57% и успешно зависла, при этом в журнале только эта строчка
2011.01.19 17:16:23 Tester EURUSD: history preliminary downloading started2. Можно сделать так чтобы в новых билдах в тестере плечо 1:200 и 1:500 было постоянно?
Я понимаю что не у всех ДЦ такие плечи, тем более в МТ5, но в тестере наверное нужно это оставить, поскольку стратегии тестировать в любом случае удобней на новой платформе.