Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
27.03.2025, 03:05:17
Начало Помощь Поиск Войти Регистрация
Новости: ООО «Скрин маркет системз», правообладатель программы «Система брокерского обслуживания «TRANSAQ» официально заявляет, что не ведет никакой деятельности в мессенджерах или социальных сетях. 
Подробности на нашем сайте  WWW.TRANSAQ.RU.

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Встретился нечисловой параметр « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Встретился нечисловой параметр  (Прочитано 5010 раз)
falcone
Newbie
*
Сообщений: 17


Просмотр профиля Email
« : 20.07.2011, 13:00:28 »

Столкнуся с проблемкой "Встретился нечисловой параметр  в арифметическом выражении"
...
static cena=0;
static cena1=0;

function onATFTrade(var id)
{   var cena = getTrade(id);
   signal::output ("Сделка заключена по цене = " + cena["price"]);
   cena1=cena-100; // а можно и так cena1=as_number(cena)-100; - всё равно ошибка
}

function onNewCandle()
{
   trade_action::buy(1, ::lots,cena1);

}
...
 

В итоге выставляется неправильный ордер. Как исправить и почему не работает as_number?
Финам ,ATF 1.8.
« Последнее редактирование: 21.07.2011, 17:51:08 от falcone » Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #1 : 22.07.2011, 15:08:46 »

Ничего не понял из приведенных фрагментов. ATF указывает на строчку, в которой произошла ошибка?
Записан
falcone
Newbie
*
Сообщений: 17


Просмотр профиля Email
« Ответ #2 : 23.07.2011, 08:19:19 »

Да, ATF указывает на ошибку в операторе cena1=cena-100;
Пробовал обойти ошибку по-разному - без результата.
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #3 : 25.07.2011, 07:06:23 »

А, так ведь у вас же в переменной cena лежит не число, а хеш - информация о сделке. Понятно, что с ней не может быть никакой арифметики. А что вы ожидали получить в результате выполнения этой команды?
Записан
falcone
Newbie
*
Сообщений: 17


Просмотр профиля Email
« Ответ #4 : 25.07.2011, 10:44:16 »

Моя цель - определить цену заключённой сделки
   (var cena = getTrade(id);)
и выставить стоп-лосс
   (cena1=as_number(cena)-100;).
Если это неправильно, как тогда  из хеша получить цифру для арифметики?
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #5 : 25.07.2011, 11:11:20 »

У вас в сделке лежит хеш с информацией о сделке. Чтобы узнать цену, вам надо вытащить поле "price":

cena1 = cena["price"] - 100;

Полное описание структур объектов вы можете найти здесь: http://transaq.ru/docs/atf/objects
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Встретился нечисловой параметр « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!