Transaq

СБО "Transaq" => Подсистема ATF => Topic started by: Dmitriy on 27.06.2013, 18:32:45

Title: Автоматическое выставление заявок
Post by: Dmitriy on 27.06.2013, 18:32:45
День добрый!
Скрипт, приведенный в примере по адресу http://www.transaq.ru/dokuwiki/atf:заявки_и_сделки :

function fixProfit(var id)
{
  var trade = getTrade(id);
  if (trade["operation"] == OP_BUY) {
    trade["operation"] = OP_SELL;
    trade["price"] = trade["price"] * 1.03;
    trade_action::transactMultiple(trade);
  }
}

не желает работать на ФОРТС. Попросту игнорируется.
Ver. 5.05.305.07, rev51, ATF 1.18.
Не подскажете ли, в чем может крыться причина?
Заранее благодарю!!
Title: Re: Автоматическое выставление заявок
Post by: Heller on 28.06.2013, 15:07:23
У ATF есть возможности для установления причин таких ошибок. Посмотрите на той же странице документации раздел "Ошибки и номера транзакций" - сведения оттуда помогут определить в чем причина того, что код не приводит к совершению сделки.
Title: Re: Автоматическое выставление заявок
Post by: Dmitriy on 28.06.2013, 16:04:41
Проверил: сообщения signal::output(trade["message"])  и  signal::output(getLastErrorMessage()) - пустые..
Title: Re: Автоматическое выставление заявок
Post by: bugem on 28.06.2013, 17:12:34
2 Dmitriy
Попробуйте так
Code: [Select]
function fixProfit(var id)
{
    var trade = new_object("hash");    // Создать объект типа хэш
    trade = getTrade(id);
    ...    // Далее то, что там у Вас было далее :)
}
Title: Re: Автоматическое выставление заявок
Post by: Dmitriy on 01.07.2013, 12:04:02
Большое спасибо Вам за участие, однако, к моему удивлению, этот способ также не сработал. Возымела эффект лишь замена функции на onClientTrade(id), вместо getProfit(id). В этом случае она вызывается по факту совершения сделки.