Здравствуйте. Пишу простой скрипт выставления автостопа на луа для квика. Работаю только на фьюче ртс.
1. выставил я заявку на покупку одного фьюча. заявка исполнилась, открытых позиций 1 (для лонга). как узнать цену, по которой открылась позиция? через функцию OnTransReply или как то по другому? OnTransReply вроде не всегда гарантированно приходит.
2. выставил я заявку на покупку стапидцот фьючей. заявка исполнится по разным ценам (чем бОльшее количество фьючей, тем бОльший спред.
как в этом случае узнать цену открытия позиций?
Валентин, OnTrade придет на каждый «удар» — если ударить 100 контрактами по такому стакану (цена-контракты): 500-10, 510-20, 520-30, 530-45 то придут 4 OnTrade():
nwtour,
к примеру выставил я заявку на 100 контактов. заявка начала выполнятся. в ответ посыпались onTrade (по три одинаковых штуки каждую покупку.)
Как в qlua ловить все OnTrade и помещать в один массив для дальнейшего анализа? Не могли бы вы привести пример кода?
function OnTrade(trade)
--Добавляем новый элемент в глобальный массив allTrades с данными о текущей сделке
allTrades[#allTrades+1] = trade
end
--------------------
По поводу «по три одинаковых штуки каждую покупку» — эта проблема появилась в 7 квике, разработчики исправлять не собираются forum.quik.ru/forum10/topic1082/
nwtour, демосчет у арки на седьмом квике.
такой код:
allTrades = {}
function OnTrade(trade)
allTrades[#allTrades + 1] = trade
message(print_arr(allTrades))
end
функция print_arr распечатывает содержимое массива со всеми подмассивами.
так вот. в квик приходит три раза одно и тоже сообщение: одномерный массив с полной инфой (все что присылает ontrade).
а я предполагал что третье сообщение — будет трехмерный массив, второе сообщение — двухмерный массив. я не прав?
XAU/USD: золото проигрывает схватку за геополитическую премию
Золото продолжило активно снижаться после достижения локального пика, несмотря на напряженность и рост рисков в мире. Первоначальный скачок в район уровня 5410 был спровоцирован военными...
ЦБ РФ понизил ключевую ставку на 50 б. п., до 15% − пока идем по плану: реакция рынка и дальнейшие перспективы
Совет директоров Банка России 20 марта снизил ключевую ставку (КС – далее) на 50 б. п., до 15,00% годовых, как и ожидало большинство аналитиков согласно различным консенсус-опросам. При этом...
Финансовый маркетплейс Бробанк признал мобильное приложение Займера лучшим среди МФО в AppStore в 2026 году. 🔎 Всего представители сервиса проанализировали 31 приложение МФО на основе оценок...
ВК: жива ли тут идея, которая была у нас в мае 2025?
ВК отчиталась за 2025 год. Отчет Пресс-релиз Презентация Выручка суммарная выросла всего на +8%г/г. Если брать 4 квартал, то выручка выросла всего на +5%г/г....
Серебро—а вот тут интересно!!! Гораздо интереснее, чем где бы то ни было,
Я один вижу зону 46,30. 47,80. Без коррекций ?
Или. еще умники имеюцца ?
Резоны? (Ну мне кажется тут ну самая простая...
ЪЪ, лаконичнее значит кратко, кратко там не получится, там нет переизбытка прилагательных и обрисовки обстоятельств, там пересказ картины, и при пересказе картины нет возможности что либо урезать, ...
genubat, да не согласен я про декорации — идеология там разная абсолютно — 50 полов, тотальное насаждение лгипрт, смена пола 6-ти летним детям и пр. и пр. в битву за бюджеты совсем не укладываются....
Дмитрий, рисовальщики не имеют никакого отношения к реальности. Никто не знает что будет, но акциЯ самолёта — лудоманная бумага. Сработали стопы и цена посыпалась. Всё.
Валентин, OnTrade придет на каждый «удар» — если ударить 100 контрактами по такому стакану (цена-контракты): 500-10, 510-20, 520-30, 530-45 то придут 4 OnTrade():
цена 500 количество 10
цена 510 количество 20
цена 520 количество 30
цена 530 количество 40
p.s. среднюю можно вручную в коде подсчитывать
к примеру выставил я заявку на 100 контактов. заявка начала выполнятся. в ответ посыпались onTrade (по три одинаковых штуки каждую покупку.)
Как в qlua ловить все OnTrade и помещать в один массив для дальнейшего анализа? Не могли бы вы привести пример кода?
Валентин,
allTrades = {}
function OnTrade(trade)
--Добавляем новый элемент в глобальный массив allTrades с данными о текущей сделке
allTrades[#allTrades+1] = trade
end
--------------------
По поводу «по три одинаковых штуки каждую покупку» — эта проблема появилась в 7 квике, разработчики исправлять не собираются forum.quik.ru/forum10/topic1082/
Я сделал затычку как написано тут forum.quik.ru/messages/forum10/message10036/topic1082/#message10036
такой код:
allTrades = {}
function OnTrade(trade)
allTrades[#allTrades + 1] = trade
message(print_arr(allTrades))
end
функция print_arr распечатывает содержимое массива со всеми подмассивами.
так вот. в квик приходит три раза одно и тоже сообщение: одномерный массив с полной инфой (все что присылает ontrade).
а я предполагал что третье сообщение — будет трехмерный массив, второе сообщение — двухмерный массив. я не прав?
Валентин, Я же прикрепил сообщение — это «бага» квика, он на сервере обновляет транзакцию и повторно вызывает OnTrade()
Сделайте вот так и повторные сообщения пропадут:
allTrades = {}
function OnTrade(trade)
--y это уникальный идентификатор транзакции
y = tostring(trade.trade_num)… "="… tostring(trade.order_num)if allTrades[y] then
--повторные транзакции пропускаем
return
end
allTrades[y] = trade
--массив с ключом id транзакции, а значение это вложенный массив с данными сделки
message(print_arr(allTrades))
end