Transaq
СБО "Transaq" => Подсистема ATF => Topic started by: DiveRSS on Марта 29, 2013, 09:51:00 am
-
Ребят не могу понять к чему привязать авто следование.
Есть код который привязывается к ценам в стакане но он не срабатывает по функции calc().
Вот часть кода может кто подскажет.
function calc()
{
var book = new_object("book");
book.subscribe(); //подписка
book.load(); //загрузка
bookSell=book.getBidPrice(0);
bookBuy=book.getAskPrice(book.getAskPosCount()-1);
Tp1 = bookSell - bookSell*Sledovanie/100;
Tp2 = bookBuy + bookBuy*Sledovanie/100;
while (getSecBalance() != 0 )
{
//signal::alert("Кол СЛ"+Sl_pris+" trade_oper "+trade_oper);
while(trade_oper==OP_BUY)
{
//signal::alert("Перед отменой");
trade_action::cancelAllOrders();
var sl_order1=new_object("hash");
sl_order1["quantity"] = getSecBalance()/getLotSize();
sl_order1["operation"] = OP_BUY;
sl_order1["validbefore"] =TILL_CANCELED;
sl_order1["usecredit"] = false;
sl_order1["condition"] = COND_LAST_UP;
sl_order1["condvalue"] = Tp1;
sl_order1["withinpos"] = true;
trade_action::transactMultiple(sl_order);
//signal::alert("После заявки");
//Sl_pris = ST1;
return;
}
return;
}
}
-
Ошибка тут в том, что вы подписываетесь на стакан и тут же пытаетесь использовать его данные, хотя для того, чтобы они пришли, нужно какое-то время.
Обычно подписка на стакан делается где-нибудь в методе init() или onHistoryCalculated(), а затем уже строится работа со стаканом, по которому уже есть подписка, внутри метода calc().
-
Доброго времени суток еще раз. За подсказку спасибо перепробовал все что пришло мою дурную голову не получилось.
Не кто не знает команды как привезутся не к стакану а курсу по конкретной бумаги?. Если эти данные поступают в программу значит их можно как-то получить?.
-
Честно говоря я совершенно не понял что вы имеете ввиду.
-
Дилемма в том что я ищу к каким цифрам привязать формулы.
З,Ы. Скрин того чего я хочу использовать в программе ниже ( верней те цифры.)
-
Получить именно значение "Курс" из ATF на данный момент нельзя, однако можно получить цену последней сделки - практически всегда "Курс" равен именно её. В каких-то очень редких ситуациях они могут не соответствовать - например, если сегодня сделок по бумаге еще не было, то цена последней сделки будет отсутствовать, а курс будет соответствовать вчерашнему закрытию. Но в целом в большинстве ситуаций вы можете использовать значение последней сделки.
Если вам нудна какая-то другая бумага (не та, к которой вы привязываете индикатор), то вы можете подписаться по неё через объект statline, а из него уже получить поле param_last.
-
Здравствуйте. Я Снова вернулся к тебе авто следования. Спасибо за подсказку как привязаться к курсу.
У меня возни сложности с тестированием и не могли бы подсказать как работает команда signal::alertMultipe("Покупай внутри свечи!"); в контексте данного когда что то не получается понять как ее выводить без сбоев и отслеживать изменения.
Var count;
function f()
{
count += 1;
signal::alertMultipe(count);
while (count > 2)
{
count = 0;
f();
signal::alert("if");
}
}
function init()
{
timerID = setTimer("f", 10000, TIMER_PERIODICALLY);
}
-
Вопрос снят был идиотским разобрался..