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

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Выставление стоп-заявок и их контроль « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Выставление стоп-заявок и их контроль  (Прочитано 10668 раз)
nxz
Full Member
***
Сообщений: 241


Просмотр профиля Email
« : 31.05.2011, 19:35:24 »

Товарищи разработчики, прошу пояснить следующий момент...

Когда я выставляю стоп-заявку из хэша
Code: [Select]
function fBuy (var kol, var cena) {
signal::notify("Заявка на покупку " + kol + " контракта по " + cena);
order["tp_quantity"] = kol;
order["operation"] = OP_BUY;
order["tp_level"] = 1;
order["tp_activationprice"] = cena;
trade_action::transact(order);
}
и пытаюсь ее контролировать через функции getStopOrder(id) и getTrade(id)
Code: [Select]
function onATFOrder(var id) {
x = getStopOrder(id);
stz = x["status"]; // Запоминаем статус заявки
signal::notify("Заявка № " + x["trnid"] + " статус " + x["status"]);
}
function onATFTrade(var id) {
y = getTrade(id);
op = y["operation"]; // Запоминаем направление сделки
pr = y["price"]; // Запоминаем цену сделки
signal::notify("Сделка " + y["operation"] + " по цене " + y["price"] + ". Контрактов = " + (getBought() - getSold()));
file.wopen("data.txt"); // Запись файла параметров
file.seek(0);
file.writeLn(st); file.writeLn(stz); file.writeLn(lotz);
file.writeLn(op); file.writeLn(pr);
file.close();
}
ничего не происходит. Они просто не работают!

А если я выставляю заявку как
Code: [Select]
trade_action::buy(kol, ::lots, cena);То все прекрасно работает.

Вопрос: Умеют ли функции  getStopOrder(id) и getTrade(id) контролировать стоп-заявки выставленные из хэша?
Записан
ddd323
Sr. Member
****
Сообщений: 257


Просмотр профиля Email
« Ответ #1 : 31.05.2011, 20:15:11 »

в последнем обновлении траназака был следующий текст:
Сборка N 274
2. ATF. Добавлены функции onATFStopOrder и onClientStopOrder.
Соответственно, возможно нужно применять getStopOrder(id); внутри недокументированной ни на сайте, ни в программе функции onATFStopOrder/onClientStopOrder
Записан
nxz
Full Member
***
Сообщений: 241


Просмотр профиля Email
« Ответ #2 : 31.05.2011, 20:45:56 »

Спасибо за подсказку. В документации на сайте ничего нет, пропущено.
Применил эту функцию, но все равно не работает :-(
Code: [Select]
function onATFStopOrder(var id) {
x = getStopOrder(id);
stz = x["status"]; // Запоминаем статус заявки
signal::notify("Заявка № " + x["trnid"] + " статус " + x["status"]);
}
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #3 : 01.06.2011, 10:14:45 »

Да, действительно забыли указать это в документации. Спасибо что заметили, добавим.
Записан
nxz
Full Member
***
Сообщений: 241


Просмотр профиля Email
« Ответ #4 : 01.06.2011, 10:46:33 »

Да, действительно забыли указать это в документации. Спасибо что заметили, добавим.

а как с этим быть
Вопрос: Умеют ли функции  onATFStopOrder(var id) и onATFTrade(var id контролировать стоп-заявки выставленные из хэша?
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #5 : 01.06.2011, 10:50:18 »

а как с этим быть
Вопрос: Умеют ли функции  onATFStopOrder(var id) и onATFTrade(var id контролировать стоп-заявки выставленные из хэша?
А стоп-заявки из ATF никак кроме как из хеша выставлены быть не могут.
Записан
nxz
Full Member
***
Сообщений: 241


Просмотр профиля Email
« Ответ #6 : 01.06.2011, 10:55:17 »

а как с этим быть
Вопрос: Умеют ли функции  onATFStopOrder(var id) и onATFTrade(var id контролировать стоп-заявки выставленные из хэша?
А стоп-заявки из ATF никак кроме как из хеша выставлены быть не могут.
в первом посте описана ситуация, в которой при выставлении заявок и их срабатывании, функции onATFStopOrder(var id) и onATFTrade(var id) ни как не реагируют. После выставлении заявки и ее исполнения в моем коде должн быть выполнен коментарий, но его нет.
Записан
nxz
Full Member
***
Сообщений: 241


Просмотр профиля Email
« Ответ #7 : 01.06.2011, 11:51:04 »

Добавил в код функцию
Code: [Select]
function onClientStopOrder(var id) {
x = getStopOrder(id);
stz = x["status"]; // Запоминаем статус заявки
signal::notify("РУКАМИ Заявка № " + x["trnid"] + " статус " + x["status"]);
}
и мой скрипт отработал!!!
Может где-то что-то напутали?
Как я понимаю функция onClientStopOrder(var id) вызывается пользователям. но я заявки руками не выставлял, а только из скрипта и эта функция сработала.
Чудеса ???
но функция onATFTrade(var id) попрежнему молчит...
« Последнее редактирование: 01.06.2011, 12:06:33 от nxz » Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #8 : 01.06.2011, 12:13:48 »

в первом посте описана ситуация, в которой при выставлении заявок и их срабатывании, функции onATFStopOrder(var id) и onATFTrade(var id) ни как не реагируют. После выставлении заявки и ее исполнения в моем коде должн быть выполнен коментарий, но его нет.
Поправил сейчас баг, из-за которого заявки попадали в onClientStopOrder, а не в onATFStopOrder. В вашем же примере дело в том, что вы используете onClientOrder вместо onClientStopOrder - стоп-заявки и обычные (в том числе условные) - это несколько разные сущности, поэтому они и попадают в разные функции.
Записан
nxz
Full Member
***
Сообщений: 241


Просмотр профиля Email
« Ответ #9 : 01.06.2011, 12:23:52 »

в первом посте описана ситуация, в которой при выставлении заявок и их срабатывании, функции onATFStopOrder(var id) и onATFTrade(var id) ни как не реагируют. После выставлении заявки и ее исполнения в моем коде должн быть выполнен коментарий, но его нет.
Поправил сейчас баг, из-за которого заявки попадали в onClientStopOrder, а не в onATFStopOrder. В вашем же примере дело в том, что вы используете onClientOrder вместо onClientStopOrder - стоп-заявки и обычные (в том числе условные) - это несколько разные сущности, поэтому они и попадают в разные функции.
onClientOrder я нигде не использую, где Вы нашли в моем коде
А что с функцией onATFTrade(var id) ?
и когда эти изменения (исправления) будут работать в ИНТРЕ, надо ждать следующего обновления?
Записан
nxz
Full Member
***
Сообщений: 241


Просмотр профиля Email
« Ответ #10 : 01.06.2011, 12:29:40 »

продолжаем эксперимент
добавил
Code: [Select]
function onClientTrade(var id) {
y = getTrade(id);
op = y["operation"]; // Запоминаем направление сделки
pr = y["price"]; // Запоминаем цену сделки
signal::notify("РУКАМИ Сделка " + y["operation"] + " по цене " + y["price"] + ". Контрактов = " + (getBought() - getSold()));
}
и о чудо!!!
сделки проводимые роботом стали заносится в журнал уведомлений. Опять же работает onClientTrade(var id)  , а не onATFTrade(var id)
при работе со стоп-заявками из хэша
что ЭТО?
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #11 : 01.06.2011, 12:43:18 »

Про onClientOrder описался - имел ввиду onATFOrder.

Про onATFTrade и onATFStopOrder я уже писал:

Поправил сейчас баг, из-за которого заявки попадали в onClientStopOrder, а не в onATFStopOrder.

Когда будут изменения не знаю. Вероятно на днях сделаем сборку.
Записан
nxz
Full Member
***
Сообщений: 241


Просмотр профиля Email
« Ответ #12 : 01.06.2011, 12:50:38 »


Когда будут изменения не знаю. Вероятно на днях сделаем сборку.

Спасибо, буду ждать, все шишки в моем коде, чтоб не написал ;D
Записан
Страниц: [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!