#define HR0900 14400//All times were changed for the test to see which is the Reference.#define HR1500 10800#define HR1900 7200#define HR2300 3600externstring Heures="11:41;11:42;12:00;11:42;"; // Times for my test today...string HeureSH[];
datetime TC = TimeCurrent();
int times[]={HR1500, HR2300, HR0900, HR1900};
for(int k=0; k<ArraySize(HeureSH); k++)
{
datetime want= TC - times[k];
}
int iBar= iBarShift(Symbol(), PERIOD_H1, want);
double OpenPrice= iOpen(Symbol(), PERIOD_H1, iBar);
Учитывается только одно из #define. Массив HeureSH[] выполняется правильно, и если записанное время наступает, то это верно, это правильно, это только times[k] не учитывает все четыре #define.
Рассматривается только один из #define. Массив HeureSH[] выполняется правильно, и если записанное время приходит, то это верно, это правильно, это только times[k] не учитывает все четыре #define.
Проблема довольно очевидна...
string HeureSH[];
Итак, этот массив имеет размер 0, так как вы его так объявили... поэтому этот цикл...
for(int k=0; k < ArraySize(HeureSH); k++)
начинается в 0 и заканчивается, когда k >= 0 (0 - размер массива).
Я думаю, вам нужно сделать некоторые манипуляции со строками, вам нужно разбить вашу строку на отдельные времена, преобразовать каждое из них в дату и сохранить их в массиве HeureSH[] ... работа со строками таким образом может быть немного сложной, не сложной, но легко испортить. Тогда ваш код может начать иметь немного смысла ... .
Кстати, это те строковые функции , с которыми вам придется работать, изучите их внимательно, наслаждайтесь.
Код, который вы показали, приведет к тому, что я описал, если у вас есть больше кода, который имеет влияние на вопрос, который вы задаете, то вы должны показать его ... или не показывать его, если вам не нужна помощь.
Так, например, когда сейчас 09:00, iBar - это бар вчерашнего дня 23:00, на 10 часов меньше, чем TimeCurrent. Когда наступает 15:00, iBar - это бар сегодняшнего дня 09:00, ........ Что я хочу: Если наступает выбранный час, иметь эталонный бар, который находится перед Now (TimeCurrent). Моя проблема в том, что программа берет только последний элемент "times[]" и никаких других. Я хочу, чтобы если HeureSH[0], использовать times[0] и continu. Что я могу сделать?
Вы не облегчаете никому задачу помочь вам, вы публикуете кусочки вашего кода то тут, то там... Я пытаюсь понять ваш код, я не могу запустить его, чтобы посмотреть, что он делает, так как у меня нет полного кода, у вас есть функция с тем же именем, что и ваш массив, это нормально, но это не способствует читабельности.
Хорошо, я даю вам это:
Учитывается только одно из #define. Массив HeureSH[] выполняется правильно, и если записанное время наступает, то это верно, это правильно, это только times[k] не учитывает все четыре #define.Хорошо, я согласен:
Рассматривается только один из #define. Массив HeureSH[] выполняется правильно, и если записанное время приходит, то это верно, это правильно, это только times[k] не учитывает все четыре #define.Проблема довольно очевидна...
string HeureSH[];Итак, этот массив имеет размер 0, так как вы его так объявили... поэтому этот цикл...
начинается в 0 и заканчивается, когда k >= 0 (0 - размер массива).
Ладно, я написал это, потому что подумал:
Ладно, я написал это, потому что подумал:
Кстати, это те строковые функции , с которыми вам придется работать, изучите их внимательно, наслаждайтесь.
Привет
Я работаю над этим, но я не понимаю этого:
Проблема довольно очевидна...
Итак, этот массив имеет размер 0, поскольку вы его так объявили. ...поэтому этот цикл ...
начинается в 0 и заканчивается, когда k >= 0 (0 - размер массива).
Можете ли вы попытаться рассказать мне более подробно?
Для HeureSH[] я использовал линии, чтобы разрезать его на 4 части, чтобы иметь 4 разных часа.
Еще раз отредактируйте:
Я написал ArraySize(HeureSH) в функции print и это дало мне: 4
2013.01.19 13:57:21 2012.11.19 19:00 Tester EURUSD,H1: Open:1.27701 ArraySise=4
Я протестировал снова, и он выбирает только последние:
То есть последние "14400". Почему он не выбирает другие в том же порядке из массива "HeureSH[]"?
Есть ли проблема с циклом "For"?Привет
Я работаю над этим, но я не понимаю этого:
Можете ли вы попытаться рассказать мне более подробно?
Для HeureSH[] я использовал линии, чтобы разрезать его на 4 части, чтобы иметь 4 разных часа.
Еще раз отредактируйте:
Я написал ArraySize(HeureSH) в функции print и это дало мне: 4
2013.01.19 13:57:21 2012.11.19 19:00 Тестер EURUSD,H1: Open:1.27701 ArraySise=4
Ладно, извините.
Так, например, когда сейчас 09:00, iBar - это бар вчерашнего дня 23:00, на 10 часов меньше, чем TimeCurrent. Когда наступает 15:00, iBar - это бар сегодняшнего дня 09:00, ........ Что я хочу: Если наступает выбранный час, иметь эталонный бар, который находится перед Now (TimeCurrent). Моя проблема в том, что программа берет только последний элемент "times[]" и никаких других. Я хочу, чтобы если HeureSH[0], использовать times[0] и continu. Что я могу сделать?
PS: это все, что у меня есть и что мне нужно.
Привет,
кто-нибудь может мне помочь?
Привет,
кто-нибудь может мне помочь?
Вы не облегчаете никому задачу помочь вам, вы публикуете кусочки вашего кода то тут, то там... Я пытаюсь понять ваш код, я не могу запустить его, чтобы посмотреть, что он делает, так как у меня нет полного кода, у вас есть функция с тем же именем, что и ваш массив, это нормально, но это не способствует читабельности.
Когда вызывается UpdateHSeSpeciales()?
Извините, правда,
У меня есть только это, но это правда, что я забыл "UpdateHSeSpeciales".
Он вызывается в "init" при запуске программы.