Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
ФХЪРСап 14, 2024, 03:42:50 pm
Новости:
Transaq
|
СБО "Transaq"
|
Подсистема ATF
| Topic:
Алерт
« предыдущая тема
следующая тема »
Страниц:
[
1
]
Автор
Тема: Алерт (Прочитано 10513 раз)
AlexeyNev
Jr. Member
Сообщений: 53
Алерт
«
:
РЯаХЫп 14, 2014, 01:28:54 pm »
Привет, подскажите
Почему alert срабатывает по текущей цене клоуз , когда свеча ещё не закончилась. Как сделать так, чтобы он срабатывал на реальной цене close текущей свечки, то есть по окончанию расчета свечки (алерт нужен в тот момент когда свечка закрыла выше линии, а не проколола ее)?
if (close > line[1]) {
signal::alert("
? LONG!");
Еще небольшой вопрос
функция isHistoryCalculated() принимает True когда начинается расчёт онлайн или наоборот?
есть ли где более подробная информация по её работе?
Записан
klf302
Newbie
Сообщений: 30
Re: Алерт
«
Ответ #1 :
РЯаХЫп 21, 2014, 10:31:16 am »
Здраствуйте.В выходные на Intra я попробовал такой код.
function init()
{
setInitCandles(1);
}
function calc(){
var pos1= getBought() ;
var pos2= getBoughtMoney() ;
var pos5=pos2/pos1;
var pos3= getSold() ;
var pos4= getSoldMoney() ;
var pos6=pos4/pos3;
signal::alert("купля"+" "+pos1+" "+pos2+" "+substr(as_string(pos5),1,5)+" продажа"+" "+pos3+" "+pos4+" "+substr(as_string(pos6),1,5));
}
Работает нормально.Сегодня с утра я обновил Transaq до сборки 338.Вставил этот скрипт.Но не работает.Сначала при запуске отвечал: «Выход за границы при обращению к индикатору»,а теперь при запуске ничего не отвечает и не работает.
Записан
Heller
Разработчики
Hero Member
Сообщений: 1277
Re: Алерт
«
Ответ #2 :
РЯаХЫп 21, 2014, 12:07:11 pm »
Из того, что вы написали ничего не понятно.
Ошибка "Выход за границы при обращению к индикатору" в вашем коде явно не может происходить, поскольку вы не обращаетесь тут к данным свечей или других индикаторов вообще никак.
Вполне возможно, что у вас происходит деление на ноль - тут для этого много возможностей и после этого скрипт, естественно, работать не будет.
Записан
klf302
Newbie
Сообщений: 30
Re: Алерт
«
Ответ #3 :
РЯаХЫп 22, 2014, 05:50:40 pm »
Я пока так и не разобрался.Но одно не пойму:почему в Transaq Intra этот код работает нормально,а в Транзаке нет.
Записан
klf302
Newbie
Сообщений: 30
Re: Алерт
«
Ответ #4 :
РЯаХЫп 25, 2014, 04:34:07 pm »
Здраствуйте.Есть ли программа,которая обрабатывает таблицу сделок?Накапливает количество купленных акций по бумаге,на какую сумму куплено.То же по продаже.GetBoughtMoney,кажется ,не работает.
Записан
White Noise
Full Member
Сообщений: 164
White Noise
Re: Алерт
«
Ответ #5 :
РЯаХЫп 25, 2014, 08:40:46 pm »
substr(as_string(pos5),1,5) - обращаемся к строке,... в данной операции она рассматривается как массив , пусть даже символов,...ищите проблему тут....проверенно !!!
substr(as_string(pos6),1,5)) - ну и тут....
проконтролируйте pos5, и варьируйте параметрами 1,5) - станет понятно.
ну или в последних сборках отвалились getBoughtMoney() ; и все подобные по деньгам функции, которые выдают пустоту !!!
«
Последнее редактирование: РЯаХЫп 25, 2014, 08:47:44 pm от White Noise
»
Записан
klf302
Newbie
Сообщений: 30
Re: Алерт
«
Ответ #6 :
РЯаХЫп 28, 2014, 10:48:28 am »
Со строками еще не разобрался.Но дело в том,что getBoughtMoney не работает и эта программа не будет работать.Вот другой скрипт:
var moneyito;
var quanito;
var i;
function onTrade(var id)
{
var trade = getTrade(id);
var pr = trade["price"];
var quan = trade["quantity"];
var money = pr*quan;
if (i > 0)
{
quanito = quanito + quan;
moneyito = moneyito + money;
i = i + 1;
}
else
{
quanito=quan;
moneyito = money;
i =i + 1;
}
signal::alert("куп"+pr+" "+quanito+" "+moneyito);
}
Работает не совсем правильно,видимо,переменные неправильно объявил.Накопленная сумма часто обнуляется.Хотя надо и номер сделки проверять и код бумаги.И самую первую сделку надо обрабатывать по другой ветке.Может есть подобная программа,чтобы не придумывать велосипед?
Записан
klf302
Newbie
Сообщений: 30
Re: Алерт
«
Ответ #7 :
РЯаХЫп 28, 2014, 03:25:52 pm »
Подскажите, как подкорректировать этот код ,чтобы количество купленного по бумаге,а также на какую сумму куплено накапливалось с каждой сделкой нормально.То же и по продаже.
Записан
DiveRSS
Jr. Member
Сообщений: 68
Re: Алерт
«
Ответ #8 :
РЯаХЫп 28, 2014, 03:29:31 pm »
getSecBalance() посмотри данную команду
Записан
klf302
Newbie
Сообщений: 30
Re: Алерт
«
Ответ #9 :
РЯаХЫп 28, 2014, 04:38:24 pm »
Эта команда не очень подходит.Как узнать сколько я купил и на какую сумму я купил сегодня данной бумаги?Как накапливать эту самую сумму с каждой сделкой?
Записан
DiveRSS
Jr. Member
Сообщений: 68
Re: Алерт
«
Ответ #10 :
РЯаХЫп 28, 2014, 05:13:33 pm »
В твоем вопросе заложен и ответ.
1 "сколько я купил" Начнем с того что переменные должны быть static в них мы будем хранить данные.
2 Количество ты можешь по последнему исполненному ордеру так же как и цену ( но тут не уверен что будет именно та цена что тебя интересует).
3. Если нужно конкретно накапливать смотри формулы вывода и забора данных из файла ( я если честно не использую их я работаю внутри дня)
Опять таки какой срок хранения для каких целей используются в дальнейшем данные.
Команды ну тут как бы тебе надо посмотреть статус ордера если он выполнен взять данные из него
function onOrder(var idl)
status = getOrder(idl);
status = status["status"];
if (status == 11)
{
Выполнение арифметики
}
Код выше приведен как направление в котором копать из ордера ты так же можешь получить количество и по идее цену ( но какую цену ты получишь я не знаю средние по сделке или последнюю не проверял не знаю).
З.Ы. В одном ордере может быть несколько трейдов так что функция onTrade ну как бы не особо хороша для подсчетов данных цифр.
Записан
klf302
Newbie
Сообщений: 30
Re: Алерт
«
Ответ #11 :
РЯаХЫп 29, 2014, 09:41:57 am »
Спасибо.Насчет static подсказали,а то я все var пользуюсь.Вот этот код получше работает, накапливает количество акций и сумму в рублях,хотя алерт не на каждую сделку исполняется.
static moneyito;
static quanito;
static money;
static i;
function onTrade(var id)
{
var trade = getTrade(id);
var pr = trade["price"];
var quan = trade["quantity"];
money = pr*quan;
if (i > 0)
{
quanito = quanito + quan;
moneyito = moneyito + money;
i = i + 1;
}
else
{
quanito=quan;
moneyito = money;
i =i + 1;
}
signal::alert("куп"+pr+" "+quanito+" "+moneyito);
}
Записан
DiveRSS
Jr. Member
Сообщений: 68
Re: Алерт
«
Ответ #12 :
РЯаХЫп 29, 2014, 09:54:51 am »
signal::alertMultipe <-- Вот Это ставь за место signal::alert
signal::alert<-- Срабатывает 1 раз в свечку.
Записан
Страниц:
[
1
]
Transaq
|
СБО "Transaq"
|
Подсистема ATF
| Topic:
Алерт
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
J
-----------------------------
-----------------------------
П
-----------------------------
-----------------------------
0
-----------------------------
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Powered by SMF 2.0.10
|
SMF © 2006-2008, Simple Machines LLC
Загружается...