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

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: ATF close - баги? Или как запросить close на определенную дату и время? « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: ATF close - баги? Или как запросить close на определенную дату и время?  (Прочитано 5578 раз)
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« : 19.05.2011, 16:46:50 »

close - это в общем-то текущая цена (а точнее последняя сделка).

Вопрос к разработчикам такой: в самом начале выполнения программы, что за цена подставляется в close?

вот простой код: (ATF 1.8 )
в корне с программой надо создать файл "closer.txt"
потом все это добавить как индикатор на график, открыть файл и посмотреть что получилось ...

Code: [Select]
var file;
var closer;
var timer;

function calc() {
timer = getFormattedTime(getServerTime());

file = new_object("file");
file.ropen("./close.txt"); // открыли на чтение
closer = file.readLn();
file.close();

if (closer<close) {
file = new_object("file");
file.wopen("./close.txt"); // открыли на запись
file.writeLn(close);
file.writeLn("время: " + timer);
file.close();
}
}

Можете прокомментировать полученный результат?
Буду очень благодарен. Ибо хочется при этих условиях получить действительно рыночную (последнюю) сделку
« Последнее редактирование: 19.05.2011, 18:08:48 от daytrader » Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #1 : 19.05.2011, 17:24:31 »

getServerTime() вам каждый раз возвращает текущее время сервера. Попробуйте использовать вместо него getCandleTime() - это все расставит на свои места по идее.

Ну а вообще на этапе, когда ATF рассчитывает еще исторические значени, close - это закрытия именно исторических свечек.

Ну а в целом я не очень понял ваш пример и что именно он должен показать, если честно.
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #2 : 19.05.2011, 17:35:43 »

по поводу времени, тут не важно, важно что мне при загрузке необходимо взять именно свежую, последнюю сделку а не дико историческую. Ну хотя бы прошлую свечу.

а пример по идее должен был записать в файл последнюю сделку.

UPD а можно тогда мне запросить close прям по дате и времени?
Раз я могу указать время свечи, то могу и дату? (только уже это все при запросе)
« Последнее редактирование: 19.05.2011, 17:52:19 от daytrader » Записан
nikolz
Sr. Member
****
Сообщений: 285


Просмотр профиля Email
« Ответ #3 : 19.05.2011, 19:44:41 »

daytrader !
Используйте либо onHistoryCalculated()
либо isHistoryCalculated()
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #4 : 19.05.2011, 20:42:08 »

понял.
посмотрел справочник, но четно говоря понял только то, что они отвечают за исторические данные. Подгрузились они или нет.
как мне их использовать, что бы не закачивать историю, и сразу же перейти к последней сделке на рынке, я не понял.

какая у них вообще логика?

UPD
я правильно понимаю, что при вызове
if isHistoryCalculated() - будет проверка на то, что история уже загружена и посчитана, и теперь поступают актуальные рыночные данные?
« Последнее редактирование: 20.05.2011, 09:04:06 от daytrader » Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #5 : 20.05.2011, 10:12:58 »

Следует поступать как говорит nikolz - все что вы хотите считать только в реальном времени вставлять только внутрь

if (isHistoryCalculated()) {}

Если вам нужно именно значение последней сделки даже на исторических значениях, то можно поступить так:

setCurrentPosition(countCandles() - 1);
x = close; // здесь это будет
// именно последняя сделка
restoreCurrentPosition();

Хотя зачем такое может пригодиться я не представляю, скорее всего вы просто не до конца разобрались в том, как работает calc().
Записан
daytrader
Full Member
***
Сообщений: 174


Просмотр профиля Email
« Ответ #6 : 20.05.2011, 10:51:12 »

Heller спасибо за пояснение, мне действительно второй вариант не нужен, нужен только первый
if (isHistoryCalculated()) {}

про второй можно забыть, то был бред.

Сейчас буду вносить изменения в подачу сигналов.

Спасибо всем!
Здорово что помогли узнать еще больше :)
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: ATF close - баги? Или как запросить close на определенную дату и время? « предыдущая тема следующая тема »
Перейти в:  


Войти

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