[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 701
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
рылась твоя собака в передаче параметров в функцию, если ты передаешь как SaveDataIND(double TempIND[])
то double TempIND[ ] это фактически новый массив для функции, но без права изменения параметров, попробуй SaveDataIND(double &TempIND[])
А возможно ли сделать, чтобы в функцию можно было передавать какой индюкатор использовать, чтобы в строке
не конкретный индикатор был, а передавался как параметр функции?
Ну сделай что-нить типа switch и распиши свои возможные индюкаторы, назначив им индексы.
А возможно ли сделать, чтобы в функцию можно было передавать какой индюкатор использовать, чтобы в строке
не конкретный индикатор был, а передавался как параметр функции?
а смысл? такие действия обычно не делают - обычно в функцию данные пересылают, а в вызывающей функции готовят данные/массив
у тебя вроде и конструкция ArrayResize(TempIND,nBars); не правильная, по крайней мере в других языках программирвания компилятор не пропустил бы т.к. у тебя double TempIND[50]; - т.е. массив обьявлен как статический а надо тогда динамическим (т.е. без размерности) - double TempIND[];
ЗЫ: да и путаница у тебя с именами в переменных в функции - не забывай, что если есть глобальная переменная (глобальная в теле советника), то переменная объявленная внутри функции с таким же именем будет совершенно другая:
обычно это называется область видимости переменных - переименовывай то что в функции свои имена т.е. void SaveDataIND(double myTempIND[], int nBars) - меньше путаницы будетУ вас Lot где инициализирована?
Далее только после проверки на лосей либо меняете Lots_New как и писалось раньше, либо присваиваете ей значение = Lot;
Спасибо! Все заработало!
а смысл? такие действия обычно не делают - обычно в функцию данные пересылают, а в вызывающей функции готовят данные/массив
у тебя вроде и конструкция ArrayResize(TempIND,nBars); не правильная, по крайней мере в других языках программирвания компилятор не пропустил бы т.к. у тебя double TempIND[50]; - т.е. массив обьявлен как статический а надо тогда динамическим (т.е. без размерности) - double TempIND[];
ЗЫ: да и путаница у тебя с именами в переменных в функции - не забывай, что если есть глобальная переменная (глобальная в теле советника), то переменная объявленная внутри функции с таким же именем будет совершенно другая:
обычно это называется область видимости переменных - переименовывай то что в функции свои имена т.е. void SaveDataIND(double myTempIND[], int nBars) - меньше путаницы будет1. Что ж мне, Игорь, для каждого индюкатора писать свою абсолютно идентичную функцию?
2. Спасибо, исправил на всяк пожарный...
3. Меня не путает - я вижу какой массив и где используется, мне как-то так проще наоборот, а вот когда у меня будет море имён, тады точно запутаюсь... Хотя... нужно привыкать к правильному написанию, наверное...
Спасибо! Все заработало!
Проверять открытие новой свечи. Если новая - открываетесь, если старая - нет...
Проверять открытие новой свечи. Если новая - открываетесь, если старая - нет...
static int time = Time[0];
if (time < Time[0]){
// старая свеча
} else {
// новая свеча
time = Time[0];
}