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

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Не выставляется стоп-заявка « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Не выставляется стоп-заявка  (Прочитано 5875 раз)
gjv
Newbie
*
Сообщений: 26


Просмотр профиля Email
« : 29.03.2013, 08:26:26 »

Робот делает покупку по цене 140020   и выставляет стоп
28.03.13 12:22:00    OP_BUY 140020
далее  выставляет стоп заявку 

    stopUp["operation"] = OP_SELL;
   stopUp["tp_activationprice"] = 140090   ;
        stopUp["sl_activationprice"] =139840;
        stopUp["tp_quantity"] = "100%";
   stopUp["sl_guardtime"] =15;
    stopUp["sl_quantity"] = "100%";

    stopIdBuy=trade_action::transactMultiple(stopUp);
        if (stopIdBuy==0)
       {
       
         signal::outputMultiple("error SetBUYStop "+getLastErrorMessage());
         writetofile(" error  SetBUYStop "+getLastErrorMessage());
       }

стоп заявка  почему то отклоняется брокером

FUT,RIM3,RTS-6.13, ***, П, 139840, , 100.00%, 15, , 140090, , , 100.00%, , , торг. день, , , 871612, , 12:22:01, *******, Отклонена Брокером, 714583559, , 12:22:45, 140090, 140090,

но при этом сообщения об ошибке не выдается? Хотя в документации написано:

trade_action::transact(order) - Выставить заявку в соответствии с полями, указанными в хеше. Начиная с версии 1.18 возвращает идентификатор транзакции либо 0 в случае ошибки.

Почему стоп заявка отклоняется брокером
и при этом нет сообщения об ошибке?
Причем это происходит лишь иногда ,  в основном стоп заявка выставляется нормально.

ATF 1.18
 

Записан
klimov
Разработчики
Hero Member
*****
Сообщений: 815


Просмотр профиля Email
« Ответ #1 : 29.03.2013, 08:49:19 »

При выставлении СТОП был принят сервером- поэтому ошибка=0 и есть номер транзакции.
СТОП был отклонен уже на этапе выполнения (т.е. при выставлении заявки Биржу), о чем и говорит формулировка "Отклонена Брокером" (Судя по минутной свече за 28.03.13 12:22, вскоре после выставления СТОПа выполнились условия для тейк-профит)

Увидеть почему СТОП не выполнился можно в таблице "Стоп-заявки": двойной клик на нужной стоп-заявке, кнопка "Статус"

А вы как отслеживаете прохождение сделки?
СТОП был выставлен по какому-то событию или сразу после заявки на покупку?
« Последнее редактирование: 29.03.2013, 11:34:22 от klimov » Записан
gjv
Newbie
*
Сообщений: 26


Просмотр профиля Email
« Ответ #2 : 29.03.2013, 13:56:16 »

стоп заявка выставляется
из события
onTrade(var id) примерно так

{
   if (trade["operation"] == OP_BUY)
       cena =trade["price"]  ;
   writetofile(" OP_BUY "  + trade["price"] ) ;
   SetBUYStop(cena, deltaTakeProfit, deltaStopLoss);
}
Записан
klimov
Разработчики
Hero Member
*****
Сообщений: 815


Просмотр профиля Email
« Ответ #3 : 01.04.2013, 09:12:47 »

А позиция в результате остается отрытой?

При повторении проблемы посмотрите все-же статус СТОПа в терминале

Если там будет про "отсутствие позиции", то значит позиции на момент срабатывания СТОПа не было (она могла быть закрыта другим стопом или обычной заявкой)
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #4 : 01.04.2013, 13:57:45 »

Некоторые уточнения по самой обработке ошибок.

Ошибки в ATF могут обрабатываться двумя способами: либо, если заявке не присваивается номер транзакции (то есть заявку отклоняет сам сервер Transaq), функция выставления заявки возвращает ноль в качестве результата, и тогда ошибку можно просмотреть функцией getLastErrorMessage().

Другой вариант - когда сервер Transaq всё же принял заявку, но потом с неё что-то пошло не так. Тогда сработает метод onOrder, но в структуре заявки будет во-первых какой-то статус, сообщающий об ошибке (поле status), а во-вторых будет заполнено поле message, в котором будет содержаться подробное сообщение об ошибке.

Правда, не так давно нами была обнаружена следующая ошибка уже в самом клиенте: для некоторых ошибок обработчики ATF вообще не вызываются, а вместо этого автоматически выводится диалог с сообщением об ошибке. У вас какой из этих случаев наблюдается? Вы проверяете именно структуру заявки? Или у вас выводится диалог, и в нём описание проблемы?
Записан
gjv
Newbie
*
Сообщений: 26


Просмотр профиля Email
« Ответ #5 : 01.04.2013, 14:23:39 »

Спасибо за развернутый ответ.

Диалог с описанием проблемы не выводится.
Событие  onOrder не обрабатывается.
Поставлю обработчик , при повторении ошибки отпишусь.

Записан
Страниц: [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!