обсуждали уже, что NULL это всего лишь 0. и если он будет передан в качестве строкового параметра, то перед этим будет преобразован в строку "0". не используйте NULL вместо строки в своих функциях. почему бы Вам не передать Symbol(), ведь Вы хотите передать текущий символ?
обсуждали уже, что NULL это всего лишь 0.
Может и обсуждали, в документации я этого не видел и считал, что вправе передавать NULL, как обычный параметр.
почему бы Вам не передать Symbol(), ведь Вы хотите передать текущий символ
Я раньше всегда передавал Symbol(), но думаю в целях снижения нагрузки на процессор и память при отптимизации, где каждая секунда важна, попробую передавать NULL. Я даже не мог предположить, что NULL у вас в строку конвертируется, я привык что null специальное значение, ссылка в никуда, как в java. Такие особенности реализации надо обязательно в документации крупным шрифтом на первой странице печатать IMHO.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
void testSeek() { int lowI = Lowest(Symbol(), Period(), MODE_LOW, 10, 0); double lowP = iLow(Symbol(), Period(), lowI); int lowI2 = Lowest(NULL, 0, MODE_LOW, 10, 0); double lowP2 = iLow(NULL, 0, lowI2); double lowP3 = lowestLowTest(Symbol(), 0, 0, 10); double lowP4 = lowestLowTest(NULL, 0, 0, 10); string strNull = NULL; Print("lowI=" + lowI + " lowP="+ lowP + " lowI2=" + lowI2 + " lowP2=" + lowP2 + " lowP3=" + lowP3 + " lowP4=" + lowP4); } double lowestLowTest(string symbol, int period, int offset, int len) { int index = Lowest(symbol, period, MODE_LOW, len, offset); if (index < 0) Print("!!! index=" + index + " symbol=" + symbol + " period=" + period + " offset=" + offset + " len=" + len); return (iLow(symbol, period, index)); }Вставляем в любой скрипт и имеем вывод:
Доколе?