Про tp_spread и unfilled не могу компетентно ответить - сказал специалисту, который в этом разбирается, чтобы ответил здесь.
validbefore буду тестировать, вообще должно работать, используете функцию вы судя по всему правильно. Посмотрите в свойствах заявки в диалоге после выставления её из ATF - там вообще не заполнено это поле, или там другое время?
order["validbefore"] = getServerTime() + 3 * 60;
Олег, насчет tp_spread видимо сказалась старая сборка. Обнаружил, что был фикс, про который я уже забыл - в старый версиях параметр tp_spread не воспринимает, вместо него работает spread. В ближайшем обновлении это будет поправлено - это где-то на форуме уже проскакивало.
tp_spread = <некоторое значение>;
spread = <некоторое значение>;
Не отображено в документации, потому что это был баг - его просто не следует использовать таким образом.
#line 0 nodrawstatic 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; }
Стоп-заявки Следующие поля стоп-заявки дублируют соответствующие поля лимитированных и условных заявок: 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)
...потому что это был баг...
Ну да, действительно, выставляется именно такой тейк-профит, который мне сейчас нужен, то есть не по рыночной цене, а по "твердой". Цена сначала через него "перепрыгнула", и тейк-профит превратился в активную заявку, а уже на обратном движении цены через этот уровень, эта заявка сработала. И причем сделка совершилась именно по той цене, по которой был выставлен тейк-профит.Короче говоря, это именно то, что мне нужно, спасибо.
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);
Задайте вопрос Брокеру, сообщите ему номер СТОПа, который не выполнилсяДальше мы совместно с ними будем разбираться
А статус заявки вы по идее можете посмотреть в таблице "стоп-заявки" - там ее описание будет в текстовом виде в случае какой-либо ошибки. Так же при заявке в самом ATF часто есть поле message, в котором может быть описана проблема (хоть и не всегда).
Олег если говорить конкретно о статусах, то числовые значения на данный момент такие:SS_REJECTED = 6 // Стоп отклонен биржейSS_FAILED = 7 // Стоп не удалось выставить на биржу техническиSS_CANCELLED = 9 // Стоп снят трейдеромНо, как я говорил, эти значения могут меняться.
Более подробно вроде нигде не освещена. А что именно вызывает вопросы?