Железо для торговли роботом

Страницы: 1
RSS
Железо для торговли роботом
 
Добрый день.
Торгую роботом на минутках. Скорость срабатывания очень важна. Точка входа может длиться доли секунды, за которые робот должен успеть выставить заявку. В связи с этим вопрос. Какое должно быть железо у компьютера, чтобы роботу комфортно торговалось? Сейчас я пользуюсь виртуальным сервером брокера, но планирую переехать на обычный ноутбук и торговать с него. Других программ на ноутбуке не будет. Только КВИК.
Робот на Lua. Работает с таблицей всех сделок и таблицей текущих торгов.

Вот параметры ноутбука. Достаточно ли их?
Celeron ® Dual Core CPU  
T 3100 1,9 GHz
ОЗУ 2 ГБ
 
запустить и протестировать не вариант? если будет тормозить - попытаться оптимизировать код.
ну и интернет канал не менее важен чем компьютер
 
Господа, прошу давать конструктивные ответы в рамках заданного вопроса.
Без советов "потестировать" и "нужен быстрый интернет" я вполне обойдусь.
Спасибо.
 
В принципе должно хватить. Главные затыки будут в Квике, Луа, ну и многое зависит от алгоритма робота - как быстро он работает (этот параметр нам не известен).
 
На указанном железе будет плохо.
Если хотите очень хорошо,
то робот надо ставить на удаленном выделенном железном сервере,
в крайнем случае виртуальном, возможно как сейчас у Вас.
 
проблема скорее будет  не в железе,
а в задержках каналов связи и ОС ( алгоритм сингла).
тестируйте их пингом и потом принимайте решение.
 
Николай, спасибо.
Тогда уточняющий вопрос.
Какое железо лучше:
виртуалка у брокера сейчас такая
http://cs631629.vk.me/v631629274/d4e7/s2WY_6Tl32U.jpg

Переезд на вот такой ноутбук будет ли равнозначным?
http://joxi.ru/bmoVM5YsMjEaYr.jpg
 
Цитата
Переезд на вот такой ноутбук будет ли равнозначным?
У вас робот с типа высокочастотной торговлей или открываете позицию - и на неделю?
если первое - то, как было сказано, основное - это каналы связи, а не железо.
 
Поясню еще раз.
-----------------------
1) Железо можно взять любое, лишь бы памяти не менее 2 Гб.
На этом сервере у Вас 1.5 а пик более 1.5 т е бывает выгрузка на диск - это плохо.
Поэтому памяти не менее 2.
--------------------------
2)  сейчас у Вас квик у брокера в дата центре.
сделайте  в работающем КВИКЕ  во 10:00, 12:00 и 21:00
информационное окно в расширенном варианте и покажите,
тогда можно будет сказать конкретно на сколько хуже.
 
Цитата
swerg написал:
Цитата
Переезд на вот такой ноутбук будет ли равнозначным?
У вас робот с типа высокочастотной торговлей или открываете позицию - и на неделю?
если первое - то, как было сказано, основное - это каналы связи, а не железо.
он не ХФТ, но требует быстрой реакции.
 
Николай, то есть нынешний вариант - виртуалка у брокера - даже имеет реальные недостатки по сравнению с ноутбуком?
(при условии что интернет везде одинаково хорош)
 
полагаю,
что у брокера Вы существенно выигрываете в скорости реакции.
Но это можно сказать лишь если покажите то, что указал ранее.
 
А что брокер Вам обещал и за какие деньги,
когда брали у него место на сервере?
 
Цитата
Космонавт написал:
(при условии что интернет везде одинаково хорош)
Тут бы цифры сравнить, ибо "одинаково хорошо" - это для чего? ролики с ютуба смотреть?
 
пытался посмотреть что же предлагают брокеры  т е какие характеристики и за какую цену.
кроме рекламы, что все круто, ничего конкретного не нашел.
 
нашел у финама:
до 30 транзакций в секунду примерно 5 т р в месяц + 5 т р установка + еще что-то
для моего места нахождения обещают уменьшение задержки в 6 раз.
 
i3-i7, 8гиг, SSD, Win 7 64, если есть виз. библиотеки, то дискретная видеокарта. Хороший бот максимум за неделю отобьет цену своего коня.
Инет оптика + резервный 3G-4G, переключатель программный, не роутером.
У меня так, доволен, ни в каких дохлых виртуалках не нуждаюсь.
 
Если нет SSD, Квик и файлы обмена и сохранения на RAM-диск.
 
виртуалка в 10-00
 
виртуалка в 10-00
(она стоит в Киеве, поэтому время на час назад)
http://joxi.ru/xAe0x7YSYZDa92.jpg
 
Похоже что в киеве.
С первого взгляда выгоды от виртуалки почти нет. Я такие параметры получаю на своем компе(но не у всякого брокера).
Есть брокеры у которых сервера тормозятся сильно.
А где будет комп?
 
резюме - "это не заливная рыба"
 
а как вы управляете терминалом КВИК. Он у Вас на сервере брокера?
 
Цитата
Николай Камынин написал:
Похоже что в киеве.
С первого взгляда выгоды от виртуалки почти нет. Я такие параметры получаю на своем компе(но не у всякого брокера).
Есть брокеры у которых сервера тормозятся сильно.
А где будет комп?
Дома в Симферополе.
 
Цитата
Николай Камынин написал:
а как вы управляете терминалом КВИК. Он у Вас на сервере брокера?
через RDP
 
попробуйте из дома сделать пинг на ip брокера.
Если сервер брокера не ответит то на московскую биржу
и сравните с временем задержки ответа сервера
В приведенной Вами  картинки это 31 mc.
если пинг у Вас будет меньше, то переход на свой комп будет работать также как сервером, иначе будет хуже.
 
странно, что автор не ругается на неконструктивные ответы
 
Николай, спасибо что помогаете.
Тогда такой вопрос.
Ответ  для меня очень важен. Станет понятно почему у моего робота после перехода на нового брокера стало мало срабатываний. Это и стало причиной, почему я встревожился и задал вопрос на этом форуме.

Вот пример сделки, которую заключил робот:
http://1.bp.blogspot.com/-FGMaEclvh9o/VRLRqlmYPiI/AAAAAAAAAiM/vW2ZRh-Wm8A/s1600/FEES_bollinger.jpg
КУПИТЬ, если цена опустилась ниже нижней линии Боллинджера. Данные о сделках берутся коллбеком из таблицы обезличенных сделок (ТВС).

Итак, вопрос:
Если у брокера тормозной сервер, а у меня тормозной интернет, то при наступлении точки входа, отправит ли робот заявку, пусть даже с опозданием? Или возможен вариант, что точка входа была, робот завтыкал, за эти миллисекунды точка входа прошла, и заявка отправлена не будет?
Заранее спасибо.
Ответ на этот вопрос даст мне очень многое.

П.С. Моё личное мнение: робот должен выставить заявку, даже с опозданием, ведь в Таблице обезличенных сделок появится запись, которую он обработает.
 
Полагаю, что в правильной программе выставление заявки по Вашему алгоритму не зависит от задержки общения с брокером.
Если у Вас зависит, то ищите ошибки в логике программы.
------------------------
В качестве совета:
Ваш алгоритм робота удобно реализовать в индикаторе (без заморочкой с колбеками и ТВС)
 
Вот и я думаю, что заявки должны отсылаться, пусть даже с опозданием.
Но на практике очень часто не бывает срабатываний. Снижение цены под Боллинджера есть, а заявка не выставляется.
http://i.imgur.com/fHRuwtY.jpg  вот пример.

(при этом много случаев, когда робот молодец и всё сработало как надо)
 
Я тоже думал о том, чтобы присвоить графику идентификатор, и сравнивать значение свечки CLOSE с Боллинджером, но потом решил что с коллбеком будет быстрее и реализовал через колбек.
 
могу предположить,
что Вы неверно обрабатываете пересечение цены и индикатора,
поэтому сигнал не возникает.
 
вернее сказать ошибка в алгоритме функции пересечения
 
есть существенная разница в реализации подобных действий на истории и в реале.
 
Хочу обратить Ваше внимание на тот факт,
что в ТВС тики,
а на  графиках у Вас свечи.
------------------------------
Т е то,
что вы реализовали это не то ,
что на графиках.
 
Цитата
Николай Камынин написал:
вернее сказать ошибка в алгоритме функции пересечения

Код
function OnAllTrade (alltrade)
    if string.find(ticker_list,alltrade.sec_code)~=nil then
    last_price[alltrade.sec_code]=alltrade.price
    end
end
Код
 function OnParam (class, sec)
     if string.find(ticker_list,sec)~=nil then 
        tablebid=getParamEx(class,  sec, "bid")
        tableoffer=getParamEx(class,  sec, "offer")

            if  bid_best[sec]~=tablebid.param_value then
                bid_best[sec]=tonumber(toPrice(sec, tablebid.param_value))
            end
            
            if offer_best[sec]~=tableoffer.param_value then
                offer_best[sec]=tonumber(toPrice(sec, tableoffer.param_value))
            end
     end
 end
Внутри main идёт перебор 50 акций из тикер листа for sec in string.gmatch(ticker_list,"%a+") do
Код
        if bid_best[sec]~=0 and offer_best[sec]~=0 and last_price[sec]~=0 then        
            if last_price[sec]<line_3 or bid_best[sec]<line_3 then    
                status="Fire_LONG"
            elseif offer_best[sec]>line_2 or last_price[sec]>line_2 then        
                status="Fire_SHORT" 
            else 
                status="SPACE"
            end
        end   

line_3 и line_2 - это нижняя и верхняя линии Боллинджера.
 
На картинках у Вас пересечение свечи с линией болинджера
а в программе используется тик.
-----------------------
свеча - это четыре индикатора вычисляемых по куче тиков.
-----------------------------
поэтому то, что у Вас написано это совершенно не то, что Вы хотите (если смотреть на картинки)
-------------------------------
Нарисуйте картинку тиков внутри свечи и посмотрите .
Если хотите как на картинке то используйте свечи а не ТВС
 
и еще
если я правильно понял,
у Вас как-то странно проверяется пересечение.
Вы используете сделку и заявку Вы именно так хотите?
но тогда Ваш алгоритм вообще не соответствует картинке
 
Цитата
Николай Камынин написал:
Вы используете сделку и заявку Вы именно так хотите?
Раньше - торгуя в БКС - было так: если бид из ТТП опускается ниже нижней линии Боллинджера, робот выставляет заявку на покупку (лучшим бидом).
Когда я понял, что на новом брокере - Неттрейдер - у меня раза в три меньше срабатываний, чем в БКС, то начал экспериментировать.
Сейчас робот отсылает заявку если ИЛИ цена сделки из ТВС опускается ниже нижней линии Боллинджера, ИЛИ бид из стакана опускается ниже нижней линии Боллинджера.
И то, и то меня устраивает с точки зрения точки входа: купить, если цена поцеловалась с нижней линией Боллинджера.
 
В БКС серверы работают медленнее, чем то, что Вы показали раньше.
Примерно 2-5 раз.
 
вернее сказать запаздывание 2-5 раз больше
 
а почему Вы решили, что меньше сигналов - это неправильно?
возможно у вас коридор для болинджера большой задан для текущего рынка.
 
Цитата
Николай Камынин написал:
а почему Вы решили, что меньше сигналов - это неправильно?
возможно у вас коридор для болинджера большой задан для текущего рынка.
всегда был такой коридор.
Я имел в виду, что в новом брокере чересчур много случаев, когда визуально график опустился ниже нижней линии боллинджера (или поднялся выше верхней), а заявка не отправилась.
Вот свеженький пример:
http://i.imgur.com/TIiajov.jpg
должна была выставиться заявка на продажу, а её не было. И в таблице Транзакций никаких попыток зашортить Сбер не было.
Я не понимаю почему.
 
а вот - красота - всё сработало как надо
(тоже сегодня)
http://i.imgur.com/OvOGcPx.jpg
 
могу предположить следующее.
Так как Вы пользуетесь колбеками , а они не синхронизируются
то  у Вас status успевает изменится туда и обратно
до того момента, как Вы на него прореагируете

У БКС сервера работают медленно ( возможно так делают специально, чтобы на вип сервер подключались за денюшку,
возможно старое железо,
возможно клиентов много и сервер не справляется),
короче реакция сервера медленная.
Сейчас у нового брокера у Вас раз в 5 быстрее реакция сервера.
В результате Вы сейчас просто не успеваете обрабатывать status и теряете сигнал.
-----------------------------
Чем медленнее будет рынок, тем лучше у Вас будет срабатывание.
--------------------------
Короче, проблема у Вас в потере сигналов status.
Надо переделывать алгоритм обработки сигналов, либо работать со свечами.
О чем уже писал ранее.
---------------------------------
Чудес не бывает, но  хочется в них верить.
 
дополню ранее сказанное.
пропуски срабатываний у Вас будут всегда происходить по следующей причине.
---------------------------------
Данные в ТВС приходят пакетами.
Т е сделки следующие с малым интервалом друг за другом придут к Вам одновременно.
-----------------------------------
При этом колбек будет срабатывать на них последовательно и непрерывно.
Т е например две сделки совершены с интервалом 100 мс но пришили в одном пакете.
колбек на них отреагирует два раза но с интервалом полагаю менее мс.
Т е у Вас произойдет анализ  статуса на обе сделки одновременно.
Если первая изменит статус а вторая вернет его обратно,
то Вы этот сигнал не увидите и заявку не выставите.
--------------------------------------
Эту ошибку никаким железом не исправишь - это методическая ошибка (ошибка метода).
Ее можно устранить лишь изменив алгоритм работы робота.
Теперь вроде все.
 
попробую запихнуть проверку статуса в колбек.
Тогда он будет реагировать на каждую сделку, даже если они пришли одновременно.
 
проблема решается так:
1) создаем очередь сигналов пересечения
2) в колбеке ТВС каждое новое пересечение запихиваем в очередь
3) в функции main на каждый сигнал из очереди посылаем соответствующую транзакцию и сигнал убираем из очереди
---------------------------------
Т е обработка колбеков должна осуществляться с помощью очередей.
Я делаю в скриптах именно таким образом.
 
Николай, спасибо!
Раскройте пожалуйста термин "очередь сигналов"
 
что именно?
в инете много инфы,
например я когда-то написал это (уже и сам забыл)
http://www.kamynin.ru/archives/5744
Страницы: 1
Читают тему
Наверх