Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Августа 10, 2022, 08:11:56 pm
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Неточности и "туманности" в документации ATF « предыдущая тема следующая тема »
Страниц: 1 2 [3] Печать
Автор Тема: Неточности и "туманности" в документации ATF  (Прочитано 22133 раз)
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #30 : Июля 15, 2013, 07:34:23 pm »

Про tp_spread и unfilled не могу компетентно ответить - сказал специалисту, который в этом разбирается, чтобы ответил здесь.

Про static да, есть ограничение - при определении true и false не воспринимается. Когда-нибудь исправлю, но пока это не приоритетно. Вообще true и false работает нормально, вот за исключением определения за пределами функций.

validbefore буду тестировать, вообще должно работать, используете функцию вы судя по всему правильно. Посмотрите в свойствах заявки в диалоге после выставления её из ATF - там вообще не заполнено это поле, или там другое время?
Записан
Олег
Hero Member
*****
Сообщений: 849



Просмотр профиля Email
« Ответ #31 : Июля 15, 2013, 08:32:02 pm »

Про tp_spread и unfilled не могу компетентно ответить - сказал специалисту, который в этом разбирается, чтобы ответил здесь.

Хорошо, будем ждать.
Заодно спросим у этого специалиста, почему он уклоняется от участия в форуме? :)
На вас одного всю работу нагрузили.


validbefore буду тестировать, вообще должно работать, используете функцию вы судя по всему правильно. Посмотрите в свойствах заявки в диалоге после выставления её из ATF - там вообще не заполнено это поле, или там другое время?

Насколько я помню, когда выставляешь как TILL_CANCELED, тогда все воспринимается нормально, и заявка получается "до отмены", и в таблице заявок это тоже отражается правильно, а когда какое-нибудь число вроде того, что я использовал в своем коде

Code: [Select]
order["validbefore"] = getServerTime() + 3 * 60;
то ATF это вообще игнорирует, и в таблице заявок соответствующая клетка пустая.

Попробую немного поэкспериментировать, уточню, потом отпишусь.
Записан

Коллеги!
МТС фокусничает!
Будьте бдительны сами и предупредите всех своих хороших знакомых!
Я тоже на днях вляпался.
Схема "фокуса" описана вот здесь:
http://www.forum.sib.mts.ru/viewtopic.php?f=344&t=11381
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #32 : Июля 22, 2013, 06:53:06 pm »

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

Про unfilled посмотрите описание трех констант UNFILLED_CANCELBALANCE, UNFILLED_IMMORCANCEL, UNFILLED_PUTINQUEUE вот здесь. Более подробно должно быть в chm-файле, описывающим свойства заявок и прилагающемся к трейдеру.
Записан
Олег
Hero Member
*****
Сообщений: 849



Просмотр профиля Email
« Ответ #33 : Июля 23, 2013, 04:21:59 pm »

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

Правильно я понял, что вместо

Code: [Select]
tp_spread = <некоторое значение>;
достаточно написать

Code: [Select]
spread = <некоторое значение>;
и тогда тейк-профит будет выставляться не по рынку, а со спредом, соответствующим этому значению?

И потом, если это даже на форуме уже обсуждалось когда-то, то почему это никак не отображено в документации вот здесь?



"Будет поправлено" это когда еще, а документацией все пользуются уже сейчас и каждый наступает на одни и те же грабли.
Почему бы там честно не сделать небольшую приписочку, дескать, вкралась ошибка, в скором будущем будет исправлено, а пока вместо того-то и того-то пишите в скриптах так-то и так-то?
Записан

Коллеги!
МТС фокусничает!
Будьте бдительны сами и предупредите всех своих хороших знакомых!
Я тоже на днях вляпался.
Схема "фокуса" описана вот здесь:
http://www.forum.sib.mts.ru/viewtopic.php?f=344&t=11381
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #34 : Июля 24, 2013, 05:12:46 pm »

Не отображено в документации, потому что это был баг - его просто не следует использовать таким образом.
Записан
Олег
Hero Member
*****
Сообщений: 849



Просмотр профиля Email
« Ответ #35 : Июля 24, 2013, 10:42:27 pm »

Не отображено в документации, потому что это был баг - его просто не следует использовать таким образом.

Сейчас в Интре попробовал вот так:

Code: [Select]
#line 0 nodraw

static StopOrderIssuedAlready = "Нет";

function onNewCandle()
{
   if (not isHistoryCalculated()) {return;}

if (StopOrderIssuedAlready == "Нет")
{
var StopOrder = new_object("hash");
StopOrder["tp_quantity"] = 1;
StopOrder["operation"] = OP_BUY;
StopOrder["tp_activationprice"] = close - 10;
StopOrder["spread"] = 0;
trade_action::transact(StopOrder);
StopOrderIssuedAlready = "Да";
}
}

function init()
{
setBounds (0, countCandles(), 0);
   setInitCandles(countCandles());
}

 function calc()
 {  
   if (not isHistoryCalculated()) {return;}
   line [0] = 0;
 }

Ну да, действительно, выставляется именно такой тейк-профит, который мне сейчас нужен, то есть не по рыночной цене, а по "твердой". Цена сначала через него "перепрыгнула", и тейк-профит превратился в активную заявку, а уже на обратном движении цены через этот уровень, эта заявка сработала. И причем сделка совершилась именно по той цене, по которой был выставлен тейк-профит.

Короче говоря, это именно то, что мне нужно, спасибо.

А почему вы не хотите в документации ВРЕМЕННО написать, например, вот так:

Quote
Стоп-заявки

 Следующие поля стоп-заявки дублируют соответствующие поля лимитированных и условных заявок:

 validbefore - время, до которого заявка будет активна. По умолчанию она активна до конца сессии. Так же возможно задать значение TILL_CANCELED, чтобы заявка была активна до отмены.

 client - клиент, от имени которого будет выставлена заявка. По умолчанию используется текущий клиент.

 operation - покупка (OP_BUY) или продажа (OP_SELL)

 confirm_dialog - если true, то вместо выставления заявки на биржу, будет выведен диалог ввода стоп-заявки

 Следующие поля можно заполнять для части Take Profit:

 tp_activationprice - Цена активации Take Profit - обязательное поле.

 tp_guardtime - Защитное время Take Profit в секундах (по умолчанию 0)

 tp_quantity - Количество лотов в Take Profit (может быть задано в процентах, тогда вводится в виде «12.34%»)

 tp_correction - величина коррекции для следящего Take Profit (может быть задана в процентах, тогда вводится в виде «12.34%», так же может отсутствовать, тогда Take Profit не будет следящим)

 tp_guardspread - Защитный спрэд Take Profit (может быть задан в процентах, тогда вводится в виде «12.34%», так же может отсутствовать)

Примечание. В связи с досадной ошибкой, вместо  "tp_guardspread" следует ВРЕМЕННО использовать  "spread". В ближайших версиях это недоразумение будет устранено.

tp_brokerref - примечание Take Profit, максимально возможная длина определяется функцией getMaxBrokerRefLen() (ATF 1.18)


Я уж и сам хотел туда это вписать, но подумал, что с моей стороны это будет слишком большая наглость :)

...потому что это был баг...

Баг - это когда совсем не работает или когда работает неправильно.
А если работает правильно, но только вместо одного "заклинания" надо написать другое, то это уже не баг :)  В конце концов, может так оно и было с самого начала задумано?! :)
Может это фича такая...  чисто для прикола :)

P.S. Тут у меня еще один попутный вопрос появился.
Вот допустим, наш тейк-профит, выставленный таким способом, зацепило и он превратился в активную заявку,  но цена от него "отошла", и он некоторое (может быть даже очень долгое) время висит неисполненным в виде обычной лимитированной заявки. В это время какой у этой стоп-заявки статус? SS_TP_EXECUTED или какой-то другой?


« Последнее редактирование: Июля 24, 2013, 11:59:36 pm от Олег » Записан

Коллеги!
МТС фокусничает!
Будьте бдительны сами и предупредите всех своих хороших знакомых!
Я тоже на днях вляпался.
Схема "фокуса" описана вот здесь:
http://www.forum.sib.mts.ru/viewtopic.php?f=344&t=11381
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #36 : Июля 25, 2013, 10:38:47 am »

Не, ну как-то описывать поведение бага было бы не хорошо. Рекомендовать пользователям использовать неправильное - это значит толкать их на написание будущих ошибок. Вы сегодня напишете "spread", а через неделю версия обновится и вы будете не понимать почему то что работало уже не работает, и будете тратить время и деньги. В подобных ситуациях я всегда предпочитаю оставлять в документации правильное описание. Другое дело, что именно в данной версии почему-то обновление задержалось.
Записан
Олег
Hero Member
*****
Сообщений: 849



Просмотр профиля Email
« Ответ #37 : Августа 23, 2013, 03:04:09 pm »

Ну да, действительно, выставляется именно такой тейк-профит, который мне сейчас нужен, то есть не по рыночной цене, а по "твердой". Цена сначала через него "перепрыгнула", и тейк-профит превратился в активную заявку, а уже на обратном движении цены через этот уровень, эта заявка сработала. И причем сделка совершилась именно по той цене, по которой был выставлен тейк-профит.

Короче говоря, это именно то, что мне нужно, спасибо.

Ну вот, опять какая-то хрень вылезла.
Выставлял стоп-заявку вот так:

Code: [Select]
var stop = new_object("hash");
stop["validbefore"] = TILL_CANCELED;
stop["tp_quantity"] = "100%";
stop["sl_quantity"] = "100%";
stop["spread"] = 0;
stop["operation"] = OP_BUY;
stop["tp_activationprice"] = TP_Level;
stop["sl_activationprice"] = SL_Level;
StopOrderTransaqID = trade_action::transact(stop);

Стоп-заявка выставилась, я сам видел, как нарисовались зеленые пунктирчики там где надо.
Потом я отошел на некоторое время. Когда вернулся, цена уже была гораздо ниже моего тейк-профита, стоп-заявки (пунктирчиков) на графике уже не было, и сделка тоже не была заключена. Выяснил статус этой стоп-заявки: 6, т.е. это либо SS_FAILED (Не удалось выставить на биржу), либо  SS_CANCELLED (Снята трейдером, заявка уже попала на рынок и была отменена).
Кстати, пора бы уже блондинке составить таблицу констант, чтобы не надо было отсчитывать поштучно и догадки строить. Если там от нуля отсчитывать, тогда первое значение, если от единицы, тогда второе.

А почему заявка-то (рыночная лимитированная не выставилась), когда цена опустилась ниже уровня TP? Слишком быстро перепрыгнула? Возможно. Но разве это повод для биржи отклонить заявку? Какая им разница, по какой цене я выставляю? Выше или ниже планок цена сегодня не заходила, это я точно знаю. Клиринга тоже в это время не было. Ну а почему еще-то они могли мою заявку не принять? Сам я ее не снимал, поэтому SS_CANCELLED здесь совершенно не при чем.

Самое интересное, что мне эта ошибка пошла на пользу, потому что цена ушла в правильную для меня сторону, и я получил больше, чем получил бы, если бы все сработало, как было задумано. Но мне от этого не легче :)  Хорошо бы все-таки понять причину невыставления заявки.
   
Записан

Коллеги!
МТС фокусничает!
Будьте бдительны сами и предупредите всех своих хороших знакомых!
Я тоже на днях вляпался.
Схема "фокуса" описана вот здесь:
http://www.forum.sib.mts.ru/viewtopic.php?f=344&t=11381
klimov
Разработчики
Hero Member
*****
Сообщений: 810


Просмотр профиля Email
« Ответ #38 : Августа 26, 2013, 09:57:20 am »

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


Просмотр профиля Email
« Ответ #39 : Августа 26, 2013, 10:20:30 am »

Олег если говорить конкретно о статусах, то числовые значения на данный момент такие:

SS_REJECTED = 6 // Стоп отклонен биржей
SS_FAILED = 7 // Стоп не удалось выставить на биржу технически
SS_CANCELLED = 9 // Стоп снят трейдером

Но, как я говорил, эти значения могут меняться.

А статус заявки вы по идее можете посмотреть в таблице "стоп-заявки" - там ее описание будет в текстовом виде в случае какой-либо ошибки. Так же при заявке в самом ATF часто есть поле message, в котором может быть описана проблема (хоть и не всегда).
Записан
Олег
Hero Member
*****
Сообщений: 849



Просмотр профиля Email
« Ответ #40 : Августа 26, 2013, 11:03:13 am »

Задайте вопрос Брокеру, сообщите ему номер СТОПа, который не выполнился
Дальше мы совместно с ними будем разбираться

Хорошо, в будущем так всегда и буду поступать.

Я думал, что это я что-то неправильно в скрипте написал, потому и стоп выставился какой-то кривой :)  Ну а раз у меня все правильно было (а Вы соответствующий фрагмент скрипта видели), тогда, действительно, это серьезный повод задать серьезный вопрос брокеру.

По поводу описанного в предыдущем посте стопа разбирательство затевать не буду, потому что, во-первых, я его номер, разумеется, уже не помню, а во-вторых, все-таки мне эта ошибка пошла на пользу и я на ней "наварил" :)
А то еще скажут "Ах, тебе не нравится, что стоп не сработал?! Ну тогда возвращай обратно всю лишнюю прибыль"! :)


А статус заявки вы по идее можете посмотреть в таблице "стоп-заявки" - там ее описание будет в текстовом виде в случае какой-либо ошибки. Так же при заявке в самом ATF часто есть поле message, в котором может быть описана проблема (хоть и не всегда).

Спасибо, все понял. Теперь буду знать, что и где смотреть, если столкнусь с таким же событием в будущем. И в скрипт обязательно вставлю считывание поля message.


Олег если говорить конкретно о статусах, то числовые значения на данный момент такие:

SS_REJECTED = 6 // Стоп отклонен биржей
SS_FAILED = 7 // Стоп не удалось выставить на биржу технически
SS_CANCELLED = 9 // Стоп снят трейдером

Но, как я говорил, эти значения могут меняться.

Ну вот в том-то и состоит большая печалька :)
ATF возвращает пользователю голую цифру, которая ему ни о чем не говорит, тогда он лезет в документацию, чтобы выяснить что к чему, там он отсчитывает поштучно пункты в подходящей группе, чтобы понять, какое сообщение получил, и тогда получается вот так:








« Последнее редактирование: Августа 26, 2013, 11:05:19 am от Олег » Записан

Коллеги!
МТС фокусничает!
Будьте бдительны сами и предупредите всех своих хороших знакомых!
Я тоже на днях вляпался.
Схема "фокуса" описана вот здесь:
http://www.forum.sib.mts.ru/viewtopic.php?f=344&t=11381
Олег
Hero Member
*****
Сообщений: 849



Просмотр профиля Email
« Ответ #41 : Сентября 25, 2013, 09:33:08 am »

Мона попросить ссылочку на то место в документации, где вот эта тема освещена более подробно?

Записан

Коллеги!
МТС фокусничает!
Будьте бдительны сами и предупредите всех своих хороших знакомых!
Я тоже на днях вляпался.
Схема "фокуса" описана вот здесь:
http://www.forum.sib.mts.ru/viewtopic.php?f=344&t=11381
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #42 : Сентября 26, 2013, 09:44:43 am »

Более подробно вроде нигде не освещена. А что именно вызывает вопросы?
Записан
Олег
Hero Member
*****
Сообщений: 849



Просмотр профиля Email
« Ответ #43 : Сентября 26, 2013, 01:06:06 pm »

Более подробно вроде нигде не освещена. А что именно вызывает вопросы?
Вызывает вопросы, практически, полное отсутствие в документации материалов на эту тему.
А так же на тему, связанную с событием onKeyDown(). Но там хоть пример есть, хотя его не так-то легко найти, поскольку он свален в общую "кучу" вместе со множеством других примерных скриптов.

Все разъяснения на форуме - это не в счет. Проходит время, ветки "тонут", и что-либо найти уже почти невозможно.

« Последнее редактирование: Сентября 26, 2013, 01:08:21 pm от Олег » Записан

Коллеги!
МТС фокусничает!
Будьте бдительны сами и предупредите всех своих хороших знакомых!
Я тоже на днях вляпался.
Схема "фокуса" описана вот здесь:
http://www.forum.sib.mts.ru/viewtopic.php?f=344&t=11381
Страниц: 1 2 [3] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: Неточности и "туманности" в документации ATF « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!