Transaq

СБО "Transaq" => Подсистема ATF => Topic started by: Олег on Января 29, 2011, 07:29:52 pm

Title: Неточности и "туманности" в документации ATF
Post by: Олег on Января 29, 2011, 07:29:52 pm
В этой теме предлагаю отмечать замеченные огрехи в документации ATF (http://transaq.ru/docs/atf/tutorial).

Поехали! :)

Quote
11. Объекты: Файлы, массивы, хэши, сделки, ордера, буфферы линий

Начиная с версии ATF 1.6 имеется ряд предопределенных объектов: массивы, хэши, файлы и буфферы линий. Синтаксис работы с предопределенными объектами я продемонстрирую на сдедующем простом примере который экспортирует данные из индикатора в файл:
Code: [Select]
extern filename = "export.txt";
var f;

function init()
{
f = new_object("file");
f.wopen(filename);
}

function calc()
{
line[0] = MovAvg(ind_ema, 9, pt_close);
f.writeLn(line[0]);
}

Этот код не работает, поскольку в первой строке пропущено "string", т.е. должно быть вот так:

extern "string" filename = "export.txt";

По умолчанию переменные типа extern воспринимаются как числа.
Кроме того, мне не понятно, куда этот файл "плюхнут", если не указать полного пути. В своих экспериментах я указывал полный путь. Как я выяснил, если файла с таким именем не существует, то он будет создан по указанному пути. А если путь не указан (как в примере), то где потом искать этот файл - в корне диска C:  или в папке установки Транзака?



Title: Re: Неточности в документации ATF
Post by: nxz on Января 29, 2011, 08:59:52 pm
В данной ситуации у меня сохраняется в папке ..\Transaq.
Title: Re: Неточности в документации ATF
Post by: Олег on Января 30, 2011, 09:13:37 pm
В данной ситуации у меня сохраняется в папке ..\Transaq.

Ну значит, по умолчанию в папке установки Транзака сохраняется. Но в любом случае, надёжнее явно задать путь к файлу.

По теме:
Разночтения в синтаксисе оператора if в общем тексте руководства и в таблице "Ключевые слова в ATF".

(http://s2.postimage.org/gpg99g4k/image.jpg) (http://postimage.org/image/gpg99g4k/)

Для else не требуется никаких expr! Если условия всех if и else if будут ложными,  выполнится код в else безо всяких условий. Следовательно,  в общем тексте правильно, а в таблице ошибка.


Title: Re: Неточности в документации ATF
Post by: Heller on Января 31, 2011, 02:02:22 pm
В Windows есть такое понятие как "рабочая директория". Если вы запускаете Transaq через ярлык, то она указывается в свойствах ярлыка, если запускаете exe-файл, то она будет равна той директории, где находится exe-файл. Транзак использует как раз эту рабочую директорию.

Да, и спасибо за эту тему - это нужное дело, будем править найденные ошибки.
Title: Re: Неточности в документации ATF
Post by: Олег on Февраля 08, 2011, 11:54:52 pm
(http://s2.postimage.org/32f3mmtb8/image.jpg) (http://postimage.org/image/32f3mmtb8/)
Title: Re: Неточности в документации ATF
Post by: Heller on Февраля 10, 2011, 01:32:14 pm
Спасибо, поправили.
Title: Re: Неточности в документации ATF
Post by: DLSDLS on Февраля 10, 2011, 05:45:20 pm
Есть предложение расширить документацию описанием всех переменных как line, close, high, low, volume  и т.д. , чтобы было собрано в одной табличке
Title: Re: Неточности в документации ATF
Post by: Heller on Февраля 14, 2011, 10:57:23 am
Да, сделаем, правда когда пока не могу сказать.
Title: Re: Неточности в документации ATF
Post by: Олег on Марта 20, 2011, 05:15:56 pm
(http://s4.postimage.org/3ypql38k/image.jpg) (http://postimage.org/image/3ypql38k/)

По-моему, логичнее было бы вот так: "Если интересуют только сделки, которые были совершены вне данного робота, можно использовать onClientTrade", поскольку:

(http://s4.postimage.org/3zrry2lg/image.jpg) (http://postimage.org/image/3zrry2lg/)
Title: Re: Неточности в документации ATF
Post by: AlexandrBK on Марта 20, 2011, 06:22:51 pm
Олег, в последнем случая надо писать "не логичнее было бы...", а просто "правильно было бы...", т.к. там просто неверное  предложение.
А еще много просто орфографических ощибок, но сейчас все так пишут :)
Title: Re: Неточности в документации ATF
Post by: Олег on Марта 20, 2011, 06:33:16 pm
Олег, в последнем случая надо писать "не логичнее было бы...", а просто "правильно было бы...", т.к. там просто неверное  предложение.

Да это я уже смягчаю. Политкорректность и всё такое :)

А еще много просто орфографических ошибок...

Об этом я и вовсе молчу... Такое впечатление, что за автором гнались и он писал, отстреливаясь на ходу :) Хотя, в целом, написано достаточно хорошо, в смысле, понятным простым языком.
Title: Re: Неточности в документации ATF
Post by: Олег on Марта 20, 2011, 06:43:42 pm
(http://s1.postimage.org/1jxjnghj8/image.jpg) (http://postimage.org/image/1jxjnghj8/)

Редактор ругается на этот скрипт вот такими нехорошими словами:

Quote
Line 9: синтаксическая ошибка, неожиданный ')'

Ну вот, даже редактор не может понять, зачем при вызове каждой новой свечки он должен делать "Ку!", в смысле
Code: [Select]
signal::alert()да к тому же ещё с пустой строкой :)
Title: Re: Неточности в документации ATF
Post by: Heller on Марта 21, 2011, 02:30:15 pm
Спасибо, исправили.
Title: Re: Неточности в документации ATF
Post by: Олег on Марта 25, 2011, 10:18:51 am
(http://s2.postimage.org/kr7wgt2c/image.jpg) (http://postimage.org/image/kr7wgt2c/)

Надо бы указать начиная с какой версии ATF доступна/будет доступна эта возможность.
Title: Re: Неточности в документации ATF
Post by: ddd323 on Марта 27, 2011, 11:38:05 pm
В руководстве в разделе объектов есть:
"resize(n) Изменить размер массива "
Массив объявляется без размера. size() определяет текущий размер. А что делает эта функция? Ограничивает размер массива или что?
А если ограничивает, то, что произойдет при попытке засунуть в массив больше элементов чем n?
Title: Re: Неточности в документации ATF
Post by: Heller on Марта 29, 2011, 11:43:59 am
Изначальный размер массива 0. Его можно расширяться функциями типа push, insert или resize. Выход за границы массива приводит к ошибке.
Title: Re: Неточности в документации ATF
Post by: nxz on Июня 18, 2011, 01:25:59 pm
Ошибка на главной!!!

http://transaq.ru/ (http://transaq.ru/)
Изменение контакстной информации

Внимание! Новый номер компании +7 (495) 380-4116 (многоканальный)
Title: Re: Неточности в документации ATF
Post by: Heller on Июня 20, 2011, 09:43:40 am
nxz, спасибо, поправил.
Title: Re: Неточности в документации ATF
Post by: Олег on Декабря 11, 2011, 10:41:30 am
(http://s9.postimage.org/9fhuhjzyz/image.jpg) (http://postimage.org/image/9fhuhjzyz/)

Наверно, полная фраза должна звучать вот так: Стоп-заявки и заявки с дополнительными параметрами ( ... ) не обрабатываются.


(http://s7.postimage.org/ldcw15w5z/image.jpg) (http://postimage.org/image/ldcw15w5z/)

Или тейк-профит? :)
Title: Re: Неточности в документации ATF
Post by: Heller on Декабря 13, 2011, 05:09:05 pm
Да, опечатки, спасибо!
Title: Re: Неточности в документации ATF
Post by: nxz on Марта 08, 2013, 03:59:24 pm
(http://upload.akusherstvo.ru/thumbs/492363.jpg) (http://upload.akusherstvo.ru/image492363.jpg)

tp_correction и  tp_extremum - попутано описание это так?
и что такое tp_level?

http://www.transaq.ru/dokuwiki/atf:заявки_и_сделки?#стоп-заявки1 (http://www.transaq.ru/dokuwiki/atf:заявки_и_сделки?#стоп-заявки1)
Title: Re: Неточности в документации ATF
Post by: Heller on Марта 11, 2013, 02:12:19 pm
Да, есть опечатка, поправим.

Насчет tp_level, то вот описания из описания соответствующей графы в хелп-файле Transaq:

Уровень цены, ожидаемый на рынке для исполнения тейк-профитной части стопа. Имеет значение при использовании «трейлинг» разновидности тейк-профита. Отстоит от локального экстремума на величину заданной пользователем коррекции, при обновлении локального экстремума смещается вслед за ним.
Title: Re: Неточности и "туманносити" в документации ATF
Post by: Олег on Июля 07, 2013, 10:23:25 pm
Во всей статье "Заявки и сделки" признак nosplit (По одной цене) упоминается всего один раз, вот здесь:

(http://s7.postimg.org/wi0ktb1nr/Snap_2013_07_07_23_07_40_007.jpg) (http://postimg.org/image/wi0ktb1nr/)


Из этого можно сделать вывод, что он только read-only. Если это так, то надо бы об этом где-то упомянуть. А если это не так, то его надо включить, например, вот сюда:

Quote
Лимитированные заявки

 Доступные для заполнения поля:

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

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

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

 price - цена. По умолчанию будет выставлена рыночная заявка.

 quantity - количество лотов в заявке

 withinpos - заявка в пределах позиции

 unfilled - заявка типа «снять остаток» (UNFILLED_CANCELBALANCE), «немедленно или отклонить» (UNFILLED_IMMORCANCEL) или «поставить в очередь» (UNFILLED_PUTINQUEUE). По умолчанию выставляются заявки «поставить в очередь».

 usecredit - использовать или нет кредит. По умолчанию используется глобальная настройка АРМ Трейдера.

 confirm_dialog - если true, то позволяет не выставлять заявку на рынок автоматически, а вывести заполненный диалог выставления заявки, в котором останется лишь нажать кнопку подтверждения. Данная возможность доступна с ATF версии 1.16.

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

а также в список констант:

(http://s11.postimg.org/4ke216q1r/Snap_2013_07_07_23_09_16_008.jpg) (http://postimg.org/image/4ke216q1r/)

И еще попутный непринципиальный вопрос. В переводе с английского "unfilled" означает "незаполненный,  неотмеченный". А здесь вроде бы подразумевается как раз обратное. Признак выбран, то есть этот чекбокс как бы заполнен. Тогда почему "unfilled"? Вроде бы должно быть "filled" ("заполненный,  отмеченнный").
Хотя, даже если это и ляп, то переделывать все равно слишком хлопотно, наверно. Овчинка выделки не стоит.
Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Июля 08, 2013, 08:47:14 pm
В документации читаем:

(http://s12.postimg.org/r24u1u561/Snap_2013_07_08_21_30_16_001.jpg) (http://postimg.org/image/r24u1u561/)

На самом деле первоначально там было

Code: [Select]
static signalled = true;
 
function onNewCandle()
{
  signalled = false;
}
 
function calc()
{
  if (not signalled and volume > volume[-1] * 2) {
    signalled = true;
    signal::alertMultiple("Объем торгов резко возрос!!!!!!!");
  }
}

но я исправил в первой строке

Code: [Select]
static signalled = true;
на

Code: [Select]
static signalled = false;
Так вроде бы логичнее.

А теперь давайте попробуем вставить оба эти варианта в Интру или Транзак.
Они дружно выдают сообщение: "Line 1: синтаксическая ошибка, неожиданный идентификатор" и причем для обоих вариантов (и с true и с false). Получается, что Транзак не узнает булев тип данных?!


(http://s17.postimg.org/xwpvrdkuz/Snap_2013_07_08_21_42_42_005.jpg) (http://postimg.org/image/xwpvrdkuz/)

(http://s14.postimg.org/5127i0t59/Snap_2013_07_08_21_42_18_004.jpg) (http://postimg.org/image/5127i0t59/)


Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Июля 08, 2013, 09:55:11 pm
Кому предыдущих двух постов показалось мало, поехали дальше :)

В документации обнаруживаем беглое упоминание поля "validbefore",  доступного для заполнения в хеше для выставления лимитированных заявок:

(http://s18.postimg.org/a0xbd81t1/Snap_2013_07_08_22_35_02_007.jpg) (http://postimg.org/image/a0xbd81t1/)

По наивности, думаем: "Ага! Классная штука! Можно выставить заявку, например, на 3 минуты, после чего она самоликвидируется, если к тому времени не будет исполнена".

Пробуем сделать вот так:

Code: [Select]
#line 0 nodraw

static Done = "Нет";

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

 function onNewCandle()
 {
   if (not isHistoryCalculated()) {return;}
 
  if (Done == "Нет")
{
var order = new_object("hash");
order["quantity"] = 1;
order["operation"] = OP_BUY;
order["price"] = 9300;
order["validbefore"] = getServerTime() + 3 * 60;
trade_action::transact(order);
Done = "Да";
}
 }

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

Ничего у нас не получается,  заявка исправно выставляется, но через 3 минуты самоликвидироваться отказывается. Ага, не сдаемся мы. Наверно, проблема в том, что срок слишком маленький выбран. В окне выставления заявок Транзака поле "Снять после..." заполняется в днях, значит и здесь надо выбрать масштаб времени покрупнее.
Пробуем вот так:

Code: [Select]
#line 0 nodraw

static Done = "Нет";

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

 function onNewCandle()
 {
   if (not isHistoryCalculated()) {return;}
 
  if (Done == "Нет")
{
var order = new_object("hash");
order["quantity"] = 1;
order["operation"] = OP_BUY;
order["price"] = 9300;
order["validbefore"] = getServerTime() + 3 * 24 * 60 * 60;
trade_action::transact(order);
Done = "Да";
}
 }

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

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

Короче говоря, снова (уже в который раз!) сталкиваемся с ситуацией, когда совершенно не понятно, как надо использовать определенную возможность, и объяснения этого в документации найти не можем, потому что там этого объяснения не существует. Вот вам беглое упоминание, намек, ну а дальше разбирайтесь сами...
Печаль :(







Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Июля 10, 2013, 10:06:10 am
Heller бесследно исчез с форума,  даже на личные письма не отвечает :)

У меня две версии:
1. ушел в очередной отпуск,
2. не покладая рук ловит многочисленных жуков :) 
А для них и рук не хватает,  и банок для них не хватает, и блондинка ему не помогает :)
Какой уж тут форум? :)
Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Июля 11, 2013, 12:32:39 am
А еще меня вот такой вопрос заинтересовал.

(http://s2.postimg.org/9bspwed8l/Snap_2013_07_11_01_27_17_004.jpg) (http://postimg.org/image/9bspwed8l/)

Вот допустим, я хочу, чтобы мой тейк-профит при достижении цены активации выставил не рыночную заявку, а лимитированную с ценой, равной цене активации. Иными словами, я хочу продать по цене никак не ниже 9240 (см. рисунок). Сейчас я немного не уверен, но вроде бы когда мы заполняем поля тейк-профита так, как показано на этом рисунке, то так оно и будет:

(http://s22.postimg.org/rtyeezkkd/Snap_2013_07_11_01_21_38_003.jpg) (http://postimg.org/image/rtyeezkkd/)

А как с помощью ATF выставить такую же заявку?
Для стоп-лосса имеется поле хеша "sl_orderprice". Если мы его заполним, заявка будет лимитированная, если не заполним, будет рыночная.
А для тейк-профита каков аналог такого же выбора? Какое поле хеша соответствует наличию или отсутствию галки "по рынку" на рисунке?
Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Июля 11, 2013, 09:22:16 am
(http://s13.postimg.org/76ypq54tf/Snap_2013_07_11_10_12_43_001.jpg) (http://postimg.org/image/76ypq54tf/)

Увы, не срабатывает такой подход :(

Хотел выставить заявку ровно в 10:00:00.

Сделал все, как у вас написано, но только заменил


Code: [Select]
var exec_time = getSystemTime();
на

Code: [Select]
var exec_time = getServerTime();
В результате, заявка почему-то попыталась выставиться на полминуты раньше назначенного срока. Разумеется, она была отклонена с сообщением "Эта сессия не идет". Допускаю, что пока сессия не идет, ATF считает, что системное время это и есть время сервера.

А правда, как решить эту задачу?
В смысле, как сделать так, чтобы действие совершилось ровно в 10:00:00 по времени сервера, но при этом запустив скрипт до начала торговой сессии?
Title: Re: Неточности и "туманности" в документации ATF
Post by: nxz on Июля 11, 2013, 07:39:10 pm
А как с помощью ATF выставить такую же заявку?
Для стоп-лосса имеется поле хеша "sl_orderprice". Если мы его заполним, заявка будет лимитированная, если не заполним, будет рыночная.
А для тейк-профита каков аналог такого же выбора? Какое поле хеша соответствует наличию или отсутствию галки "по рынку" на рисунке?

Олег, вот здесь немного обсуждали этот вопрос http://www.transaq.ru/forum/index.php?topic=414.msg6122#msg6122 (http://www.transaq.ru/forum/index.php?topic=414.msg6122#msg6122)
Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Июля 11, 2013, 09:07:30 pm
А как с помощью ATF выставить такую же заявку?
Для стоп-лосса имеется поле хеша "sl_orderprice". Если мы его заполним, заявка будет лимитированная, если не заполним, будет рыночная.
А для тейк-профита каков аналог такого же выбора? Какое поле хеша соответствует наличию или отсутствию галки "по рынку" на рисунке?

Олег, вот здесь немного обсуждали этот вопрос http://www.transaq.ru/forum/index.php?topic=414.msg6122#msg6122 (http://www.transaq.ru/forum/index.php?topic=414.msg6122#msg6122)

Спасибо за ссылку, но мне от этого не легче :)

Та тема заканчивается вашими словами:
Про "tp_spread" в документации нет ни слова, дополните пожалуйста.
Попробовал в хэше заявки указать "tp_spread", но заявка все равно выставляется по рынку.

Действительно, такого понятия в документации нет вообще до сих пор. Попробовал поискать, и вот результат:

(http://s7.postimg.org/ars92r3uf/Snap_2013_07_11_22_04_32_001.jpg) (http://postimg.org/image/ars92r3uf/)




Title: Re: Неточности и "туманности" в документации ATF
Post by: Heller on Июля 15, 2013, 07:34:23 pm
Про tp_spread и unfilled не могу компетентно ответить - сказал специалисту, который в этом разбирается, чтобы ответил здесь.

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

validbefore буду тестировать, вообще должно работать, используете функцию вы судя по всему правильно. Посмотрите в свойствах заявки в диалоге после выставления её из ATF - там вообще не заполнено это поле, или там другое время?
Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Июля 15, 2013, 08:32:02 pm
Про tp_spread и unfilled не могу компетентно ответить - сказал специалисту, который в этом разбирается, чтобы ответил здесь.

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


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

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

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

Попробую немного поэкспериментировать, уточню, потом отпишусь.
Title: Re: Неточности и "туманности" в документации ATF
Post by: Heller on Июля 22, 2013, 06:53:06 pm
Олег, насчет tp_spread видимо сказалась старая сборка. Обнаружил, что был фикс, про который я уже забыл - в старый версиях параметр tp_spread не воспринимает, вместо него работает spread. В ближайшем обновлении это будет поправлено - это где-то на форуме уже проскакивало.

Про unfilled посмотрите описание трех констант UNFILLED_CANCELBALANCE, UNFILLED_IMMORCANCEL, UNFILLED_PUTINQUEUE вот здесь (http://www.transaq.ru/dokuwiki/atf:%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D1%8B). Более подробно должно быть в chm-файле, описывающим свойства заявок и прилагающемся к трейдеру.
Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Июля 23, 2013, 04:21:59 pm
Олег, насчет tp_spread видимо сказалась старая сборка. Обнаружил, что был фикс, про который я уже забыл - в старый версиях параметр tp_spread не воспринимает, вместо него работает spread. В ближайшем обновлении это будет поправлено - это где-то на форуме уже проскакивало.

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

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

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

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

(http://s10.postimg.org/56w8l56ud/Snap_2013_07_23_17_11_34_001.jpg) (http://postimg.org/image/56w8l56ud/)

"Будет поправлено" это когда еще, а документацией все пользуются уже сейчас и каждый наступает на одни и те же грабли.
Почему бы там честно не сделать небольшую приписочку, дескать, вкралась ошибка, в скором будущем будет исправлено, а пока вместо того-то и того-то пишите в скриптах так-то и так-то?
Title: Re: Неточности и "туманности" в документации ATF
Post by: Heller on Июля 24, 2013, 05:12:46 pm
Не отображено в документации, потому что это был баг - его просто не следует использовать таким образом.
Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Июля 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 или какой-то другой?


Title: Re: Неточности и "туманности" в документации ATF
Post by: Heller on Июля 25, 2013, 10:38:47 am
Не, ну как-то описывать поведение бага было бы не хорошо. Рекомендовать пользователям использовать неправильное - это значит толкать их на написание будущих ошибок. Вы сегодня напишете "spread", а через неделю версия обновится и вы будете не понимать почему то что работало уже не работает, и будете тратить время и деньги. В подобных ситуациях я всегда предпочитаю оставлять в документации правильное описание. Другое дело, что именно в данной версии почему-то обновление задержалось.
Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Августа 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 здесь совершенно не при чем.

Самое интересное, что мне эта ошибка пошла на пользу, потому что цена ушла в правильную для меня сторону, и я получил больше, чем получил бы, если бы все сработало, как было задумано. Но мне от этого не легче :)  Хорошо бы все-таки понять причину невыставления заявки.
   
Title: Re: Неточности и "туманности" в документации ATF
Post by: klimov on Августа 26, 2013, 09:57:20 am
Задайте вопрос Брокеру, сообщите ему номер СТОПа, который не выполнился
Дальше мы совместно с ними будем разбираться
Title: Re: Неточности и "туманности" в документации ATF
Post by: Heller on Августа 26, 2013, 10:20:30 am
Олег если говорить конкретно о статусах, то числовые значения на данный момент такие:

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

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

А статус заявки вы по идее можете посмотреть в таблице "стоп-заявки" - там ее описание будет в текстовом виде в случае какой-либо ошибки. Так же при заявке в самом ATF часто есть поле message, в котором может быть описана проблема (хоть и не всегда).
Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Августа 26, 2013, 11:03:13 am
Задайте вопрос Брокеру, сообщите ему номер СТОПа, который не выполнился
Дальше мы совместно с ними будем разбираться

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

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

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


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

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


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

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

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

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

(http://s21.postimg.org/vax0an937/Snap_2013_08_26_11_34_34_001.jpg) (http://postimg.org/image/vax0an937/)






Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Сентября 25, 2013, 09:33:08 am
Мона попросить ссылочку на то место в документации, где вот эта тема освещена более подробно?

(http://s21.postimg.org/krjlubqsj/Snap_2013_09_25_10_28_37_001.jpg) (http://postimg.org/image/krjlubqsj/)
Title: Re: Неточности и "туманности" в документации ATF
Post by: Heller on Сентября 26, 2013, 09:44:43 am
Более подробно вроде нигде не освещена. А что именно вызывает вопросы?
Title: Re: Неточности и "туманности" в документации ATF
Post by: Олег on Сентября 26, 2013, 01:06:06 pm
Более подробно вроде нигде не освещена. А что именно вызывает вопросы?
Вызывает вопросы, практически, полное отсутствие в документации материалов на эту тему.
А так же на тему, связанную с событием onKeyDown(). Но там хоть пример есть, хотя его не так-то легко найти, поскольку он свален в общую "кучу" вместе со множеством других примерных скриптов.

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