Здравствуйте! Хочу заказать скрипт по поиску роботов, которые покупают или продают по рынку. Для примерного понимания ТЗ, есть бесплатный скринер: (https://www.youtube.com/watch?v=-pTgrdbgpcg) Мне нужно то же самое только более доработанное и лёгкое. Мне не нужен лишний функционал который имеется в этом скринере, меня интересует только поиск роботов. В этом скринере есть ряд недостатков и недостающих функций, из-за чего хочу заказать скрипт. В программировании ничего не понимаю, по этому финансово оценить никак не могу. Можете писать свои предложения в ЛС или в тему. Функции которые нужны в скрипте: 1) Определение роботов (Инструмент; Лотаж; Направление; Периодичность (Вплоть до миллисекунд); Время включения; Количество бросков; Время выключения) 2) Определение разнолотовых роботов. Например, робот с периодичностью 20сек кидает в рынок заявки объёмом 1105-1106. Скрипт должен их относить к одному роботу и выводить периодичность бросков (До миллисекунд). 3) Истории роботов, показывает когда скрипт заметил их и когда они выключились, какая была периодичность бросков (Время когда их заметил и когда они выключились можно было экспортировать в EXСEL) 4) Гибкие настройки. Например, регулировать процент/лотаж возможного отклонения объёма робота. Выбирать по каким бумагам будет работать скрипт. 5) Ну и просто звуковое оповещение в случае обнаружения робота Постарался описать всё, жду любой обратной связи) PS Не знаю возможно ли это уложить в скрипт, потому что вообще не шарю, поправьте если не прав.
SellBuyStyle написал: Здравствуйте! Хочу заказать скрипт по поиску роботов, которые покупают или продают по рынку. Для примерного понимания ТЗ, есть бесплатный скринер: ( https://www.youtube.com/watch?v=-pTgrdbgpcg ) Мне нужно то же самое только более доработанное и лёгкое. Мне не нужен лишний функционал который имеется в этом скринере, меня интересует только поиск роботов. В этом скринере есть ряд недостатков и недостающих функций, из-за чего хочу заказать скрипт. В программировании ничего не понимаю, по этому финансово оценить никак не могу. Можете писать свои предложения в ЛС или в тему. Функции которые нужны в скрипте: 1) Определение роботов (Инструмент; Лотаж; Направление; Периодичность (Вплоть до миллисекунд); Время включения; Количество бросков; Время выключения) 2) Определение разнолотовых роботов. Например, робот с периодичностью 20сек кидает в рынок заявки объёмом 1105-1106. Скрипт должен их относить к одному роботу и выводить периодичность бросков (До миллисекунд). 3) Истории роботов, показывает когда скрипт заметил их и когда они выключились, какая была периодичность бросков (Время когда их заметил и когда они выключились можно было экспортировать в EXСEL) 4) Гибкие настройки. Например, регулировать процент/лотаж возможного отклонения объёма робота. Выбирать по каким бумагам будет работать скрипт. 5) Ну и просто звуковое оповещение в случае обнаружения робота Постарался описать всё, жду любой обратной связи) PS Не знаю возможно ли это уложить в скрипт, потому что вообще не шарю, поправьте если не прав.
Правильно понял , что критерий обнаружения это равные объемы с одинаковым периодом покупаются и продаются? Если верно, то скажите , Вы где читали или есть статистика, что такие дебильные роботы кто-то применяем? ---------------- Написать можно любую хотелку за Ваши деньги. Но у меня правило. Кому надо, тот и говорит за сколько надо. Вы же не знаете как делать смартфон или автомобиль, но знаете за сколько хотите купить. Пишите бюджет и время в личку.
SellBuyStyle написал: Здравствуйте! Хочу заказать скрипт по поиску роботов, которые покупают или продают по рынку. Для примерного понимания ТЗ, есть бесплатный скринер: ( https://www.youtube.com/watch?v=-pTgrdbgpcg ) Мне нужно то же самое только более доработанное и лёгкое. Мне не нужен лишний функционал который имеется в этом скринере, меня интересует только поиск роботов. В этом скринере есть ряд недостатков и недостающих функций, из-за чего хочу заказать скрипт. В программировании ничего не понимаю, по этому финансово оценить никак не могу. Можете писать свои предложения в ЛС или в тему. Функции которые нужны в скрипте: 1) Определение роботов (Инструмент; Лотаж; Направление; Периодичность (Вплоть до миллисекунд); Время включения; Количество бросков; Время выключения) 2) Определение разнолотовых роботов. Например, робот с периодичностью 20сек кидает в рынок заявки объёмом 1105-1106. Скрипт должен их относить к одному роботу и выводить периодичность бросков (До миллисекунд). 3) Истории роботов, показывает когда скрипт заметил их и когда они выключились, какая была периодичность бросков (Время когда их заметил и когда они выключились можно было экспортировать в EXСEL) 4) Гибкие настройки. Например, регулировать процент/лотаж возможного отклонения объёма робота. Выбирать по каким бумагам будет работать скрипт. 5) Ну и просто звуковое оповещение в случае обнаружения робота Постарался описать всё, жду любой обратной связи) PS Не знаю возможно ли это уложить в скрипт, потому что вообще не шарю, поправьте если не прав.
Правильно понял , что критерий обнаружения это равные объемы с одинаковым периодом покупаются и продаются? Если верно, то скажите , Вы где читали или есть статистика, что такие дебильные роботы кто-то применяем? ---------------- Написать можно любую хотелку за Ваши деньги. Но у меня правило. Кому надо, тот и говорит за сколько надо. Вы же не знаете как делать смартфон или автомобиль, но знаете за сколько хотите купить. Пишите бюджет и время в личку.
Написал в лс. Продублирую часть информации тут. Да, равные объёмы, которые могут немного отличаться. Например: раз в Nсек робот кидает 430л, проходит Nсек, кидает 431, проходит Nсек и кидает 430. Мне нужно, что бы скрипт определял это как 1 робота. По поводу целесообразности не стоит задумываться, статистика личная. По поводу времени написания тоже не могу ответить, не знаю сколько это потребуют времени, наверное, месяц. И по поводу цен. Считаю пример не уместным. Приходя в магазин, вы видите в первую очередь цены на смартфоны и автомобили. То же самое касается различных услуг, исполнитель называет свои цены смотря на объём работ. Я понимаю ваше правило, но я не готов тыкать пальцем в небо гадая цены. В конце концов я трейдер, моя задача анализировать цены, а не гадать :D
Вот поэтому я рандомно ставлю заявки как по времени, так и по объемам))) А еще есть айсберги и никто не запрещает их ставить по несколько штук с разными объемами. Кстати, есть ли в луа функция генератора случайных чисел без повторений с момента каждого запуска? Смутно представляю, что даст определение таких роботов. Хотите заранее перед ними успеть? И потом продавать им подороже? Так они могут и не купить у вас))
Cyber написал: Вот поэтому я рандомно ставлю заявки как по времени, так и по объемам))) А еще есть айсберги и никто не запрещает их ставить по несколько штук с разными объемами. Кстати, есть ли в луа функция генератора случайных чисел без повторений с момента каждого запуска? Смутно представляю, что даст определение таких роботов. Хотите заранее перед ними успеть? И потом продавать им подороже? Так они могут и не купить у вас))
Задача скрипта найти их, а далее я буду смотреть по ситуации.
SellBuyStyle, как Вы собираетесь проверять, что скрипт нашёл всех подразумеваемых Вами роботов? По таблице обезличенных сделок? Или через подключение к потоку заявок за большие бабки?
funduk написал: SellBuyStyle, как Вы собираетесь проверять, что скрипт нашёл всех подразумеваемых Вами роботов? По таблице обезличенных сделок? Или через подключение к потоку заявок за большие бабки?
И по поводу цен. Считаю пример не уместным. Приходя в магазин, вы видите в первую очередь цены на смартфоны и автомобили. То же самое касается различных услуг, исполнитель называет свои цены смотря на объём работ. Я понимаю ваше правило, но я не готов тыкать пальцем в небо гадая цены. В конце концов я трейдер, моя задача анализировать цены, а не гадать :D
Чтобы реально определить трудоемкость серьезной разработки, а не поделки в 10 операторов, требуется тщательная проработка тех задания. --------------------- Каждая хотелка, если ее нет бесплатно в интернете, это индивидуальный заказ, типа "смартфон с экранами с двух сторон". ---------------------- Как правило, то, что хочет заказчик не соответствует тому, что он написал за пять минут раздумий над своей хотелкой. ---------------------- Если тех задание не написано с анализом возможных ситуаций и тщательным тестированием, то получится поделка, которую долго будет дорабатывать разработчик , либо будет долго ругаться заказчик, что разработчик плохой и сделал ему то, что работает не так, как он хочет. ----------------------------------- Вы предлагаете разработчику тыкать в небо и угадывать.
SellBuyStyle, можете посмотреть работу реального робота сегодня в валюте (продажи по 20 лотов в рандомные интервалы два-три раза внутри секунды в районе 17 часов)
funduk написал: SellBuyStyle, можете посмотреть работу реального робота сегодня в валюте (продажи по 20 лотов в рандомные интервалы два-три раза внутри секунды в районе 17 часовДружи
Товарищ, зачем мне эта информация? Я не просил проводить мне 'ликбез' по роботам. Я отлично разбираюсь в роботах, но вот в программировании не очень, по этому и искал программистов. P.S Я без негатива.
SellBuyStyle, приведённый пример показывает поведение непериодического робота. Как скрипт, по ТЗ ищущий периодических роботов, должен работать в моменты, когда такой робот активен? Скрипт будет видеть равные объёмы очень регулярно, и определит их или как (условно) 10 роботов, работающих через равные промежутки времени, или никак (если интервалы между бросками слишком разные).
funduk написал: SellBuyStyle, приведённый пример показывает поведение непериодического робота. Как скрипт, по ТЗ ищущий периодических роботов, должен работать в моменты, когда такой робот активен? Скрипт будет видеть равные объёмы очень регулярно, и определит их или как (условно) 10 роботов, работающих через равные промежутки времени, или никак (если интервалы между бросками слишком разные).
Наверное, вы не смотрели видео которое я приложил. Скрипт должен искать роботов, которые кидают именно с одинаковой периодичностью. Мне не нужны другие роботы, потому что это просто невозможно сделать скриптом. Пример: Робот кидает по 445лотов раз в 11 секунд. Скрипт определит его на 3 принт, и высветит мне в таблицу. Если робот кидает одинаковый объём в абсолютно разное время, то скрипт мне это не высветит. PS Такие мелкие роботы по 20лотов меня не интересуют, мне нужны крупные. По этому нужны настройки позволяющие отсеивать по объёмам и тд.
Это небольшая но рабочая утилита, которая умеет управляться с таблицей всех сделок, то есть тиками. Конечно это не то что Вы хотите получить, но этот не большой скрипт легко превращается в поиск необходимых Вам данных и многое еще чего, достаточно дописать фильтры. Что делает данный скрипт, он предназначен для использования в торговой платформе QUIK, создает таблицу, отображающую баланс покупок и продаж за последние 5 минут, и обновляет ее при поступлении новых обезличенных сделок, в окно выводится баланс полученный за каждую 1 минуту. Это "классический" вариант, алгоритм и идея которого взяты от сюда QuikLuaCSharp.ru, за что автору отдельное "большое человеческое спасибо!", все что я сделал это превратил его в класс - модуль луа, для удобства использования в своих программах. В общем удачи.
Код
-- Класс для отслеживания баланса покупок/продаж
local BalanceTracker = {}
BalanceTracker.__index = BalanceTracker
-- Конструктор
function BalanceTracker:new()
local obj = setmetatable({}, BalanceTracker)
obj.isRunning = true
obj.array5Min = {}
obj.lastBarSeconds = 0
obj.t_id = nil
obj:createTable()
return obj
end
-- Создание таблицы
function BalanceTracker:createTable()
self.t_id = AllocTable()
if self.t_id == nil then
error("Failed to allocate table")
end
AddColumn(self.t_id, 0, "1", true, QTABLE_INT_TYPE, 15)
AddColumn(self.t_id, 1, "2", true, QTABLE_INT_TYPE, 15)
AddColumn(self.t_id, 2, "3", true, QTABLE_INT_TYPE, 15)
AddColumn(self.t_id, 3, "4", true, QTABLE_INT_TYPE, 15)
AddColumn(self.t_id, 4, "5", true, QTABLE_INT_TYPE, 15)
CreateWindow(self.t_id)
SetWindowCaption(self.t_id, "Баланс покупок/продаж")
InsertRow(self.t_id, -1)
end
-- Установка цвета
function BalanceTracker:setColor(col, color)
SetColor(self.t_id, 1, col, color, RGB(0,0,0), color, RGB(0,0,0))
end
function BalanceTracker:red(col)
self:setColor(col, RGB(255,128,128))
end
function BalanceTracker:yellow(col)
self:setColor(col, RGB(240,240,0))
end
function BalanceTracker:green(col)
self:setColor(col, RGB(128,255,128))
end
-- Добавление нового бара в массив
function BalanceTracker:addNewBarToArray5Min()
table.insert(self.array5Min, 0)
if #self.array5Min > 5 then
table.remove(self.array5Min, 1)
end
local offset = 5 - #self.array5Min
for i = 1, #self.array5Min do
self:setBalance(self.array5Min[i], i + offset - 1)
end
end
-- Установка баланса и цвет ячейки
function BalanceTracker:setBalance(newBalance, numCol)
SetCell(self.t_id, 1, numCol, tostring(newBalance))
if numCol == 4 then
self.array5Min[#self.array5Min] = newBalance
end
if newBalance < 0 then
self:red(numCol)
elseif newBalance == 0 then
self:yellow(numCol)
else
self:green(numCol)
end
end
-- Проверка на новую минуту
function BalanceTracker:checkNewMin(dealDateTime)
dealDateTime.sec = 0
dealDateTime.mcs = 0
local seconds = os.time(dealDateTime)
if seconds > self.lastBarSeconds then
self.lastBarSeconds = seconds
return true
else
return false
end
end
-- Обработка сделки
function BalanceTracker:onAllTrade(alltrade)
if alltrade.sec_code == SEC_CODE then
local newMinute = self:checkNewMin(alltrade.datetime)
if newMinute then
self:addNewBarToArray5Min()
end
if bit.test(alltrade.flags, 0) then
self:setBalance(self.array5Min[#self.array5Min] - alltrade.qty, 4)
else
self:setBalance(self.array5Min[#self.array5Min] + alltrade.qty, 4)
end
end
end
-- Остановка скрипта
function BalanceTracker:onStop()
self.isRunning = false
end
-- Главный цикл
function BalanceTracker:main()
while self.isRunning do
sleep(100) -- Уменьшить частоту вызова
end
end
--return BalanceTracker
local CLASS_CODE = "SPBFUT" -- Класс бумаги
local SEC_CODE = "NGN4" -- Код бумаги
-- Создание объекта класса и функции обратного вызова
local balanceTracker = BalanceTracker:new()
function main()
balanceTracker:main()
end
function OnAllTrade(alltrade)
balanceTracker:onAllTrade(alltrade)
end
function OnStop()
balanceTracker:onStop()
end
VPM написал: Это небольшая но рабочая утилита, которая умеет управляться с таблицей всех сделок, то есть тиками. Конечно это не то что Вы хотите получить, но этот не большой скрипт легко превращается в поиск необходимых Вам данных и многое еще чего, достаточно дописать фильтры. Что делает данный скрипт, он предназначен для использования в торговой платформе QUIK, создает таблицу, отображающую баланс покупок и продаж за последние 5 минут, и обновляет ее при поступлении новых обезличенных сделок, в окно выводится баланс полученный за каждую 1 минуту. Это "классический" вариант, алгоритм и идея которого взяты от сюда QuikLuaCSharp.ru, за что автору отдельное "большое человеческое спасибо!", все что я сделал это превратил его в класс - модуль луа, для удобства использования в своих программах. В общем удачи. [CODE][/CODE]
Написал первый вариант такого скрипта. Пускаю его на тест сервере. Он обрабатывает всю таблицу это 330 инструментов и 1 млн 100 тысяч записей Для каждого инструмента и каждой записи он ищет по истории нужных роботов. Примерно так.
nikolz написал: Написал первый вариант такого скрипта. Пускаю его на тест сервере. Он обрабатывает всю таблицу это 330 инструментов и 1 млн 100 тысяч записей Для каждого инструмента и каждой записи он ищет по истории нужных роботов. Примерно так.
nikolz написал: Написал первый вариант такого скрипта.Пускаю его на тест сервере.Он обрабатывает всю таблицу это 330 инструментов и 1 млн 100 тысяч записейДля каждого инструмента и каждой записи он ищет по истории нужных роботов.Примерно так.
nikolz написал: Написал первый вариант такого скрипта.Пускаю его на тест сервере.Он обрабатывает всю таблицу это 330 инструментов и 1 млн 100 тысяч записейДля каждого инструмента и каждой записи он ищет по истории нужных роботов.Примерно так.
Поделитесь своими чудесами?
Когда пишу подобную информацию, то сообщаю о том, что можно получить на QUIK экспериментально, а не рассуждая теоретически или оплевывая вся и все. --------------------- Если для кого-то это чудеса, то рад за него и не хочу его разочаровывать в такой вере. ----------------------------------- Тот, кто сам экспериментирует может сообщить о своих достижениях. ----------------------------- Для меня подобная информация является руководством к новым экспериментам, если мне это интересно.