Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Октября 12, 2024, 09:22:56 am
Начало Помощь Поиск Войти Регистрация
Новости:

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


Просмотр профиля Email
« : Марта 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;
   }
}
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #1 : Апреля 01, 2013, 12:47:56 pm »

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

Обычно подписка на стакан делается где-нибудь в методе init() или onHistoryCalculated(), а затем уже строится работа со стаканом, по которому уже есть подписка, внутри метода calc().
Записан
DiveRSS
Jr. Member
**
Сообщений: 68


Просмотр профиля Email
« Ответ #2 : Апреля 11, 2013, 02:54:50 pm »

Доброго времени суток еще раз. За подсказку спасибо перепробовал все что пришло мою дурную голову не получилось.
Не кто не знает команды как привезутся не к стакану а курсу по конкретной бумаги?. Если эти данные поступают в программу значит их можно как-то получить?.
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #3 : Апреля 12, 2013, 12:26:17 pm »

Честно говоря я совершенно не понял что вы имеете ввиду.
Записан
DiveRSS
Jr. Member
**
Сообщений: 68


Просмотр профиля Email
« Ответ #4 : Апреля 15, 2013, 12:12:29 pm »

Дилемма в том что я ищу к каким цифрам привязать формулы.
З,Ы. Скрин того чего я хочу использовать в программе ниже ( верней те цифры.)
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #5 : Апреля 15, 2013, 01:05:32 pm »

Получить именно значение "Курс" из ATF на данный момент нельзя, однако можно получить цену последней сделки - практически всегда "Курс" равен именно её. В каких-то очень редких ситуациях они могут не соответствовать - например, если сегодня сделок по бумаге еще не было, то цена последней сделки будет отсутствовать, а курс будет соответствовать вчерашнему закрытию. Но в целом в большинстве ситуаций вы можете использовать значение последней сделки.

Если вам нудна какая-то другая бумага (не та, к которой вы привязываете индикатор), то вы можете подписаться по неё через объект statline, а из него уже получить поле param_last.
Записан
DiveRSS
Jr. Member
**
Сообщений: 68


Просмотр профиля Email
« Ответ #6 : Января 16, 2014, 01:43:12 pm »

Здравствуйте. Я Снова вернулся к тебе авто следования. Спасибо за подсказку как привязаться к курсу.
У меня возни сложности с тестированием и не могли бы подсказать как работает команда 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);
}
Записан
DiveRSS
Jr. Member
**
Сообщений: 68


Просмотр профиля Email
« Ответ #7 : Января 17, 2014, 10:36:12 am »

Вопрос снят был идиотским разобрался..
Записан
Страниц: [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!