Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
This is the response from the Bitfinex team: The only requirement for the nonce is that it has a larger value than the previous nonce. The code used to generate a nonce used looks like it would produce a larger number each time, but perhaps a greater nonce was inadvertantly entered at some point. Is there anything else in the code that may conflict with this method of generating a nonce? Are there multiple processes running using the same API key? Due to the fact that the nonce needs to be increasing each time, if you are running multiple concurrent integrations it is recommended to use a different API key for each one.
The nonce that is generated in the library is by design bigger after each call. There should be no reason why it would suddenly not be bigger than the last. Do you maybe run some other application or 3rd party app which uses the same API key? The nonce is bound to the API key, so if you're using it for multiple purposes they might interfere with eachother.
Нежелательно использовать один API key в разных программах. Будет периодически проблема Nonce is too small при выставлении заявок.
При выставлении заявок, брокер снимает заявки и присылает сообщение.
08.10.2018 15:55:34 1801 IB: Order Canceled - reason:
08.10.2018 15:10:04 1801 IB: Order held while securities are located.
Остановите одного из агентов, обратитесь к брокеру, вероятнее всего агенты выставляют встречные заявки, но причину сообщения может сказать только брокер.
В течении дня Вы накапливаете сделки по инструменту(тиковый кеш инструмента).
Позже, при отключении от поставщика он записывается в файл.
При подключении к поставщику данных могут перезапрашиваться сделки по инструменту за текущий день.
В этот момент могут приходить сигналы на бар и программа будет выдавать сообщение "Пропущен сигнал входа/выхода ..."
При этом Вы точно знаете, что данный сигнал был исполнен.
Как правило, это разовое сообщение, на логику торговли влиять не будет, если в настройках поставщика данных стоит Блокировка заявок, баров
Warning | Server returned an error: {"message":"Invalid order: not enough exchange balance for
Биржа Bitfinex присылает сообщение о нехватке средств при выставлении заявки
20:14:56.95[12]INFO :101:Warning:Script::Не могу выполнить по рынку сигнал "ЗакПозПоStoLos2" для скрипта "2ma_traling1"
Это сообщение выдается, когда в Менеджере Команд нажимается кнопка "Выполнить по рынку", но активной условной заявки уже нет. Например она не принята, исполнена, отменена или не принята системой. Сначала нажмите "Выполнить", чтобы заявка стала активной и после этого "Выполнить по рынку".
Работы вызваны многочисленными просьбами пользователей.
Пользователям хотелось бы одновременно ставить несколько заявок закрытия и изменения одной позиции, к примеру войти в позицию по цене 100, по 90 добрать позицию, а по 80 закрыть всю позицию, при этом частично закрыть позицию по 110 (выше рынка продаем, ниже рынка покупаем) и одна заявка по стоп-лосс.
Мы начали работу в этом направлении, в связи с чем, в версии программы 2.1 можно выставлять несколько заявок ИзменитьПо на одну позицию.
Таким образом, в данный момент, если, например, при использовании блока Закрытие позиции(любой тип) и ИзменитьПо(На уменьшение позиции), выставить сигнал одновременно, то внутри бара образуется Переворот позиции двумя заявками, и программа может выдать сообщение
В окне сообщений: 16:17:51.62[580]DEBUG:Попытка перевернуть позицию на 19998 баре, хотя это не разрешено.
Сообщение означает, что скрипт выдает ДВА сигнала для одной позиции на ОДИН бар.
Сигнал на Изменение позиции и Закрытие позиции, что приводит к неверной работе программы.
Если появляется эта строка в лаборатории - это означает, что корректно скрипт работать не сможет.
Программа об этом сигнализирует, но парировать подобные вещи пока не умеет.
До начала работ, программа всегда выставляла только один сигнал на Бар, из всех выданных скриптом, сейчас пользователю рекомендуется следить за сигналами самостоятельно из скрипта и не выставлять на один бар множество сигналов, способных не только закрыть позицию, но и перевернуть.
Пример. Вы вошли в позицию Лонг по 100 на 5 лотов. Выставили заявку на уменьшение позиции на 5 лотов. Выставили заявку на закрытие позиции.
Единственный рабочий вариант внутри бара, пока такой: Частичный докуп. Вошли на 2 лота по 100, докупить 3 по 90 и закрыть позицию по 110 на 5 лотов.
Пока по прежнему Одновременно поставить две заявки закрытия одной позиции рекомендуется только если это будут две условные заявки из которых программа сделает связанную заявку. Обе условные (стоплосс и тейкпрофит), с одинаковым количеством. Только этот тип заявки полностью работает внутри одного бара.
20:36:00.37:206:Error:Агент 'XXX':111111111:[CGate:C001111]:Заявка 222222222 не может быть отменена.
Заявку, которая находится на исполнении у биржи, отменить нельзя.
Например, если были проблемы с интернетом или на слишком быстрых пересчетах, об исполнении заявки не пришла информация(еще не пришли сделки по заявке).
На пересчете скрипт посчитал, что необходимо снять заявку для выставления новой.
Если заявка уже исполнена или были проблемы с интернетом, придет такое сообщение.
Если Вы видите в очереди заявок контрагентов, а брокер присылает это сообщение, то обратитесь к брокеру. Возможно сообщение прислали по ошибке, а брокер имел ввиду что-то другое.
Но как правило сообщение означает именно то, что написано. Очередь заявок пуста или в ней не достаточно ликвидности.
Сообщение при использовании QuikLua
Вероятно, в потоке котировок отсутствует нужный инструмент.
В Quik, в таблице "Текущие торги", есть колонка шаг цены.
Добавьте инструмент в таблицу, если до этого он не был добавлен, посмотрите, какой указан Шаг.
Если Шаг 0, зайдите в пункт меню Система/Настройки/Основные настройки/Программа/Получение данных/ и выберите пункт "Исходя из настроек открытых пользователем таблиц".
Если после этого действия в таблице 0, или есть правильное значение, но Вы продолжаете получать сообщение "Цена не кратна", нужен архив рабочего места QUIK без ключей доступа и файла chm. Закройте QUIK, сделайте архив и пришлите в центр поддержки https://www.tslab.pro/support или сразу на quiksupport@arqatech.com или брокеру.
Условная заявка по сигналу 'xL' может не сработать, т.к. текущая цена на рынке 65505 (Цена условия 65801)
Если сообщение приходит до начала торгов, сразу при подключении к брокеру, т.е. во время загрузки данных, то беспокоиться рано. После прогрузки всех данных по инструменту, сообщение может исчезнуть.
Сообщение означает именно то, что написано. Т.е. в данном примере выставляется условная заявка (стоп-лосс) на закрытие длинной позиции по цене 65801, когда цена на рынке уже 65505. Если сообщение пришло на открытии торгов, то это означает, что рынок открылся с гепом. Фактически, условная заявка на продажу, сразу становится лимитной на продажу(65801минус Указанное проскальзывание) и согласно очереди заявок не будет выполнена сразу, а будет стоять(пока сигнал ее выставления выдает Агент), до тех пор, пока до нее не дойдет очередь. Если сообщение пришло внутри дня, при очередном выставлении заявки, это означает, что в скрипте не продумано выставление условных заявок и они заведомо выставляются с худшей ценой(Плохие заявки). Можно намеренно выставлять такие заявки, чтобы воспользоваться встроенными механизмами программы TSLab, ниже рассмотрим, что можно настроить, что бы исполнить такую заявку. В торговых настройках агента (Управление агентами - кнопка Торговые настройки): "Автозакрытие" Данная настройка позволяет автоматически закрывать позицию, если заявка закрытия была не исполнена. В данном случае заявка будет стоять один бар, а на следующем баре пойдет замещающая заявка по рынку. "Проскальзывание" В данном случае, если бы проскальзывание стояло 300 шагов, то лимитная заявка на продажу бы выставилась по цене 65501(при условии, что шаг 1 пункт) и исполнилась бы незамедлительно. "Ждать исполнения закрытия", например, если бы Автозакрытие стояло 5 баров, а ждать исполнения 4 бара, то лимитная заявка бы простояла 4 бара, а на пятом баре была бы заменена на заявку по рынку.
Стандартное сообщение программы.
Самая высокая вероятность получить сообщение, если было отключение от сервера брокера/биржи.
При подключении, на загрузке, программа получает статусы своих заявок.
Одновременно, получаем сделки по инструментам и рисуем графики.
Агент, загружая график, вероятно, решил отменить заявку, но статус к заявке либо не пришел еще, либо был изменен.
Например, если стояла условная заявка, она могла стать активной, т.е. сработало условие и брокер направил уже лимитную заявку на биржу.
Или, например, заявка уже была исполнена, и на загрузке пришла заявка, а сделки к ней еще не загрузились.
После загрузки всех данных, сообщение должно пропасть.
В настройках поставщика данных есть параметр "Блокировка заявок, сек".
Убедитесь, что в параметре стоит несколько секунд, это задержка на старте подключения к брокеру, прежде чем будут отсылаться запросы брокеру.
Сообщение может встречаться и во время торговли, не только на загрузке данных.
У Вас уже стояла заявка, на пересчете скрипт выдает сигнал отмены, или перевыставить или сменить цену.
Т.е. любые изменения.
Но пока ваш скрипт считался, пришло с рынка уведомление о том, что заявка изменилась.
Например, могло измениться количество, т.е. уже начали исполнять. Или она уже была снята.
Чтобы скрипт не выдавал сигналы по уже несуществующей ситуации, в конце пересчета скрипта, сигналы, выданные скриптом по инструменту, отменяются и выдается это сообщение.
Сообщение может выглядеть так: "В данном режиме торгов запрещено выставлять сделки по данному клиенскому счету". Или так "Неверный код клиента" при подключениях Quik. "Неизвестный код клиента" - чаще означает, что код клиента не указан на бирже, неактивен. В данном случае обратитесь к брокеру. С личными кабинетами данные сообщения никак не связаны. Ключ к программе работает сразу, как только появляется в личном кабинете.
Сообщение присылает брокер или биржа и оно чаще всего указывает, что именно данного инструмента нет на указанном счете. При выборе инструмента, инструмент выбирается именно со счета. При этом все инструменты сразу видны на всех счетах. Деньги могут быть видны только на одном из счетов(основном, например ИИС). В итоге это вносит некоторую неразбериху.
Самое правильное действие будет: позвонить брокеру и спросить: "по какому из счетов я могу торговать именно этим инструментом?" Узнав эту информацию дать своим счетам в программе TSLab, в таблице Торговля - Счета, имена, с помощью которых будет легко понимать, какой счет выбирается.
Скриншот с конечным вариантом: Сообщение так же может указывать, что данными инструментами Вам действительно запрещено торговать(или правильнее сказать, - не разрешено) по каким-то причинам, это стоит выяснить у брокера.
Для пользователей QuikDDE, сообщения могут означать, что из Quik в TSlab не приходят счета. Подгрузите в Quik конфигурацию и присвойте имена счетам.
Для пользователей SmartСom, Выставлять заявки на счете МО нельзя, деньги видны на нем. Счет MS - для торговли ММВБ(рынок акций). FR - для торговли на ФОРТС(Рынок фьючерсов).
Т.е. если резюмировать варианты:
Идёт попытка выставления заявки на счете, на котором нельзя торговать данным инструментом или код клиента не прописан на бирже. Сообщение присылает брокер или биржа. В зависимости от брокера сообщение может различаться.
https://support.binance.com/hc/en-us/articles/115000594711-Trading-Rule На примере XRPBTC, правила такие, минимум 1 XRP но общая сумма не ниже 0.001 BTC Если поставить заявку на 1 XRP , то будет данная ошибка, так как позиция менее 0.001BTC
Ситуации бывают разные, но типичная проблема в слишком большом проскальзывании в условных заявках, когда заявка активируется и идет лимитная заявка на биржу.
Управление агентами - Кнопка Тн - посмотрите, какое проскальзывание стоит, уменьшите его. Если в настройках агента не установлено проскальзывание, посмотрите абсолютное проскальзывание непосредственно в блоке входа в позицию, указанное в блоке проскальзывание имеет приоритет, перед проскальзыванием всего агента, установленного в Торговых Настройках.
Лимиты инструмента (Лимит Верхний, Лимит Нижний) транслирует биржа в котировках. Вид | Котировки Лимиты изменяются в клиринг. Их еще называют "Планки рынка" максимальная и минимальная цена в текущей сессии для инструмента. Если сообщение "Цена сделки вне лимита" пришло при выставлении заявки с типом "По рынку" :
-Можно получить сообщение на старте торгов. Когда котировок еще нет(лимиты неизвестны). А программе нужно выставить рыночную заявку.
В этом случае программа берет последнюю известную цену лучшей покупки/продажи и добавляет к цене 4% - выставляя лимитную заявку.
Если очередь заявок еще не сформирована, используется последняя известная цена.
- Отдельный вариант, при использовании QuikLua Данное сообщение может означать, что в Quik не настроено получение котировок по этим инструментам. Проблема в следующем, тики будут идти все равно, так как есть обезличенные сделки, а котировки идут, только если в Quik был создан запрос на котировки.
Настройте в Quik таблицу: Пункт главного меню "Система" > Заказ данных > Поток Котировок
Котировки нужны для определения рыночной цены и значения планок рынка.
Опционы "Цена сделки вне лимита" теоретически можно получить по опциону У некоторых брокеров есть возможность ВКЛЮЧИТЬ проверку лимита цен. По умолчанию можно ставить любые цены. Через интерфейс Quik это не настроить судя по всему, по крайней мы не увидели. Там примерно такие правила: если цена заявки отличается на 10% от теор.цены -- тогда "Цена сделки вне лимита". К сожалению, теор.цены иногда настолько неадекватны, что это ограничение просто перекрывает "кислород". А иногда спасает от колоссальных убытков.
Сообщение превышено время ожидания.
При выставлении заявки TSLab ожидает получить 2 сообщения: 1. подтверждение транзакции с номером заявки 2. информацию из потока заявок с данными заявки. Ждет TSLab по умолчанию 40 сек (время задается в Файл | Настройки программы | Торговля , параметр Таймаут заявки). Если хотя бы одно значение не пришло, появляется это сообщение. В результате неизвестно, к какой заявке принадлежит комментарий, а также состояние заявки. Более того, если из скрипта продолжает выдаваться сигнал, программа снова пошлет транзакцию брокеру. Таким образом может набраться не контролируемая позиция. Возможные причины:
Антивирус нужно настроить таким образом, чтобы он не проверял скаченные данные из интернета.
Брандмауэр необходимо поставить программу TSLabApp в исключения
Интернет или ошибки работы сервера брокера.
если не установлены обновления windows
Настройка автоматической синхронизации времени по интернету(актуально для крипто бирж).
Региональные настройки не соответствуют физическому месту нахождения компьютера. В лог файле программы есть похожие записи: 'Can't parse date-time: '9/19/2016 12:23:20PM. Решение: настроить региональные настройки, например, в России нет времени PM,AM . В России ЧЧ:ММ:СС Общие настройки компьютера для России Обновление регионов для России в 2016 А если компьютер физически находится в США, то настройка времени PM,AM будет верной.
Не хватает потоков процессора. В лог файле программы Инструменты | Папка с логами - файл tslab.log сопровождается сообщениями DEBUG:State 48. Try to recalc again... Can't recalc because calculation is in progress yet... Решение: поставить настройку больше, таким образом, чтобы процессор успевал обрабатывать все поставленные задачи.
При использовании коннектора QuikDDE, в первую очередь сообщение означает, что сломан DDE. Необходимо загрузить эталонную конфигурацию Quik Не допускаются какие-либо изменения в конфигурации Quik. Для данного коннектора Необходимо сначала проверить Конфигурацию, потом переходить к остальным пунктам поиска проблемы.