Избранное трейдера zh77
Одинокий боец идущий в огонь в рукопашную или взвод роботов не знающий страха, у кого больше шансов выжить?
Всех приветствую!
Не планировал писать квартальные отчеты, однако! Ожидания прошлого года оправдались. Затишье сменилось лютой волатильностью, которая за первый квартал почти удвоила счет +95%.
Общая эквити тут.
Предыдущие части опубликованы вчера, доступны по ссылке:
0. Введение
1. Торговля с помощью робота
2. Какие торговые системы можно торговать роботом
3. Какие инструменты годятся для торговли роботом, диверсификация
4. Выбор индикаторов и их параметров для системы
5. Как построить торговую систему на тестах исторических данных
6. Психологические аспекты торговли роботом
7. Выводы кратко
2. Какие торговые системы можно торговать роботом
Есть несколько принципов на которых основана робота торговых роботов. Можно выделить следующие категории: HFT роботы – высокочастотные роботы, расположенные близко к бирже, имеющие сложную техническую инфраструктуру. Эта категория роботов борется за каждую миллисекунду в скорости получения информации с биржи и выставлении заявки. Они зарабатывают прибыль на неэффективностях рынка, обгоняя в скорости человека и других роботов, зарабатывая в каждой сделке относительно небольшую сумму, но совершая большое количество сделок. Конкурировать в домашних условиях в этой категории роботов проблематично.
Я уже писал, что у меня сделана C++ DLL, которая получает данные из Lua и пишет их в БД SQLite. Уже писал также, что DLL под Lua делается на раз, и даже приводил коды и шаблон проекта простенькой C++ DLL. Посмотрело несколько тысяч, скачало, аж 12 человек, применят от силы двое. КПД постов, прямо скажем, оч низкий.)
В DLL реализована как связь с Lua, и будет реализована сама стратегия, вот только не решил какая из них. Повторять старые стратегии на новой для меня платформе Quik уже неинтересно, а новых моделей АТС отработано уже несколько. Все моделируется в Python. Часть стратегий не требует сложной математики, и могут быть легко перенесены непосредственно на С++. Другие непосредственно в DLL перенесены быть не могут, т.к. используют пакеты Python — всяческие регрессии и машинное обучение.
В общем, получилось, что DLL является шаблоном для любой стратегии. Все необходимые для АТС данные доступны АТС — реал-тайм данные поступают в DLL непосредственно из терминала, а необходимая история пишется DLL в БД SQLite и читается АТС из базы данных.
Settings={ Name="absorption", period=20, line= { { Name = "cur1", Type =TYPE_LINE, Width = 2, Color = RGB(255,0, 0) } } } --[[ описание свойств: period - период, за каротрый делается расчет назначение: построение поглащения --]] function Init() y = 0 return 1 end function OnCalculate(index) sz = Size() n = Settings.period if index == 1 then y = 0 end i = index if index-n > 0 then if (C(i) < C(i-1)) and (C(i-1) > O(i-1)) and (C(i) < O(i)) and (C(i-1) - O(i-1) < O(i) - C(i)) then y = y - 1 end if (C(i) > C(i-1)) and (C(i-1) < O(i-1)) and (C(i) > O(i)) and (O(i-1) - C(i-1) < C(i) - O(i)) then y = y + 1 end end return y end
Признаться уже достал этот 32-битный Quik 7. Работать стало почти невозможно, начал подвисать практически на пустом месте. А если повесить на Quik Lua, а к Lua прицепить DLL, то вообще все эпизодически вставало. DLL-ки, вообще-то, многопоточные и освобождают вызывающие потоки (события) Lua практически за миллисекунды, но если таких событий много Quik встает. Хотя, он и без Lua и DLL тоже регулярно встает.)
Были и другие причины ухода от 32-бит Quik, но это уже связано с брокером и другими факторами.
Итак, новый брокер — новый 64-битный Quik 8.4.1.6. Наконец сбылась мечта идиота!
Что можно сказать, — х64 Quik работает гораздо лучше, все равно временами немного подвисает, но, вроде, некритично. После логин-пароля, прежде чем работать надо подождать, — потоки обезличенных сделок начинают работать только через 3-4 минуты после старта. В общем, с этим все более-менее ОК.
Следующий этап — надо переводить весь подключаемый к Quik софт с х86 на х64, и если есть исходники, то никаких проблем не должно появиться. Если вы не используете в своем софте каких либо дополнительных DLL, то все должно ограничиваться двумя действиями.
1. Меняете в проекте С++ в разделе Файлы ресурсов 32-битную версию файла Lua5.1.lib на 64-битную версию Lua5.1.lib,
2. Выставляете в свой свойствах проекта компиляцию в x64. Можно даже так: