Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Сентября 29, 2023, 12:16:58 am
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Условные заявки « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Условные заявки  (Прочитано 5150 раз)
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« : Июля 04, 2012, 06:21:59 pm »

Пытаюсь выставить стоп лос для покупки через робота

пробовал сделать 2-мя способоми :

1)скопировал пример из описания, вставил его в функцию

function set_buy_sl(var price)
{
   var stop = new_object("hash");

   // Заявка на продажу
   stop["operation"] = OP_SELL;

   // Часть Stop Loss
   stop["sl_activationprice"] = price - 100;
   stop["sl_quantity"] = 1;
   
   // Выставление заявки на рынок
   trade_action::transact(stop);
}

price - цена покупки

Транзак на это реагирует сообщением :
"
  : Неверно задан объем.
Не найдено заявок, удовлетворяющих заданным критериям.
"
Крутил  как мог, на все дает только это сообщение
В чем проблема ?

2) выставление условной заявки
здесь наверное проще, только я никак не могу разобраться какое условие выбрать
в ручном способе выставления заявки :
Лучшая покупка
Лучшая покупка или сделка
Лучшая продажа
Лучшая продажа или сделка

 а в ATF

 COND_BID - Условие на bid
 COND_BID_OR_LAST - Условие на bid или последнюю цену
 COND_ASK - Условие на ask
 COND_ASK_OR_LAST - Условие на ask или последнюю цену
 COND_LAST_UP - Последняя сделка выше
 COND_LAST_DOWN - Последняя сделка ниже

мне нужно знать что соответствует "Лучшая покупка или сделка" и "Лучшая продажа или сделка"

заранее благодарен
Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
klimov
Разработчики
Hero Member
*****
Сообщений: 815


Просмотр профиля Email
« Ответ #1 : Июля 05, 2012, 10:36:28 am »

bid это покупка, ask - продажа

COND_BID_OR_LAST =Лучшая покупка или сделка
COND_ASK_OR_LAST=Лучшая продажа или сделка
Записан
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« Ответ #2 : Июля 12, 2012, 12:36:55 pm »

Большое спасибо klimov,
с выставлением условных заявок разобрался, работает ))

теперь уже 2й день пытаюсь их удалить, задача состоит в том, что-бы организовать трейлинг стоп с подстраиваемым расстоянием, все уже работает, кроме удаления заявок. Уже много что перепробовал, не получается.
пробовал
1/ trade_action::cancelSellOrders(); - выдает, что таких заявок не найдено при первом запуске трала, дело в том, ставит сам первый стоп, а когда его нет, то наверное по тому что удалять не чего, такое сообщение, решил отфильтровать через getActiveOrderIDs()
2/узнал из этой ветки http://www.transaq.ru/forum/index.php?topic=664.msg3690#msg3690 как пользоваться getActiveOrderIDs(), но потом совершенно случайно обнаружил что она условные заявки игнорирует ( понял, когда ввел лимитные заявки, и на них была реакция, которую я ожидал на условные)

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

Спасибо

Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« Ответ #3 : Июля 12, 2012, 02:58:07 pm »

Я кажется разобрался, поражаясь своей недогадливости: getActiveOrderIDs() - для активных заявок но не для условных. Я думал что, все заявки, которые я вижу на экране и еще не исполнены - активные.
Как же тогда быть ? как удалять условные заявки ?
Или для меня лучше пользоваться стоп заявками, они являются активными ?
Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #4 : Июля 13, 2012, 09:40:15 am »

Стоп-заявки не являются активными. Вам возможно помогут функции getAllOrderIDs() и getAllStopOrderIDs().
Записан
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« Ответ #5 : Июля 16, 2012, 10:05:48 am »

Спасибо за подсказку с стоп заявками, получается их выставлять. Теперь пытаюсь удалить с помощью процедуры :

function delete_all_stops()
{
   var i; var j; var m;
   ActiveOrderIDs = getAllStopOrderIDs();

   if (ActiveOrderIDs.size() == 0)
      {
         return(0);
      }

   m = ActiveOrderIDs.size(); i -= i;
   while (i < m) {
      j = ActiveOrderIDs.shift();
      Order = getOrder(j);
        if (as_string(Order["status"]) == "1")
         {
           trade_action::cancelStopOrder(Order["trnid"]);
         }
      i += 1;
   }
}

Пробовал trade_action::cancelStopOrder(Order), т.е. передавать хэш.
Не удаляет, хотя вроде в коде все правильно. В чем ошибка ?
« Последнее редактирование: Июля 16, 2012, 10:33:35 am от Yegor Hi And » Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
Yegor Hi And
Full Member
***
Сообщений: 138


Просмотр профиля Email
« Ответ #6 : Июля 16, 2012, 11:20:21 am »

Нашел
в строке
Order = getOrder(j); надо  getStopOrder , заработало.
Записан

Предлагаю реализовать Ваши торговые идеи на ATF, пишите в личку
Страниц: [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!