× Ссылка на скачивание архива: www.bot4sale.ru/download-categories/2012...6/item/amisharp.html (архив под паролем)

Инициализация переменных

Подробнее
10 года 1 нед. назад - 10 года 1 нед. назад #7 от AlexLan
Была проблема инициализации переменных.
Задача проверить активность выставленных заявок и принять решение
Для этих целей использую функции AMISharp - они работают как часы, к ним нет нареканий.
Создал функцию передаю номер заявки и из таблицы считываю все нужные мне значения.
Но бывают ситуации когда в функцию передается не определенное значение.
Вот так вышел из этой ситуации.
numOrdTxt = StaticVarGetText("NumOrder");
if (numOrdTxt == "{EMPTY}") StaticVarSetText("NumOrder", "0" ); // Если переменная не существует присваиваю 0

function StatusOrders(num)
{
logStatus=True;
error("1 Проверка входного значения StatusOrders = "+num);
if (num =="0") error(" Ордер не выставлен, значение = Null ");
.....
return logStatus;
}
Подскажите пожалуйста, как можно решить эту проблему более красиво.
Последнее редактирование: 10 года 1 нед. назад пользователем admin.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
10 года 1 нед. назад #8 от AlexLan
Спасибо сейчас исправлю.
С таблицей великолепная идея, спасибо.
Обязательно реализую))))
Спасибо.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подробнее
10 года 1 нед. назад - 10 года 1 нед. назад #9 от admin
Александр, можно и так, как Вы сделали. Более удобна функция StaticVarGet() - она возвращает число. Если к ней применить NZ(StaticVarGet("строка")), то Вы получите 0, если значения еще нет.

Я подобного рода задачи решаю через пользовательскую таблицу. Например, можно поступить так: В столбцы таблицы можно писать, например, время/дату, номер ордера, объем, себестоимость покупки, текущую позицию и так далее. Одна строка таблицы отвечает за сделку. По мере получения данных она заполняется этими данными. Решили выставить заявку - записали время выставления и номер ордера. В следующих итерациях смотрим в эту таблицу - не заполнено поле объема - значит, надо проверить, исполнилась ли заявка. Проверяем (лазим по таблице сделок). Исполнилась - дописываем объем и себестоимость в соответствующий столбец. Как все поля заполнены - сделка свершилась. Таблицы-то сохраняются между итерациями, как и статические переменные, только функционал больше.

Между делом сразу получаем лог сделок для excel, если попросить амишарп эту таблицу сохранить.

Проблемы с неициализированными переменными не возникают, GetCell и GetCellName для пустой ячейки вернут "".
Последнее редактирование: 10 года 1 нед. назад пользователем admin.
Спасибо сказали: AlexLan

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Модераторы: admin