Сегодня задачей ставил проверку передачи пакетов в GATE_trans2quik
(С++ код, передающий данные от quik по сокету в java модуль робота) к моему асинхронному сокету клиенту (на java). Также проверял корректность парсинга разных пакетных компановок от с++ модуля, плюс подкорректировал синхронизационные механизмы и ожидающие алгоритмы (для экономии процессорного времени). В общем :) все проработало весь день не потеряв не единого пакета данных :) и не свалившись в ошибку-исключение.
Тройной ГИП-ГИП УРА! :)))))
Так же задачей ставилось корректное поддержание-подсчет открытых позиций и заявок висящих в стакане в режиме ожидания. :) Все тоже в процессе корректно вычислялось. Так же сформировал механизм подсчета эквити «налету» без обращения к квику с подсчетом прибыльно-убыточных пунктов, что брала каждая закрывающаяся сделка.
Прикрутил в офф-лайн режиме торговли по хистори свой механизм мэтчинга заявок, теперь можно смело тестировать по тиковым данным! :) Механизм таков, если я выставляю заявку лучше хистори сделки по этому же направлению, то считаю, что сделка прошла успешно, если же цена будет равна моей — считаю, что она не исполнилась (даже будучи на цене бида или аска), потому как беру под сомнение что в стакане на данном уровне моя заявка была первой. Таким образом я всегда задаю смещение в шаг цены в сторону ее улучшения. Теперь на этом можно смело тестить любые тиковые стратегии не переживая что это «липовые предположения входов» — все по чесноку!!!
Более того :) режим виртуального мэтчинга я прикрутил к DDE потоку сделок. То есть если у меня отключен мой шлюз, но квик передает котировки роботу я осуществляю по принципу офф-лайн торговли собственный мэтчинк :) и при этом получаю на 95% достоверную эквити торговли! :))))) вот такую фишку я пока нигде не встречал ;) Т.е. робот формирует сделки и считает профитные-убыточные пункты так если бы это делала биржа. Само собой подсчет комиссии не ведется и ее надо дополнительно вводить согласно тарифам, но чтобы оценить силу алгоритма этого более чем достаточно! :) Программа само собой не эмулирует задержки на стороне сервера квика, но если скажем пришел одним пакетом на 50 сделок «шип» а у меня стоял пока не исполненный шорт, то мой модуль мэтчинга все корректно обработает и сформирует в месте лимитки сделку. По рынку я считаю что я приобрел заявку пришедшей последней в DDE пакете. Т.е. мой мэтчинг эмулирует проскальзывания и неисполнения заявок в случае если цена «начала уходить» от текущей цены выставления заявки не совершив ни одной сделки чуть хуже моей цены
Вот скрины с 500+ сделками на тиковом графике ММВБ-Сбербанк за сегодня
(2 части)
алгоритм торговли в этой версии очень похож на маркет мейкерский: накапливает объем ожидая разворота. Само собой в нем есть узкие места, которые на корню могут зарубить профит. Во первых сегодня все же остались висеть неисполненными парочка заявок, причем именно эти заявки должны были брать все движение в своей волне :( В этих местах надо было входить по рынку, но! Сделки по рынку очень коварны — ими можно покупать хай и продавать лой. Я отключил эту стратегию пока что, не реализовав описание вложенных диапазонов-боковиков.
Еще особенность, что во фьюче нельзя с лонга перевернутся сходу в шорт и наоборот. Поэтому в этой версии алгоритма я тестирую «двойнной объем» через который и происходит переворот. То бишь если у меня шорт и -1 позиция, то я пуляю квику вначале +1 заявку, затем еще раз +1 и того в одном месте чаще всего оказывается 2 заявки, которые могут исполнится по шкале времени со смещением, но чаще выполняются в одной точке как один значок но с описанием отдельных сделок. Само собой это лишние задержи, но вроде как другого способа нет :(
К конечной первой боевой версии стратегии приступаю завтра же, потому как основные инфраструктурные моменты в связке с моим шлюзом решены и я получаю все мне необходимые данные и правильно их трактую внутри модуля алгоритма.
p.s. сегодня таки поперла акцулька О2ТВ ))) в которой я сижу 3.5 месяца ))))ахаха… столько же жду ТКСМ по средней цене 4.31