Ирина (Все сообщения пользователя)

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

Страницы: 1 2 3 След.
Тэйк-профит: старые песни о защитном спрэде, Возможные сюрпризы при совершении сделки по тэйк-профиту
 
Цитата
Николай написал:
Просьба не вводить в заблуждение разработчиков Квика делать что эксклюзивное  под всякий неликвид (не вижу смысла рассматривать китайские иероглифы и тем более пытаться там что то заработать. Фьюча ртс по горло хватает!)..
Разберитесь о чем речь идет, а потом крякайте.
Тэйк-профит: старые песни о защитном спрэде, Возможные сюрпризы при совершении сделки по тэйк-профиту
 
Zoya Skvorcova, здравствуйте.
Цитата
Zoya Skvorcova написал:
Опишите, как на Ваш взгляд должен рассчитываться тейк профит
Цитата
Alexey Ivannikov написал:
от достигнутого экстремума минус отступ минус спред
Цитата
Zoya Skvorcova написал:
и мы зарегистрируем пожелание
Пожелание зарегистрировано 8 месяцев назад:
Цитата
Alexey Ivannikov написал:
Ваше пожелание зарегистрировано.  Мы постараемся рассмотреть его и  сообщить Вам результаты анализа. Впоследствии, по результатам анализа,  будет приниматься решение о реализации пожелания в будущих версиях ПО.
Вот я и интересуюсь "результатами анализа".
Тэйк-профит: старые песни о защитном спрэде, Возможные сюрпризы при совершении сделки по тэйк-профиту
 
Цитата
Ирина написал:
При отсчете отступа
Поправка: не "отсчет отступа", а "расчет цены выставляемой лимитки", конечно.
Тэйк-профит: старые песни о защитном спрэде, Возможные сюрпризы при совершении сделки по тэйк-профиту
 
Как дела с отступом от экстремума для тейк-профит?
Уже пару раз попадала на покупку si по завышенной цене из-за сделки, "вылетевшей" из общего потока цены. При отсчете отступа от таких вот сделок никакой защитный спред не нужен - бесполезен. При небольшом отступе и скрипт луа не спасает - просто не успевает заменить заявку.
Сделайте нормальный расчет. Пожалуйста!
Обновился до 7.23, Некоторые проблемы
 
Цитата
Zoya Skvorcova написал:
Ирина ,добрый день.Скорее всего у Вас WinXP.Проблема решена в версии 7.23.2 / Доступно по ссылке
Добрый.
Да, XP! Огромное спасибо!
Обновился до 7.23, Некоторые проблемы
 
HELP!!!
Сегодня загрузила обновление. Версия 7.23.1.4. И вот с 9 утра не могу соединиться с сервером. После ввода пароля QUIK просто зависает. Если не логиниться, то работает. До обновления всё было в порядке. Что делать? Как быстрее решить проблему? Как откатить версию?
SearchItems
 
Цитата
Sergey Gorokhov написал:
Не понятно какого ответа Вы ожидаете.
Ну раз уж не ссылки на документацию, то хотя бы подтверждения, может, нюансов каких-то, т.к. информацию я нашла в неофициальном источнике... Но Ваш ответ лучше - смешнее!  :lol:  
SearchItems
 
Sergey Gorokhov, спасибо.

Цитата
Sergey Gorokhov написал:
Данные индексируются ровно в том порядке как поступили с биржи.
Это Вы о расположении найденных элементов, видимо.
Я интересуюсь, как индексируется таблица, созданная SearchItems? Нагуглила уже, что числами, начиная с 1. Но где это указано?
SearchItems
 
И ещё. Последовательность перебора элементов от стартового до конечного соблюдается или в хаотичном порядке?
SearchItems
 
Индекс конечного элемента, заданный переменной или функцией, вычисляется 1 раз перед поиском, или его изменение во время работы SearchItems будет учтено? Например, в SearchItems("all_trades", 0, getNumberOf("all_trades")-1, fn).

Откуда можно узнать, как индексируется таблица, возвращаемая SearchItems?
QLUA, вопросы начинающих.
 
Спасибо за подробные ответы,  
QLUA, вопросы начинающих.
 
BlackBoar, спасибо большое за объяснения! Уже раза 3 всё перепоняла... :)
А как
Цитата
BlackBoar написал:
отделять данные от кода
?
QLUA, вопросы начинающих.
 
BlackBoar, т.е. получается, 1 вариант - освобождение памяти; 2 - уменьшение работы ф-ции. Ясненько, спасибо.
Цитата
BlackBoar написал:
Если вам надо чтобы экземпляр таблицы точно сохранялся тот же между вызовами
Да нет, параметры нужны только этой ф-ции. Но таблица сама по себе ссылочный тип данных (на них локализация вообще эффект оказывает?) - не размножается, не мусорит. Вот я и подумала, зачем её при каждом вызове заново создавать...
Цитата
BlackBoar написал:
На практике же время на формирование этой таблицы не так чтобы было заметно на фоне времени обработки заявки ))
Это да. "Эстетикой" интересуюсь. :)
QLUA, вопросы начинающих.
 
Совсем дурной вопрос к опытным... Подскажите, пожалуйста, как быстрее для выполнения кода и грамотнее с т.з. программирования: задавать неизменные параметры транзакции каждый раз при вызове функции, зато локализованные внутри неё, или обращаться к внешним параметрам, локальным для внешнего блока?
Пример:
Код
local function OpenOrders(order_op)
   local order_ps = {   ['Торговый счет'] = 'SPBFUTXXXXX',
                  ['CLASSCODE'] = 'SPBFUT',
                  ['Инструмент'] = 'SiZ8',
                  ['TRANS_ID'] = '333',
                  ['ACTION'] = 'Ввод заявки',
                  ['К/П'] = order_op,
                  ['Количество'] = '1',
                  ['Переносить заявку'] = 'Да',
                  ['Дата экспирации'] = '20181221'   }
   for i=price1,price2,step do
      order_ps['Цена'] = tostring(i)
      local res = sendTransaction(order_ps)
   end
end
   
--ИЛИ
   
local order_ps = {   ['Торговый счет'] = 'SPBFUTXXXXX',
               ['CLASSCODE'] = 'SPBFUT',
               ['Инструмент'] = 'SiZ8',
               ['TRANS_ID'] = '333',
               ['ACTION'] = 'Ввод заявки',
               ['Количество'] = '1',
               ['Переносить заявку'] = 'Да',
               ['Дата экспирации'] = '20181221'   }
local function OpenOrders(order_op)
   order_ps['К/П'] = order_op
   for i=price1,price2,step do
      order_ps['Цена'] = tostring(i)
      local res = sendTransaction(order_ps)
   end
end

Тэйк-профит: старые песни о защитном спрэде, Возможные сюрпризы при совершении сделки по тэйк-профиту
 
Цитата
Alexey Ivannikov написал:
При таком сценарии при сильном проскальзывании цены есть все шансы совершить операцию значительно ниже достигнутого экстремума.
Да не, там при переставлении "ТП и СЛ" стоп-цена и цена СЛ тоже меняется на = достигнутый 'min/max +/- отступ' - не вдалась в подробности... Не суть. Нужна альтернативная цена исполнения заявки типа ТП.
Тэйк-профит: старые песни о защитном спрэде, Возможные сюрпризы при совершении сделки по тэйк-профиту
 
Alexey Ivannikov, Вы неправильно поняли моё сообщение. Настаиваю я как раз на реализации ранее обсуждавшегося расчета цены исполнения ТП (от достигнутого экстремума минус отступ минус спред). И привожу пример того, как проблематично добиться такого алгоритма исполнения доступными сейчас средствами, через Lua и заявку "ТП и СЛ".  
Тэйк-профит: старые песни о защитном спрэде, Возможные сюрпризы при совершении сделки по тэйк-профиту
 
Цитата
Лёня Голиков написал:
вы отдаёте себе отчёт что ваше пожелание во много раз увеличивает возможность того что ваша заявка останется висеть в стакане и не будет исполнена?
Безусловно, Леонид! Это то, что требуется.
Ну а убыточность зависит от алгоритма торговли. Например, для открытия позиции на покупку я выставляю сетку ТП-ов с разными отступами и стоп-ценой. При хорошем проскальзывании получаю несколько сделок (допустим, 3 вместо 1) по 1 минимальной цене. В случае, если они не закрываются, и цена поворачивает обратно вниз, у меня это покупка 2х доп. путов и минус 2 сделки при достижении следующего min, пониже.
Alexey Ivannikov предложил
Цитата
Alexey Ivannikov написал:
опционального включения альтернативной логики исполнения тейк-профита
Т.ч. ловля дна на неликвиде не пострадает. :)

Придумала вместо запрошенного тут альтернативного расчета ТП использовать заявку "ТП и СЛ" так, чтобы исполнение всегда происходило по СЛ, и т.о. использовалась его фиксированная цена. Но эт только через скрипт, т.к. необходимо при каждом приближении к "min/max +/- отступ" заменять рассчитывающийся "ТП и СЛ" на новый со стоп-ценой ТП = ранее достигнутому min/max. И можно пролететь... не на каждой же сделке после достижения стоп-цены его переставлять... извращенство... недоступное для ручной торговли...
Т.ч. настаиваю на реализации!
QLUA, вопросы начинающих.
 
Цитата
Sergey Gorokhov написал:
Такой возможности нет.Цены Вы можете получить с графиков.
Спасибо.
QLUA, вопросы начинающих.
 
Возможно из таблицы обезличенных сделок получить сделки за предыдущие торговые сессии?
QLUA, вопросы начинающих.
 
Цитата
Ирина написал:
зачем тогда этот OnStop()
Совсем разобралась. Вопросы сняты.
BlackBoar, ещё раз спасибо. "Leaving Main" - гениально! :)
QLUA, вопросы начинающих.
 
Цитата
BlackBoar написал:
В догонку, то что "Даже после перезагрузки компьютера при повторном включении QUIK у скрипта горит зеленая стрелочка" - так и быть должно. Ссылку уже потерял но тоже в одной из соседних тем есть ответ разработчиков, если закрыть квик с запущеным скриптом он перезапустится при запуске квика.
Опередили. Спасибо! Ну и дела! И зачем тогда этот OnStop()...
QLUA, вопросы начинающих.
 
BlackBoar, а сами скрипты у Вас останавливаются? У меня - нет. Т.е. тут и fRun в "никуда" уходит... Спасибо за ваши эксперименты по теме - интересно.
В моем случае, думаю, просто что-то неправильно функционирует...
QLUA, вопросы начинающих.
 
OnStop() не срабатывает при выключении QUIK. Даже после перезагрузки компьютера при повторном включении QUIK у скрипта горит зеленая стрелочка. В чем может быть дело?
На кнопку "Остановить" реагирует правильно.
Код
local fRun = true
function main()
   while fRun do
      message("Прошла минута")
      sleep(60000)
   end
end
function OnStop()
   fRun = false
   message("Вызван OnStop")
end
QUIK-Junior. Разброд в таблице обезличенных сделок и на графике.
 
В таблице обезличенных сделок отсутствуют данные с 22:00 до 7:04. На графике есть до 23:49.
Цены в таблице и на графике за вчерашний день - различны.
Это особенность демо или можно исправить?
Стоп-заявки по исполнению
 
Цитата
Sergey Gorokhov написал:
Только не понятно чего Вы хотите.
Сергей, вопрос был:
Цитата
Ирина написал:
как отличить заявку "по исполнению" в состоянии при "живой" лимитке-условии и исполненной средствами Lua?
На что Вы меня размыто отправили во флаги... и не опровергли проверку активации битом 8.
Написали бы сразу, что надо
Цитата
Sergey Gorokhov написал:
смотреть исполнение связанной заявки
по co_order_num... Что мне и требовалось узнать.
Стоп-заявки по исполнению
 
Цитата
Sergey Gorokhov написал:
Чем именно?
Своим наличием. Создалось впечатление, что бит 8 указывает конкретно на неполный объем активации заявки, а не на факт активации. Есть такое значение параметра "Результат" таблицы стоп-заявок:
Цитата
«Рассчитывается min/max и ждет активации» - заявка активирована на неполный объем в результате частичного исполнения заявки-условия, начат расчет минимума/максимума цены. Параметр заявок типа «Тэйк профит по заявке» с включенным признаком «Частичное исполнение заявки учитывается».
Так вот, бит 8 очень похож на него. В таком случае, об активации заявки в полном объеме по нему не узнаешь.
Стоп-заявки по исполнению
 
Цитата
Sergey Gorokhov написал:
В документации четко сказано в каком случае ставится бит
Цитата
в случае когда исходная заявка частично исполнена
Слово "частично" настораживает...
Цитата
Sergey Gorokhov написал:
То стоп исполнится, он же не просто так называется "по исполнению"
Речь о той же смене даты, когда срок заявки "по исполнению" истек, а связанная была исполнена. Ну ясно уже - снимется...
Стоп-заявки по исполнению
 
Цитата
Sergey Gorokhov написал:
Посмотрите параметр flags
Бит 8? При полностью исполненной исходной заявке он тоже устанавливается? Спасибо.
Цитата
Sergey Gorokhov написал:
Стоп заявки со сроком сегодня, проверяются по астрономическому "Сегодня", а не по расписанию торгов на бирже.
Значит, этот момент интересует, момент снятия. Так снимутся, не взирая на начавшийся расчет?
Цитата
Sergey Gorokhov написал:
стоп "по исполнению" то он снимется, при снятии связанной заявки.
А если связанная исполнена?
Стоп-заявки по исполнению
 
Цитата
Русский написал:
Изменилось ли что-нибудь в записи заявки "по исполнению" в таблице?
Параметр "Результат" меняет значение с "Ждет активации" на пустое.

Вопрос: можно ли значение этого параметра получить через Lua? (не нашла) Или как отличить заявку "по исполнению" в состоянии при "живой" лимитке-условии и исполненной средствами Lua?

Другой вопрос: что происходит с "тейк-профитом по заявке" или простым "тейк-профитом" со сроком действия "сегодня", находящимся в процессе расчета min/max, при наступлении клиринга?
Информация о статусе заявки
 
Цитата
Sergey Gorokhov написал:
ext_order_status это параметр "Расширенный статус" в таблице заявок
Спасибо, нашла. Теперь Ваши объяснения понятны.
Информация о статусе заявки
 
Вот же, для других параметров в "Руководстве пользователя QLua" указано: "Поле для получения параметров по западным площадкам". Для ext_order_status такого нет, что и вводит в заблуждение и неправильное применение.
Информация о статусе заявки
 
Цитата
Sergey Gorokhov написал:
Прежде чем смотреть данные через LUA посмотрите есть ли они в терминале QUIK.
А где их в QUIK смотреть?

Неплохо было бы указывать в руководстве, что где используется. Напарываться на неправильную работу скрипта неприятно, и найти подобную неявную ошибку сложно.
Информация о статусе заявки
 
Sergey Gorokhov,
При запуске такого кода:
Код
for i=0,getNumberOf("orders")-1 do
      local order = getItem("orders", i)
      if order then
         message("Расширенный статус заявки № "..order.order_num.." = "..order.ext_order_status)
      end
end
терминал выдает сообщения: "Расширенный статус заявки № ХХХХХХХХХХ = 0" для каждой заявки в таблице, среди которых есть и активные, и снятые, и исполненные.
Т.е. параметр попросту не работает?
Или это какой-то другой статус (какой?)? Или используется для особых случаев(каких?) и особым методом(каким?)?
Информация о статусе заявки
 
Расскажите, пожалуйста, для чего нужен "расширенный статус заявки", поле orders.ext_order_status? И для активных, и для снятых, и для исполненных = 0 ...
SearchItems
 
Если SearchItems не найдет ни одного элемента, удовлетворяющего условиям поиска, что вернет? Nil, пустую таблицу?
Тэйк-профит: старые песни о защитном спрэде, Возможные сюрпризы при совершении сделки по тэйк-профиту
 
Уважаемые разработчики, надо исправлять этот кошмар:
Цитата
Stanislav Tvorogov написал:
если сделка по 98 (t0) была раньше чем 97 (t0') то расчет будет произведен по цене 98-0,1
Я о том, что цена сделки, от которой отсчитывается цена лимитки, непредсказуема. Соответственно, для низколиквидных инструментов всегда и для всех инструментов на волатильном рынке тейк-профит неприменим. Это тут уже замечали и просили изменить методику расчета тейк-профита. Я присоединяюсь. Исправляйте косяк!
Ну кому нужна эта "цена последней сделки"? Для обеспечения исполнения лимитки вполне достаточно защитного спреда - пусть трейдер сам решает, сколько готов потерять в пунктах, а при скольких уже лучше не входить в сделку. Есть же определенный ранее max/min. Так и выставляйте лимитку по четкой цене "max - отступ от max - защитный спред" при любом проскальзывании в процессе пересечения "max - отступ от max" - одно другому не мешает.
Для чего нужна функция SetUpdateCallback?, Работа с данными.
 
Все "глобальные" функции, кот. вызывает "колбэк", тоже выполняются в основном потоке терминала?
Код
function OnAllTrade(price)
   if price >= min_price+X then
      OpenOrders()
      ...
   end
end

function OpenOrders()
   ...
end
Для чего нужна функция SetUpdateCallback?, Работа с данными.
 
Цитата
Suntor написал:
вы через «колбэки» пытаетесь сделать код по схеме «опроса», где эти «колбэки» то и не нужны. Они нужны совсем для другого, кода вы строите код по схеме обратного вызова.
Я о том и говорю. И абсолютно не нужна мне схема "опроса". Просто подозреваю, что если засунуть весь код в "колбэк", терминал атрофируется из-за 100% занятого основного потока, да и "колбэки" не будут успевать обрабатываться. Что похлеще отстающей схемы "опроса" будет.
Немного понятнее стало.
Попробую ловить сигнал дважды: в "колбэк" с выполнением минимума (хотя самое тормозное - транзакции - всё равно из него придется отправлять) + дублирующим "опросом" в мейне с выполнением несрочных операций...
Для чего нужна функция SetUpdateCallback?, Работа с данными.
 
Цитата
Suntor написал:
Этот sleep ... там должен быть обязательно.
Ну и какой тогда толк от "колбэка"? Что без него main спал и пропускал сигнал, что с ним спит, только ещё и основной поток грузится... Кстати, в примере из "Использование Lua в Рабочем месте QUIK" в main нет sleep. Ошибка? (Я поэтому и хотела "колбэк" применить).

Сдается мне, что не main-ом надо "колбэки" обрабатывать, а "колбэками" main, - только так их скорость будет использована.
Для чего нужна функция SetUpdateCallback?, Работа с данными.
 
Цитата
Suntor написал:
это всё несущественно, просто глаз режет...
На вылавливание таких косячков больше всего времени уходит, так что большое спасибо!

Код у Вас очень гармоничный получился.
Смущает sleep(1000). Раз после цикла стоит, он будет прерываться при поступлении нового колбэка?

Цитата
Suntor написал:
рассинхронизация состояния таблицы all_trades
Не обращала внимания, что происходит с таблицами в вечерний клиринг... спасибо за акцент. Ну буду руками подстраховывать, если что (всё равно скрипт только пол алгоритма выполняет), а вечерняя сессия ещё и вялая обычно - не страшно.

Вообще, уважаемый Suntor, благодарю за помощь в написании моего маленького скрипта! Вашими усилиями он почти готов. :)))
Для чего нужна функция SetUpdateCallback?, Работа с данными.
 
Цитата
Suntor написал:
«Колбэки» нужны, когда вам нужна максимальная скорость реакции на события.
В примере с колбэками из "Использование Lua в Рабочем месте QUIK" в main непрерывно проверяется размер таблицы Lua. А без колбэка мог бы также проверяться размер таблицы обезличенных сделок или иной. Чем хуже?
редактирование сообщения
 
Поддерживаю просьбу. Ещё удаление постов не помешало бы.
Можно ли одним скриптом луа запустить другой.?
 
Вопрос выше снят.
Можно ли одним скриптом луа запустить другой.?
 
Интересно...
Наткнулась сейчас на функцию dofile. Ну и добавила в QUIK 2 скрипта:
1:
Код
dofile("Script_2.lua")
2:
Код
message("Script_2 запущен.")
При запуске первого появилось сообщение из второго.
Как это? Или почему нельзя использовать для решения задачи этой темы? Потоки там перенимаются что ли?

P.S. Тяжко непрограммеру понять, что что-то не работает, если оно работает...
Для чего нужна функция SetUpdateCallback?, Работа с данными.
 
Цитата
Ирина написал:
собьется поток main при поступлении нового колбэка?
Например, при таком использовании:
Код
is_run = true
first=getNumberOf("all_trades")

function OnAllTrade(all_trade)
   start = true
end

function main()
   while is_run = true do

      if start = true then
      
         for k=first,getNumberOf("all_trades")-1 do
            first = k+1
         end
      
      end
      start = false

   end
end

function OnStop()
   is_run = false
end
bit.band vs bit.test
 
Enfernuz, что-то мне после вашего предположения боязно bit.test использовать... :)))

Никто случаем не проверял, разница в скорости между bit.test и bit.band есть?
Для чего нужна функция SetUpdateCallback?, Работа с данными.
 
Цитата
rinat написал:
так стоит ли переживать за такие мелочи?
А зачем себя в хвост загонять, если разница в буквах кода? (Конкуренты в лице таких же юзеров QUIKа не в счет что ли и ликвидности не добавляют?)
Для чего нужна функция SetUpdateCallback?, Работа с данными.
 
Цитата
Suntor написал:
2. Взаимодействие потоков Lua скрипта
Спасибо, такой разбор и искала. Стало понятно, что без очереди ничего не понятно...
Однако тут пишут, что функции insert/remove сами по себе тормозные... И, в моем случае, очередь ещё и неудобна - дублируются переборы вторичных таблиц, где скорость вообще не нужна. А вот ввернуть сам факт появления новой сделки вместо  
Код
if first == getNumberOf("all_trades") then
   sleep(1000)
было бы полезно. Но так и не поняла, собьется поток main при поступлении нового колбэка, без его постановки в очередь, или проигнорирует его (что нестрашно)...
Для чего нужна функция SetUpdateCallback?, Работа с данными.
 
Цитата
Suntor написал:
Лучше напишите первую версию
Почти написала и вернулась к обсуждавшемуся вопросу. Сейчас всё в main. Думаю задействовать OnAllTrade, но не вижу в нём смысла. Прошу развеять сомнения и поправить, если неправильно понимаю принцип работы.

Схема кода такая:
Код
first=getNumberOf("all_trades")

function main()
while true do

if first == getNumberOf("all_trades") then
   sleep(1000)
else

for k=first,getNumberOf("all_trades")-1 do
   local trade = getItem("all_trades", k)
   if trade then
      
      получение сигнала - выставление и снятие заявок;
                     присвоение новых значений переменным
                     
   end
   first = k+1
end

for i=0,getNumberOf("orders")-1 do

   снятие лишних заявок "на ходу" 

end

end
end
end
Торгую si, т.е. сотни сделок в секунду случаются.

Допустим, задействовала я OnAllTrade. Посылает он сигнал main-у, а тот в это время находится где-нить в середине цикла. Что с ним будет?
Допустим, ничего. Тогда что будет с пропущенным сигналом OnAllTrade, потеряется?
Допустим, нет. Тогда за время проведения main-ом своих расчетов накопится много сигналов OnAllTrade. Что будет с ними? Будут обрабатываться в порядке очереди?
Ну и какой смысл в этом колбэке, если нет реакции на каждый тик? А main итак проверяет все новые тики.
Можно ли одним скриптом луа запустить другой.?
 
Цитата
s_mike@rambler.ru написал:
А нужный момент первый создаёт сигнал второму, что пора просыпаться. Сигналом может быть все что угодно - мьютекс, memorymappedfile и так далее. В простейшем случае файл.
Не могли бы поподробнее, как создать такой файл? Может, подскажете, где посмотреть пример?
Страницы: 1 2 3 След.
Наверх