Фёдор Сухов (Все сообщения пользователя)

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

Страницы: Пред. 1 2
Лимитированная, рыночная заявка
 
Ещё раз хочу уточнить, что вручную я могу поставить заявку и она, если выполнится, то по той йене что я указал в окне заявки.

А вот для тех кто любит справедливые и хорошие цены.
Объясните почему складывается такая ситуация с спредом и реальными сделками вне спреда на бирже.

https://forum.quik.ru/forum10/topic787/
Лимитированная, рыночная заявка
 
Спасибо, конечно, большое за объяснение!
Но я всё прекрасно понимаю это.

Но ещё раз подчёркиваю, что мне необходимы правила открытия позиции по мной заданной цене.

Это не упрямство, так мне надо.
Жаль, что Вы, почему-то, думаете что я что-то там не понимаю.

Я просто в Квике не знаю как мне выставить заявку по той цене, по которой я хочу.
Если моя заявка не будет удовлетворена, то я её сниму и переставлю, но только по той цене по которой сочту нужным, т.е. робот рассчитает.

Мне необходимы параметры в структуре или нужные настройки.

Поэтому ещё раз обращаюсь к разработчикам или более опытным трейдерам, помогите разобраться, пожалуйста!

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

У меня вопрос:
- Почему "Лимитированная" заявка после выставления исполняется не по указанной цене, а по другой, например,
в заявке указана цена=67069, а сделка совершается по цене=67075?

Но я же указал, что заявка "Лимитированная", т.е. Лимит-ордер, а отрабатывает как рыночная заявка.

Если вручную выставлять заявки, то всё проходит нормально, но вот загвоздка в программной части.

Что не так?
----------------------------------------------------
local transaction={
["TRANS_ID"]=tostring(1),
["ACTION"]="Ввод заявки",
["CLASSCODE"]=sClassCode,
["Тип"]="Лимитированная",
["Условие исполнения"]="Поставить в очередь",
["Класс"]=sClassCode,
["Инструмент"]=sSecCode,
["Количество"]=tostring(vol),
["Цена"]=toPrice(sSecCode,price),
["Торговый счет"]=FIRM_ID
}
if op=='B' then transaction['К/П']='Покупка' else transaction['К/П']='Продажа' end
     --transaction.COMMENT = "LUA "..op

     res=sendTransaction(transaction)

     if res~="" then message(res,1) end

-------------------------------------------------------------------------
(из таблицы заявок)
18:03:19      Продажа     67069,000000 1,000000      67069,000000 Исполнена
(из таблицы сделок)
18:03:19 Продажа 67075,000000     1,000000 67075,000000 Si-12.15
Расширение функций управления окном.
 
Цитата
Stanislav Tvorogov пишет:
Цитата
Дмитрий пишет:
Поддерживаю пожелания sam063rus
Лично меня напрягает процесс создания с помощью небогатых средств QLua для работы с экранными таблицами таких в общем-то стандартных элементов, как кнопки, переключатели, списки выбора, поля ввода и т.п.
А пользоваться сторонними библиотеками без крайней необходимости не хочу (из соображений надежности и устойчивости работы скрипта).
Добрый день,

Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной. Если по результатам дальнейшего анализа, включающего юридические аспекты, анализ на непротиворечивость с общей политикой компании, никаких возражений не возникнет, мы постараемся включить Ваше пожелание в план доработок при выпуске одной из следующих версий нашего ПО.
Добрый день!
Вижу, что пожелание доработать QLua было озвучено в конце января, а как сейчас обстоят дела по кнопкам?
Спрэд в стакане и цены совершённых сделок (Таблица всех сделок), Проблема понимания изменения спрэда в стакане и цены совершённых сделок в Таблице всех сделок
 
Цитата
Sergey Gorokhov пишет:
Здравствуйте,
Помимо того что стаканы и таблица всех сделок не обязательно едут синхронно мне нечего добавить.
Если интересуют подробности, рекомендую обратиться к специалистам биржи.
По опыту архивирования стакана за торговый день, вочти всегда со временем всё в порядке,
но есть исключение, а именно, когда в у брокера или у Интернет-провайцдера бывает "затор", тогда заявки в стакан попадают в текущее биржевое время с временем прошлым, поскольку они немножко задержались в пути. И тогда в базе стакана светится заявка, например, в 10:22:00 есть заявка со временем 10:21:59, но это бывает нечасто.
Спрэд в стакане и цены совершённых сделок (Таблица всех сделок), Проблема понимания изменения спрэда в стакане и цены совершённых сделок в Таблице всех сделок
 
При чём это бывает, когда маркет-мейкер на какое-то время снимает свои лимитники.
Спрэд в стакане и цены совершённых сделок (Таблица всех сделок), Проблема понимания изменения спрэда в стакане и цены совершённых сделок в Таблице всех сделок
 
Цитата
Николай Камынин пишет:
Вопрос конечно интересный.
попробуйте отобразить еще время чтения стакана и содержимое ТТП по инструменту.
Тогда возможно будет понятнее.
В том то и дело, что я беру время биржевое у стакана и у сделок, и оно совпадает.
Спрэд в стакане и цены совершённых сделок (Таблица всех сделок), Проблема понимания изменения спрэда в стакане и цены совершённых сделок в Таблице всех сделок
 
Объясните, пожалуйста, почему такое происходит с ценами или, вернее,
почему сделки проходят за пределами спрэда?
Покупка по цене 62050, а спрэд находится в диапазоне цен 62076-62099 (Рис. 1).
или
Продажа по цене 62076, а спрэд находится в диапазоне цен 62052-62071 (Рис. 2).

Фрагмент из Таблицы всех сделок (Рис. 3.)

Изображения прилагаю.


Рис 1.


Рис. 2.




Рис. 3.
Редактор кода QLUA и прочее
 
Михаил, бросьте, пожалуйста, этот спор!
Всё что я Вам выслал предостаточно, правда нет отладчика, но его можно скачать дополнительно по названием "decode". Плюс к этому своё воображение включаем и поехали!
Спрэд в стакане и цены совершённых сделок (Таблица всех сделок), Проблема понимания изменения спрэда в стакане и цены совершённых сделок в Таблице всех сделок
 

Рис.1. Копия сделок и спрэд в стакане

Рис.2. Копия сделок и спрэд в стакане

Рис.3. Фрагмент Таблицы всех сделок (Квик)
Спрэд в стакане и цены совершённых сделок (Таблица всех сделок), Проблема понимания изменения спрэда в стакане и цены совершённых сделок в Таблице всех сделок
 
Суть проблемы:
Почему сделки находятся за пределами установленного на данный момент спрэда (19:00:00)?
Правильно ли берётся спрэд из стакана заявок?
Что неправильно в коде?

Например:
Покупка по цене 62050, а спрэд находится в диапазоне цен 62076-62099 (Рис. 1).
или
Продажа по цене 62076, а спрэд находится в диапазоне цен 62052-62071 (Рис. 2).

Ссылки на изображения прилагаю.


Рис.1. Копия сделок и спрэд в стакане

Рис.2. Копия сделок и спрэд в стакане

Рис.3. Фрагмент Таблицы всех сделок (Квик)
Код
sClassCode = "SPBFUT" 
sSecCode = "SiU5" 
deltaSpread=10 -- рублей

    if alltrade.sec_code == sSecCode and alltrade.class_code == sClassCode then
                if  bit.band(alltrade.flags, 0x1) ~= 0 then
                        direction="Продажа"
                        qt = getQuoteLevel2(sClassCode, sSecCode)
                        priceBid=qt.bid[qt.bid_count+0].price
                        priceAsk=qt.offer[1].price
                        if priceAsk-priceBid>=deltaSpread then 
                        f=f+1
                        ttt=tostring(direction.." Price="..alltrade.price.." bid="..priceBid.." ask="..priceAsk.." V="..alltrade.qty)
                        local row = t:AddLine()
                        SetCell(t.t_id, row, 1, tostring(f))
                        SetCell(t.t_id, row, 2,   table_time)
                        SetCell(t.t_id, row, 3,  ttt )
                        end                        
                end
                if  bit.band(alltrade.flags, 0x2) ~= 0 then
                        direction="Купля"
                        qt = getQuoteLevel2(sClassCode, sSecCode)
                        priceBid=qt.bid[qt.bid_count+0].price
                        priceAsk=qt.offer[1].price
                        if priceAsk-priceBid>=deltaSpread then 
                        f=f+1
                        ttt=tostring(direction.." Price="..alltrade.price.." bid="..priceBid.." ask="..priceAsk.." V="..alltrade.qty)
                        local row = t:AddLine()
                        SetCell(t.t_id, row, 1, tostring(f))
                        SetCell(t.t_id, row, 2,   table_time)
                        SetCell(t.t_id, row, 3,  ttt )
                        end
                end
    end
 
платформа для создания роботов, создание роботов без знаний LUA и QPILE
 
Цитата
Николай Камынин пишет:
Цитата
Фёдор Сухов пишет:
а вот, если надо вот такой немножко посложней:
------------------------------------------------------------------
Код
  PLOT:  fastMA=EMA(5,close)
PLOT: slowMA=EMA(21,close) 
PLOT: r=RSI(14,close)
BUY:   fastMA[1] < slowMA[1] and fastMA[0] > slowMA[0]  and while ( r[1]<50 and r[0]>50 )
SELL: fastMA[1] > slowMA[1] and fastMA[0] < slowMA[0]  and while ( r[1]>50 and r[0]<50 ) 
  
http://strategy4you.ru/prostaya-strategiya-foreks/strategy-forex-metod-bagovino.html
Если можно так как я описал, то, возможно я Вам клиента нашёл
первая часть формул будет почти такой же:
------------------------------------
1) fastMA(1)< slowMA(1) & fastMA(0) > slowMA(0)
---------------------------------------------------------------
2) fastMA(1) > slowMA(1) & fastMA(0) < slowMA(0)
--------------------------------------------------------------------
только формулы для BUY и для SELL помещаются в отдельные файлы.
Т е Вы создаете библиотеки сигналов BUY и sELL и STOP и TAKE и SHORT и COVER
а потом просто указываете в роботе какие сигналы вы хотите использовать.
-----------------------------------
Вообще-то я не понял на каком Вы языке написали. могу лишь догадываться, что это дедушка метасток.
-------------------------------
Откровенно сказать я его уже забыл основательно .
----------------------------
поэтому поясните , что Вы хотите сделать этой записью:
-------------------------------
and while (r[1]<50 and r[0]>50 )
-------------------------------------------
Я знал, что вы об этом спросите, но дело не в языке Метасток или Омега Ресёрч.
Я просто хотел реализовать ожидание пересечения уровня "50" индикатором RSI? после пересечения средних, т.е. пересекли и ждём сигнала от RSI,
хотя, может быть и одновременное пересечение со средними.
Редактор кода QLUA и прочее
 
дайте мне свой эл. адрес я вам вышлю редактор и книгу, но на англ. языке (в ней примеров много хороших) и ещё файл по индикаторам.
платформа для создания роботов, создание роботов без знаний LUA и QPILE
 
опять ошибся :)
2-я свеча и 1-ая
Да, ещё период графика - 1H
платформа для создания роботов, создание роботов без знаний LUA и QPILE
 
хотя там не нулевая свеча, а две предыдущие, т.е 3-я и 2-ая  
платформа для создания роботов, создание роботов без знаний LUA и QPILE
 
а вот, если надо вот такой немножко посложней:
------------------------------------------------------------------
Код
PLOT:  fastMA=EMA(5,close)
PLOT: slowMA=EMA(21,close) 
PLOT: r=RSI(14,close)
BUY:   fastMA[1] < slowMA[1] and fastMA[0] > slowMA[0]  and while ( r[1]<50 and r[0]>50 )
SELL: fastMA[1] > slowMA[1] and fastMA[0] < slowMA[0]  and while ( r[1]>50 and r[0]<50 ) 
http://strategy4you.ru/prostaya-strategiya-foreks/strategy-forex-metod-bagovino.html
Если можно так как я описал, то, возможно я Вам клиента нашёл  :D
Таблица всех сделок, Проблема при считывании направлении сделок ("Купля" или "Продажа")
 
Давненько на форумах битики не гоняли!
8)
Таблица всех сделок, Проблема при считывании направлении сделок ("Купля" или "Продажа")
 
Цитата
Sergey Gorokhov пишет:
Цитата
Николай Камынин пишет:
1024=2^10,
т е установлен 10 бит.
то бишь не старшие,
а лишь один - десятый.
Николай, а причем тут 1024? мы же про 1025 и 1026 говорим
Николай, правильно пишет про 10-й бит, только 1 нему ещё добавляется самый первый (о-й) бит,
вот и получается число 1025, а если значение=1026, то заполнены 10-й  и 2-й биты
Двоичная арифметика, пымаш ли.
Таблица всех сделок, Проблема при считывании направлении сделок ("Купля" или "Продажа")
 
Спасибо Сергею Горохову (Sergey Gorokhov)!

Всё проверил!
Действительно надо было побитово проверять.
При старте и в течении дня проскакивают заполненные старшие биты, поэтому и не получалось определять направление сделки.

Низкий поклон!
Таблица всех сделок, Проблема при считывании направлении сделок ("Купля" или "Продажа")
 
Цитата
Sergey Gorokhov пишет:
Цитата
Цитата
Фёдор Сухов пишет:
alltrade.flags==1 then
Вы не правильно проверяете наличие флага, правильно так:
Код
 if bit.band(alltrade.flags, 0x1) ~= 0 then
   direction="Продажа"
end
 
if bit.band(alltrade.flags, 0x2) ~= 0 then
   direction="Купля"
end
 
Но ведь по двоичной арифметике 1-й бит установлен в 1, то 2 в нулевой степени равно 1,
если 2-й бит установлен в 1, то 2 в первой степени равно 2.
Всё должно быть правильно.

Вопрос возникает только при расчёте именно первой сделки при старте, за редким исключением в течении дня, но очень редко.
Таблица всех сделок, Проблема при считывании направлении сделок ("Купля" или "Продажа")
 
Небольшое добавление к вопросу выше:
-------------------------------------------------------------------------------------------------
Флаги для таблицы Обезличенные сделки

Флаг установлен Значение
бит 0 (0x1) Сделка на продажу
бит 1 (0x2) Сделка на покупку  

В случае, если флаги не установлены, направление сделки не определено.
--------------------------------------------------------------------------------------------------


Так вот:
А такое бывает, когда флаги могут быть не установлены?
Судя по возникшей проблеме, вроде, - да.


Но как сам Квик определяет направление?
Таблица всех сделок, Проблема при считывании направлении сделок ("Купля" или "Продажа")
 
Добрый день!
Столкнулся с проблемой определения направления сделок из "Таблицы всех сделок", а именно:
1. Это бывает редко, но бывает.
Пример кода:
Код
sClassCode = "SPBFUT"
sSecCode = "SiU5"

            if alltrade.sec_code == sSecCode and alltrade.class_code == sClassCode then
                if alltrade.flags==1 then 
                        direction="Продажа"
                        end
                if alltrade.flags==2 then 
                        direction="Купля"
                        end
Так вот, например сегодня 28.07.2015 при старте в 10:00:00
первая сделка в текстовом представлении терминала QUIK (версия 6.17.1.17) выглядит так:
№      Время      Цена      Кол-во      Операция
______________________________________
1 10:00:00    60648             55     Купля
______________________________________

С помощью программы на Lua не получается определить направление сделки,
причём это бывает всегда, а именно, при старте.

Далее, всё работает нормально и все направления определяются правильно,
но и после старта случается невозможным определить направление, правда, гораздо реже.

Что же делать?
Как быть?
Что не так?
Как сам терминал определяет направление и, надеюсь, правильно определяет?

С уважением ко всем разработчикам!
Заранее благодарю!
Страницы: Пред. 1 2
Наверх