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

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Ошибка: встретился нечисловой параметр « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Ошибка: встретился нечисловой параметр  (Прочитано 9579 раз)
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« : 09.06.2011, 12:23:19 »

Уважаемые разработчики, скажите, что означает ошибка выполнения :
"встретился нечисловой параметр в арифметическом выражении"
если все параметры числовые

extern sp = 4;
extern sip = 2;
....

var pe = 0;

var pp = sp / sip;
pe = as_number(close[-1]) * as_number(pp);  ///***** на этой строке выдает ошибку хотя все считает

as_number добавил, в надежде что поможет

Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #1 : 09.06.2011, 16:25:46 »

Не могли бы вы привести код полностью? (Если не хотите обнародовать, то можно прислать на support@transaq.ru). По этому отрывку мало что понятно.
Записан
Yegor Hi And
Full Member
***
Сообщений: 138


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

Вот код, это то же индикатор, который я выкладывал, но в строке
 price_enter = high[-1] * point_price;
 вместо high[-1] стоит close[-1]


#line 0 solid #800080

extern ATR_period = 108;// Период ATR 108 для 5 мин
extern ATR_k = 3; // расстояние до SL в ATR
extern kapital_rub = 100000;
extern risk_percent = 1; // риск на сделку в процентах от капитала
extern lot_size = 1; //размер лота
extern price_in_pts = 0;//1 если цена в пунктах
extern step_price = 2.76678; // цена шага
extern step_in_pts = 5; // 5 шаг в пунктах


function init()
{
    var m = ATR_period;
    setInitCandles(m);
    setBounds(0, m, 0);
}

function calc()
{
    var price_enter = 0;
    var price_exit = 0;
    if (price_in_pts == 0)
    {
        price_enter = close[-1]; // если вход по сlose пред свечи
        price_exit = price_enter - IndRef("atr", ATR_period)[0][0] * ATR_k;
    }
    else
        {
          var point_price = step_price/    step_in_pts;
          price_enter = close[-1] * point_price;  // если вход по хаю пред свечи
          price_exit = price_enter - IndRef("atr", ATR_period)[0][0] * ATR_k * point_price;
        }
    var risk = abs(price_exit/price_enter-1)*100;
    var k_work_percent = risk_percent / risk * 100;
    var k_work_rub = kapital_rub/100* k_work_percent;
    var lots_buy = k_work_rub / price_enter - frac(k_work_rub / price_enter);

    line[0] = lots_buy / lot_size;
}
Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #3 : 10.06.2011, 16:35:55 »

Странное дело. У меня работает нормально. А какая у вас версия ATF?
Записан
pronych
Jr. Member
**
Сообщений: 64

ICQ Messenger - 499432303
Просмотр профиля Email
« Ответ #4 : 12.06.2011, 09:58:59 »

У меня тоже бывает выскакивает такая ошибка. Причину не могу найти. Возможно, такое случается когда переменная = 0.
Записан

трудно в мучениях, легко в гробу! :)
nikolz
Sr. Member
****
Сообщений: 285


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

Yegor Hi And !
у вас отсутствует начальное присваивание значений переменным.
Поэтому в начальный момент, например,
close[-1] - содержит произвольное значение,
а возможно возникает обращение по несуществующему адресу.
Короче, программа с ошибками - нет инициализации переменных,
 поэтому может выскакивать все, что угодно.
Ну, в общем, программа с сюрпризом.
Появление сообщений будет зависеть от содержимого произвольной ячейки либо попадания адреса в запрещенную область.
Поэтому у Heller все работает пока, а у вас сообщение выходит иногда.

 
« Последнее редактирование: 12.06.2011, 13:14:35 от nikolz » Записан
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« Ответ #6 : 14.06.2011, 12:15:59 »

Странное дело. У меня работает нормально. А какая у вас версия ATF?
Версия 1.7. у меня тоже то выдает ошибку, то не выдает, но считает пока нормально
сейчас появилась новая ошибка :
line 26: Сылка на свечу за границами массива
это в стороке
price_enter = close[-1];
но она появляется один раз при загрузке индикатора

скажите, где можно скачать новую версию ?, брокер не дает, по тому что, она пока у него не прошла тестирование
« Последнее редактирование: 14.06.2011, 12:38:41 от Yegor Hi And » Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« Ответ #7 : 14.06.2011, 12:58:20 »

Спасибо, nikolz,

Я тоже думал, что где то в этом засада, но не мог понять где, ведь описания ошибок нет.
добавил строку, в которой задаю первоначальное значение point_price :
var point_price = 0;

после этого пока никаких ошибок не было, не при загрузке индикатора, ни при включении транзака.
Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #8 : 14.06.2011, 13:19:07 »

можно просто задать
var point_price;

не обязательно 0

у меня многие потом в calc() рассчитываются
Записан
nikolz
Sr. Member
****
Сообщений: 285


Просмотр профиля Email
« Ответ #9 : 14.06.2011, 14:10:56 »

Yegor Hi And!
Для исключения сюрпризов, рекомендую придерживаться следующего правила:
Определил переменную - определи начальное значение

Записан
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« Ответ #10 : 14.06.2011, 15:21:20 »

Для исключения сюрпризов, рекомендую придерживаться следующего правила:
Определил переменную - определи начальное значение


Да nikolz, если бы все было так просто... я бы с удовольствием и сторочки нумеровал как в бейсике ))
В этом языке что не оператор, то сюрприз, не все так работает как ожидается, а как должно работать не хватает описания... Чувствуешь себя первооткрывателем новых земель, исследуя особенности работы ATF ))
Хотя, отдавая должное разработчикам возможности заложены большие, но еще не развиты.
Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
nikolz
Sr. Member
****
Сообщений: 285


Просмотр профиля Email
« Ответ #11 : 14.06.2011, 18:17:50 »

Yegor Hi And!
Поэтому я пока жду,когда сделают язык, а пока пишу себе на С++
в связке с Амиброкером
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #12 : 14.06.2011, 21:30:53 »

хаха
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #13 : 15.06.2011, 10:06:26 »

Уберите спам
Какой? Где?
Записан
Страниц: [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!