Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Марта 19, 2019, 07:00:48 pm
Начало Помощь Поиск Войти Регистрация
Новости:

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


Просмотр профиля Email
« : Декабря 26, 2018, 06:52:20 pm »

Здравствуйте. Ввожу глобальную переменную (icount) и инициализирую ее 0 значением , однако при вызове функции calc(), эта глобальная переменная не определяется как 0. Как только я инициализирую переменную icount в теле функции calc то все работает. Код ниже:

var icount;

function init() {
   icount = 0;
}


function calc() {
   line[0] = open;
   line[1] = close;
   
    open_long = open*(1+step);
    open_short = open*(1-step);

         
    if(icount == 0){
      if(close > open_long) {
         trade_action::buy(amount, ::lots);
         icount += 1;
         return;   
      }
      
      if(close < open_short) {
         trade_action::sell(amount, ::lots);
         icount += 1;
         return;
      }   
   }
}
Записан
Alexey2000
Newbie
*
Сообщений: 3


Просмотр профиля Email
« Ответ #1 : Декабря 26, 2018, 11:48:49 pm »

Разобрался. Глобальную переменную функция calc() изменять не может.
Записан
aq2003
Jr. Member
**
Сообщений: 57


Просмотр профиля Email
« Ответ #2 : Февраля 10, 2019, 12:07:11 pm »

Ещё как может.

По умолчанию ATF запоминает последнее состояние глобальных переменных, и каждый раз при вызове calc() восстанавливает те значения, которые были актуальны для предыдущей свечки.
Чтобы этого избежать, используйте ключевое слово static в объявлении переменной:
static iii;

В этом случае переменная iii будет сохранять своё значение между вызовами calc().
 
Подробнее здесь: http://www.transaq.ru/dokuwiki/atf:руководство
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Не работают глобальные переменные. « предыдущая тема следующая тема »
Перейти в:  


Войти

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