Сергей Че (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Комментарий в поле brokerref
 
Цитата
В скриптах на lua - brokerref - это поле таблиц, в которое записывается  строка формата <код клиента>/<комментарий>, которая была  подана с транзакцией в поле CLIENT_CODE.
Что-то я не понял. При подаче транзакции в поле CLIENT_CODE надо записывать именно код клиента. Причём тут комментарий?
Комментарий в поле brokerref
 
1) в скрипте в поле brokerref я могу записать любую строку, какую захочу, или эта строка должна быть вида <код клиента>/<номер поручения>, или какая-то комбинация из кода клиента + что-то своё.2) какова длина этого поля? где-то читал, что можно записать всего 20 символов, иначе транзакция отклоняется.
О торговле фьючерсами и ГО
 
Почему ГО для покупки и ГО для продажи различаются? В чём смысл?  
О торговле фьючерсами и ГО
 
Цитата
Ziveleos написал:
Цитата
Сергей Че написал:
Я прав?
Всё верно.
В этом примере на депозите должно хватать  свободных  средств на ГО под два контракта на продажу.
По-хорошему, кнопочка "R" должна была бы проверять депозит, и если денег достаточно, делать переворот одной заявкой, а если нет - то в два шага.
Но это QUIK.
Большое спасибо!
О торговле фьючерсами и ГО
 
Ответьте пожалуйста на мой вопрос
О торговле фьючерсами и ГО
 
Цитата
Ziveleos написал:
Если денег хватает, то можно и сразу перевернуть, а если нет, то в два шага.Почитайте про кнопочку "R", она тупо выставляет заявку, приводящую к перевороту позиции (-6), не дожидаясь, пока позиция закроется и ГО вернется.
Для закреплления материала.
Если у меня позиция, скажем, +3 и я продаю сразу 5 фьючерсов, то у меня заморозятся деньги в размере только 2-х ГО, потому что 3 проданных фьючерса пойдут на закрытие 3-х купленных фьючерсов (за которые я уже заплатил три ГО) и, соответственно, на закрытие позиции, и ещё 2 фьючерса — на открытие короткой позиции 2 .
Я прав?
О торговле фьючерсами и ГО
 
Цитата
Ziveleos написал:
Под -6.
То есть переворот позиции лучше осуществлять в 2 шага
1) закрытие текущей позиции
2) открытие противоположной позиции
так?
О торговле фьючерсами и ГО
 
Цитата
Ziveleos написал:
Сергей Че, когда Вы закрыли позицию +3, ГО вернулось, и Вы смогли использовать эти деньги на ГО под -3.
А если сразу открывать -6, когда ГО еще не вернулось, депозита может не хватить.
Заявка - это ещё не сделка.
Объясните механизм, пожалуйста.
-6 = -3 (закрываю позицию) + (-3) (открываю шорт)

Почему требования по деньгам в двух случаях, когда
  1. сразу продаю 6 фьючерсов
  2. два раза продаю по 3 фьючерса
О торговле фьючерсами и ГО
 
Цитата
nikolz написал:
Если Вы продаете то что уже купили то платите лишь комиссию
Если Вы покупаете то что уже продали то аналогично  
Раньше я тогровал через QUIK, и я cталкивался с такой ситуацией, когда у меня, скажем, позиция +3, и я хотел перевернуться (нажимал кнопку "R" в стакане), и QUIK не позволял мне это сделать, выдавая окно с ошибкой, где говорилось, что мне не хватает денежных средств для переворота.
Однако, когда я разбивал переворот на 2 последовательные операции (сначала закрывал текущую позицию кнопкой "C", а потом открывал пртивоположную позицию такого же объёма), то никакого сообщения об ошибке не было, а я успешно "переворачился" до позиции -3.

Почему так? Ведь если для продажи трёх уже купленных фьючерсов никакие деньги не замораживаются, а наоборот размораживается, то эти два способа должны быть эквивалентными, однако я не мог просто "перевернуться" нажатием кнопки "R".
О торговле фьючерсами и ГО
 
Цитата
nikolz написал:
Цитата
Сергей Че написал:
Допустим, я купил 2 фьючерса с ГО = 10 000 руб. Для их покупки у меня должно быть свободно минимум 2 * 10 000 руб = 20 000 руб, которые будут заморожены при покупке.
Спустся время я хочу закрыть позицию. Для этого мне надо продать два фьючерса. И для этого у меня так же должны быть свободны 20 000 руб или нет?
Получается, чтобы торговать фьючерсом с плечом Х, мне надо иметь 2 * Х * ГО руб свободных денег? Я прав? Или я где-то что-то недопонимаю?
Прикольно, Вы хотите платить и когда покупаете что-то и когда продаете что-то?  
---------------------------
Может лучше начать с чтения учебников, а не с реальной торговли?  
А можно без ёрничания?
Я в своих размышлениях отталкивался от того, что для любой торговой операции замораживаться часть денег в виде ГО.
О торговле фьючерсами и ГО
 
Допустим, я купил 2 фьючерса с ГО = 10 000 руб. Для их покупки у меня должно быть свободно минимум 2 * 10 000 руб = 20 000 руб, которые будут заморожены при покупке.
Спустся время я хочу закрыть позицию. Для этого мне надо продать два фьючерса. И для этого у меня так же должны быть свободны 20 000 руб или нет?
Получается, чтобы торговать фьючерсом с плечом Х, мне надо иметь 2 * Х * ГО руб свободных денег? Я прав? Или я где-то что-то недопонимаю?
Торговый счёт и код клиента
 
Объясните пожалуйста простым языком, что такое торговый счёт и что такое код клиента, и почему они разные при торговле разными инструментами?
Какие таблицы QUIK автоматически очищаются после окончания торгового дня или после клиринга?
 
Цитата
Dmitry Mishin написал:
Сергей Че, Если стоп-заявка GTC к концу торгового дня не исполняется и остаётся активной, на следующий день она будет получена с сервера и отобразится в соответствующей таблице.
Ну хоть стоп-ордера не пропадают.
Спасибо.
Какие таблицы QUIK автоматически очищаются после окончания торгового дня или после клиринга?
 
Цитата
Dmitry Mishin написал:
Сергей Че, добрый день.

Система QUIK - интрадейная, и все данные, полученные с сервера, обнуляются при старте нового торгового дня.

Исключением являются таблицы "Таблица истории", "Таблица изменений значений параметров", и графики. За сохранение данных из этих окон отвечает настройка "Основные настройки..." - "Программа" - "Сохранение данных" - "Сохранять для получаемых инструментов и параметров" - "Данные, отражающие текущее состояние и всю историю изменений". При включении этой настройки информация, отображаемая в данных окнах, при смене дня очищаться не будет.
А как быть с таблицей стоп-ордеров?
Она тоже очищается с наступлением нового торгового дня?
Даже когда я создал стоп-ордер "до отмены" (GTC)?
Ведь если таблица пустая, как тогда я узнаю параметры установленного мной стоп-ордера на следующий день?
Ведь я даже не буду знать есть ли стоп-ордер, активен ли он или уже по-тихому исполнится и соответственно исчез.
И я ни о том, ни о другом не буду знать, если таблица "stop_orders" пустая.
Какие таблицы QUIK автоматически очищаются после окончания торгового дня или после клиринга?
 
Какие таблицы QUIK автоматически очищаются после окончания торгового дня или после клиринга?

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

Какие ещё таблицы самоочищаются?
Что возвращает getScriptPath()
 
Функция getScriptPath() возвращает путь, по которому находится главный запускаемый скрипт.
А если эта функция будет вызвана в модуле, который затем импортируется (require) в главный скрипт, или в другой модуль, который в свою очередь импортируется (require) в главный скрипт, то значение этой функции всегда будет одним и тем же? Это всегда путь главного скрипта?
varmargin vs real_varmargin vs total_varmargin
 
Цитата
Izotova Liliya написал:
Сергей Че, здравствуйте.
Если вам необходима вариационная маржа по конкретной позиции, то можете использовать параметр "varmargin". Для получения суммарного значения вариационной маржи по всем позициям используйте параметр "total_varmargin".
а real_margin тогда что такое?
varmargin vs real_varmargin vs total_varmargin
 
Цитата
Izotova Liliya написал:
Сергей Че, здравствуйте.
varmargin - вариационная маржа, рассчитанная с учетом       установленных границ изменения цены;
      real_varmargin - реально начисленная в ходе клиринга вариационная       маржа. Отображается с точностью до 2 двух знаков;
      total_varmargin - суммарная вариационная маржа по итогам основного       клиринга, начисленная по всем позициям. Отображается с точностью       до 2 двух знаков.
Можно поподробнее пожалуйста.
Не вижу разницы.
Просто скажите, какое поле таблицы мне запрашивать, чтобы узнать конкретную прибыль/убыток по конкретному фьючерсу.
Спасибо.
varmargin vs real_varmargin vs total_varmargin
 
varmargin vs real_varmargin vs total_varmargin
В чём отличия этих полей в твблице getFuturesHolding ?
Сколько у меня денег в данный момент времени?
 
Цитата
BlaZed написал:
Я думаю, регистрировать коллбек, который будет вызываться при на каждом чихе (при любом измнении таблицы, например, при изменении вариационной маржи, которая изменяется постоянно) -- это не совсем правильно.
Я думаю, вручную вызвать метод getFuturesLimit в тот момент, когда я закрываю позицию (выхожу из рынка), чтобы посмотреть, сколько я заработал, сравнив полученные деньги с предыдущим знанчением.
Сколько у меня денег в данный момент времени?
 
Цитата
BlaZed написал:
Спасибо
Т.е. вызов должен быть такой?
(добавил проверку на nil, если произошла ошибка при вызове функции)
Код
function get_money()
    local t = getFuturesLimit( firmid, account, 0, "" )
    return t and ( t.cbplused + t.cbplplanned + t.varmargin + t.accruedint - t.ts_comission )
    -- ну или ...
    -- return t and ( t.cbplimit + t.varmargin + t.accruedint - t.ts_comission )
end
Цитата
Если необходимо получить информацию по фьючерсному лимиту без валюты, то в качестве curr_code задается пустая строка.
Что за фьючерсный лимит без валюты?
Я же торгую и фьючами с валютной привязкой, например индекс RTS и чисто рублёвыми фьячами, например, индекс МосБиржи.
Сколько у меня денег в данный момент времени?
 
Сколько у меня всего денег в данный момент времени (на срочном рынке)?

Это "Текущие чистые позиции" + "Плановые чистые позиции" + "Вариационная маржа" + "Накопленный доход" "Биржевые сборы" ?

Т.е. в коде это
Код
local t = getFuturesLimit( ... )
return t.cbplused + t.cbplplanned + t.varmargin + t.accruedint - t.ts_comission
Я прав? Или нет?

И какие параметры у функции getFuturesLimit()
  • firmid     - ID брокера (понятно)
  • trdaccid   - торговый счёт / аккаунт (понятно)
  • limit_type - непонятно
  • currcode   - непонятно
Объясните пожалуйста  
Рыночная заявка для торговли фьючерсами
 
Цитата
Nikolay написал:
Вы определитесь уже - хотите исполнения ордера, сдвигаете цену и платите комиссию.
Я определился уже - мне нужна активная покупка, а не пассивное ожидание.
Я разрабатываю торговый робот. Поэтому мне надо именно купить/продать, а не ждать у моря погоды.
Допустим, мои индикаторы сигналят, что будет рост, а я выставляю цену в спред, в надежде, что цена до неё дойдёт и тогда я куплю без комиссии.
Так можно профукать вход в позицию.
Рыночная заявка для торговли фьючерсами
 
Из официальной документации

Рыночная заявка для торговли фьючерсами
 
Цитата
nikolz написал:
Цитата
Сергей Че написал:
 
Цитата
Nikolay  написал:
На срочной секции нет рыночных ордеров. Можно только устанавливать ордера внутри ценовых границы последнего клиринга. Причина проста - сумма ГО зависит от цены.
Поэтому устанавливая ордер далеко от цены клиринга, ГО возрастает и существенно.
 И какую цену ставить? Текущая + сколько? (для покупки)
Может быть,  текущая + (текущая + максимум)/2  ?
Лучшая цена предложения/ спроса.  
То есть ты предлагаешь перед подачей заявки сканировать стакан?
Рыночная заявка для торговли фьючерсами
 
Ой, я немного ошибся. Я хотел предложить
(текущая + максимум) / 2  для покупки
(текущая + минимум) / 2  для продажи
Подойдёт такой вариант?
Рыночная заявка для торговли фьючерсами
 
Цитата
Nikolay написал:
На срочной секции нет рыночных ордеров. Можно только устанавливать ордера внутри ценовых границы последнего клиринга. Причина проста - сумма ГО зависит от цены.
Поэтому устанавливая ордер далеко от цены клиринга, ГО возрастает и существенно.
И какую цену ставить? Текущая + сколько? (для покупки)
Может быть, текущая + (текущая + максимум)/2 ?
Рыночная заявка для торговли фьючерсами
 
Цитата
funduk написал:
0 для срочки для рыночной сделки нельзя ставить, на сколько я помню.
А разве квику не должно быть пофиг на выставленную цену, если выставлен type="M"?
Рыночная заявка для торговли фьючерсами
 
Цитата
funduk написал:
Я использую   type="M"   и завышенную цену одновременно
А может быть можно не париться с завышенной/заниженной ценой?
А то ведь не всякую цену можно указать, она должна быть в диапазоне минимуму до максимума, заданных биржей на текущий день.
Рыночная заявка для торговли фьючерсами
 
Можно ли использовать поля type="M" и price="0" в таблице, которая передаётся в функцию sendTransaction для купли/продажи фьючерсов по рыночной цене?
Или надо использовать лимитную заявки (type="L") со специально завышенной ценой для покупки и специально заниженной ценой для продажи?
Технологические времена работы биржи
 
Цитата
Nikolay написал:
Проверять на 0 цены - это плохая затея, т.к. во-первых, есть инструменты с допустимой ценой = 0, а во-вторых, для срочного рынка во время клиринга, для фондовой между сессиями цена может "бегать" от 0 до последней.
Собственно в период, когда торги не идут, данные с сервера могут приходить какие угодно. Так что уже лучше время проверять, обеспечив точность своих часов.
У меня сделано через несколько проверок, время, статус, сделки. И если один из них не проходит, то данные не считываются, т.к. получить цену 0 как рабочую - это проблема для алгоритмов.

Вы же сами выше написали, что полагаться на время - так себе затея.
Цитата
Времена часто изменяются. Они на сайте биржи в разделе расписание торгов  есть. У Валютной секции совсем другие времена, для примера.
Технологические времена работы биржи
 
Цитата
nikolz написал:
Можно сделать еще проще.
Если инструмент не торгуется, то его текущая цена равна нулю.  
А я думал, что при приостановке торгов цена инстумента просто замирает (не изменяется), а не обнуляется.
Технологические времена работы биржи
 
Ziveleos, спасибо 👍
Технологические времена работы биржи
 
Ziveleos, большое спасибо за код.

Пожалуйста, просто перечисли значения параметра TRADINGSTATUS, которые показывают, что в данный момент можно торговать.
Я запутался.
Технологические времена работы биржи
 
Хорошо, тогда очень простой вопрос.

Какие значения параметра TRADINGSTATUS говорят, что в данный момент можно торговать...
а) акциями
б) фьючерсами
Технологические времена работы биржи
 
Какие технологические времена работы биржи для акций и какие для фьючеров?

06:50:00 — 09:49:59 +
09:50:00 — 18:50:00 +
19:00:01 — 23:49:59

Так?

Или надо шаманить с параметрами TRADINGSTATE + CLSTATE ?

Порой мне кажется разработчики QUIK забыли сделать пару очевидных колбеков типа OnTradingStart() и OnTradingStop(), которые срабатываюь, когда торговля начинается/возобновляется и когда она приостанавливается, вместо того, чтобы париться с расписанием торгов или вышеупомянутыми параметрами?

Максимальное значение TRANS_ID для транзакций
 
Если бы TRANS_ID был строкой (скажем с макс. кол-вом символом символов = 255), то туда можно было записать всё, что угодно, без проблем. Даже можно было бы сериализовать небольшую таблицу. Удобно же. Тем более TRANS_ID -- это данные только для пользователя, самой системе на этот параметр наплевать, она его никак не проверяет.
Всё равно всё отправляется на сервер в строковом виде (даже числа).
Максимальное значение TRANS_ID для транзакций
 
Цитата
BlaZed написал:
Я шифрую в trans_id время, номер робота и порядковый номер транзакции
И значение всегда уникально и увеличивается постоянно в течении сессии

Что вы в нем хранить то собираетесь что вам текущего размера не хватает?
Не подскажете формулу, как вы всё это упаковываете в число?

Я пока только тренируюсь в написании своего первого торгового робота, но уже нопял, что по номеру транзакции надо уметь выявлять, что этот ордер/сделка -- следствие той самой транзакции, чтобы не спутать с ордерами/сделками, инициированными другими скриптами.
Максимальное значение TRANS_ID для транзакций
 
Где-то прочитал, что TRANS_ID -- уникальный идентификационный номер заявки со значениями от «1» до «2 147 483 647»

То есть получается от 1 до 2^32 - 1.
Это когда Квик был ещё 32-битным? Надеюсь сегодня это значение гораздо больше.
Поправьте меня, если я не прав.
Поддержка UTF-8
 
Цитата
Nikolay написал:

Явно не из-за этого. В Lua строка - это "immutable sequences of bytes". Т.е. не важно что там. Плюс, начиная с версии 5.3, есть базовая поддержка UTF8  https://www.lua.org/manual/5.4/manual.html#6.5

Если использовать Lua вне экосистемы Quik, то прекрасно работают файлы с кодировкой UTF-8. Тот же редактор ZeroBraneStudio работает в UTF-8, и не поддерживает win1251.
Ну вот! Значит нет никаких преград реализовать это в Квике!
Пожалуйста, реализуйте полноценную поддержку скриптов в колировке UTF-8 в Квике!
Поддержка UTF-8
 
Пожалуйста, очень прошу, сделайте полноценную поддержку скриптов в кодировке UTF-8, которые содержат строки и комментарии на русском языке.
Надоело постоянно переконвертировать скрипты в Windows-1251 из дефолтной UTF-8, которая уже давно стала мировым стандартом.
Как отлаживать скрипты?
 
Цитата
funduk написал:
QUIK активно противодействует отладке, падая при любом подключённом отладчике.
Я так понял, что лучший вариант из доступных -- это просто писать в лог в нужном месте скрипта.
Как отлаживать скрипты?
 
Товарищи, подскажите пожалуйста, как в редакторе Visual Studio Code последовательно строчка за строчкой отладить Lua индикаторы/скрипты, запущенные квиком?

Спасибо.
Недостаточно прав для использования модуля "Модуль неторговых поручений"
 
При запуске QUIK я каждый раз вижу сообщение
Цитата
Недостаточно прав для использования модуля "Модуль неторговых поручений".
Раньше такого не было.
Что-то не так? Что нужно сделать, что сообщение больше не появлялось?
Консольный QUIK
 
Предлагаю разработчикам QUIK создать легковесную версию терминала безо всякого графического интерфейса — просто консольная программа с интегрированной Lua виртуальной машиной для управления скриптами/торговыми роботами.

К примеру,
Код
quikluascript --start <путь к скрипту>  # чтобы запустить скрипт
quikluascript --stop  <путь к скрипту>  # чтобы остановить скрипт
quikluascript --list  # чтобы вывести список всех работающих в данный момент скриптов

Зачем нужно запускать тяжеловесный QUIK, ждать 10-15 минут, пока он стартанёт, который при этом жрёт дофига памяти и напрягает процессор, чтобы потом просто запустить скрипт и ничего не делать, держа открытым окно QUIK'a в течение торгового дня?
Индикаторы и торговые роботы для WebQUIK
 
Можно ли загрузить самописные индикаторы и торговые роботы в WebQUIK и торговать по ним?

Я пользователь Linux.
Как правильно «переворачиваться»?
 
Допустим, я купил 5 фьючерсов, и мой скрипт сигналит о падении. Надо перевернуться. Для этого надо продать 10 фьючерсов. Как правильно это сделаль?

При торговле вручную в терминале, нажатие на кнопку «Перевернуться» («R») выводит ошибку, но если нажать «Закрыть позицию» («C»), а потом сразу продать по рынку («Sm») 5 фьючерсов, то всё проходит нормально, без ошибок. Почему? Потому что резервируется больше денег, если я хочу совершить сделку с бОльшим объёмом?

В связи с этим вопрос, как правильно (без возможных ошибок) «переворачиваться» в скрипте?
1) отправлять транзакцию на продажу 10 фьючерсов
2) отправлять 2 транзакции на продажу 5 фьючерсов (закрыть лонг и открыть шорт)
3) в цикле от 1 до 10 отправлять по одной транзакции на продажу 1 фьючерса

----------
И ещё один вопрос вдогонку. Раньше был замечательный сайт luaq.ru, а теперь его нет. Жаль.
Где можно оперативно получить онлайн-справку по программированию индикаторов и скриптов на Lua в QUIK?----------

Спасибо.
Торговля фьючерсами и опционами в WebQUIK
 
Удобно ли пользоваться WebQUIK для активной торговли фьючерсами и опционами (особенно фьючерсами) на срочном рынке?
Какие индикаторы поддерживаются в версии WebQUIK? Те же, что и в стандартном QUIK? Или их меньше? Я сильно полагаюсь на индикаторы при торговле.

Причина моего рассмотрения WebQUIK -- я на работаю в Linux, и меня совсем не устраивает то, как работают windows-приложения под Wine.

Спасибо.
Сохранение в Excel-файл всех данных из любой таблицы
 
С LibreOffice Calc всё ещё проще, как оказалось.
Не надо создать промежуточный текстовый файл в формате CSV. Просто копируешь данные из квика. Потом открывашь новую таблицу в LibreOffice Calc, жмёшь "Вставить" (Ctrl+V), и умный Сalc понимает, что в буфере обмена многостроковые данные, а не просто одна текстовая строка для вставки в ячейку, и сразу предлагает распарсить содержимое как CSV и вставить данные в таблицу. 👍
Сохранение в Excel-файл всех данных из любой таблицы
 
Цитата
Ziveleos написал:
ПКМ > "Копировать всё" > вставить в "Блокнот" > сохранить как ,csv > открыть в  LibreOffice Calc.
Большое спасибо.

Маленькое дополнение от меня.
При импорте .CSV в LibreOffice Calc надо задать в качестве разделителя только табуляции (с других возможных разделителей снять галочки) и поставить галочку "Обрезать пробелы". Тогда всё идеально.
Страницы: 1 2 След.
Наверх