Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Несогласование типов аргументов Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Torino



Зарегистрирован: 27.01.2009
Сообщения: 72

СообщениеДобавлено: Ср Мар 04, 2009 10:59 pm Ответить с цитатой Вернуться к началу

При проверке кода:

if (price>0)
{
Sell=LastValue(IIf(C<Ref(trail_stop,-1),1,0));
StaticVarSet("price_var",0);
}

.......................
.......................

if(Sell) // здесь возникает ошибка
{
price = price - Otstup;
dir = "2";
makeandsave("S", price);
}

получаю ошибку:
Error 29. Variable "Sell" used without having been initialized.

-------------------------------------------------------------------------------------

Меняю код на:

if (price>0)
{
Sell=IIf(C<Ref(trail_stop,-1),1,0);
StaticVarSet("price_var",0);
}

.......................
.......................

if(Sell) // здесь возникает ошибка
{
price = price - Otstup;
dir = "2";
makeandsave("S", price);
}

получаю ошибку:
Error 6. Condition in IF, WHILE, FOR statements has to be Numeric or Boolean type. You can not use array here, please use [] (array subscript operator) to access array elements


В чем может быть проблема?

_________________
Андрей
Your my your...
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Мар 05, 2009 12:50 am Ответить с цитатой Вернуться к началу

Ошибки и в первом и во втором случае. ИМХО серьёзные.
В первом случае.
Код:

if (price>0)
{
Sell=LastValue(IIf(C<Ref(trail_stop,-1),1,0));
StaticVarSet("price_var",0);
}

Beb есть условие при котором определяется Sell (price>0). Т.е. есть вариан, что если это условие не соблюдено Sell окажется не определен. Возможно поэтому и ругается. В крайнем случае можно перед if (price>0) добавить Sell = 0; и проблемма решится.
Во втором случае.
То же ошибка, что и в первом +
Этот код
Код:

if(Sell) // здесь возникает ошибка
{
price = price - Otstup;
dir = "2";
makeandsave("S", price);
}

Предполагает, что Sell это константа, а на самом деле это массив и он одовременно равен и 0 и 1 и еще хрен знает чему (массив содержит все сигналы Sell на графике и их отсутствие тоже). Такую запись if(Sell) обычно применяют в цикле. for(i = блаблабла) и пишут if(sell[i])

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Torino



Зарегистрирован: 27.01.2009
Сообщения: 72

СообщениеДобавлено: Чт Мар 05, 2009 11:15 am Ответить с цитатой Вернуться к началу

Поставил Sell=0 перед If - ошибка исчезла.
Спасибо!

_________________
Андрей
Your my your...
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen