Нужен бэктестер на R
Всем привет!
Что-то амиброкер, который я использую для бэктестов, стал после каждого нового запуска программы показывать разные результаты (при тех же настройках).
Видно, что свихнулось в его скриптовых мозгах...
Может кто поделиться хорошим бэктестером на R, в который можно закачивать котирки с форматами с Финама?
Заранее спасибо.
Да, сделаешь в 100 раз меньше. Но хоть ПОЙМЁШЬ, что тестил, пройдя глазами побарно!
Врач-бондиатОр, ну значит возьмите что-нибудь проще.
Хоть excel.
Подачу котировок можно организовать почти куда угодно.
Врач-бондиатОр, ну это я для примера.
Писать можно на любом удобном языке.
Python, Java, C#, LUA...
Или взять готовый продукт типа TsLab.
Однако, это не его беда, а в том массиве данных, которые он получает с сервера торговой системы. Об этом я написал в своем последнем посте, который очень не понравился народу.
Дело в том, что каждый день в базе исторических данных в Ами могут находиться разные данные. Поэтому бэктесты, сделанные в разные дни, выдают разные результаты, и именно поэтому я написал свой тестер, работающий напрямую с базой QUIK. Хотя там тоже не всё однозначно по той же причине.
Вся причина кроется в строго зафиксированном количестве «баров»/«свечек» для любого фрейма. Согласитесь, что 3000 баров на «минутках» — это совсем не то же самое, что 3000 «баров»/«свечек» на, допустим, 5-минутках…
Тестер на Питон есть в одном из моих топиков. Всего навсего цикл перебирающий данные. И все. Там делиться нечем.
ЗЫ То, что R буде жевать 15 минут, Питон перемелет секунд за 20.
Открываете содержание моего блога, в разделе Python топик - Python. Делаем тестер стратегий и… зарабатываем на случайном блуждании.
Я написал свой тестер на Луа, да.
Теперь уже этот труд не кажется столь невозможным, как это виделось 2 года назад, в самом начале. Тем более, что в 60 мозги труднее проворачиваются.)))
Тем не менее, скидать простой тестер без мани- и риск — менеджментов, с постоянными параметрами системы совсем несложно.
А 60 лет по современным меркам молодость ))
Нужно сначала найти способ или источник устойчивых данных. Я пытался решить эту проблему, но, в конце концов, понял, что это невозможно. Поэтому написал тестер для QUIK'а, чтобы данные брать из системы без посредников и там же их обрабатывать.
Вот один из комментаторов написал, что он каждые 2 недели перестраивает базы и перетестирует их, поскольку он обнаружил, что базы меняются с такой периодичностью. Я это тоже нашел где-то в 2017-м. И бросил и Метасток, и Ами, и Финам, и МФД...
А 60 после 90-х — это возраст. Тогда год жизни за три шли (а у кого и поболе)...
Я ведь не коммерсант ни по духу, ни по призванию. Хотя много раз звали в главные селзы идти.
А по образованию Вы, наверное, инженер?
ЗЫ: Я без подвоха.
Могу Вас «провести» по ЛУА для бэк-тестирования. Готов показать основные моменты, а готовое решение будет Вашим. Если терпения хватит самому построить тестер, то…
По поводу Луа у меня учебный курс от oojoo, и там рассмотрен вариант бэктестера.
Но в квике история тикера весьма короткая, и будет ли репрезентативна выборка, особенно на 5-10 минутках — вопрос…
Означенного курса не знаю. Их много в инете. Я изучал по исходной документации.
Данные в КВИКе…Видите ли, после многолетних (это не фигура речи, а именно «так и было на самом деле») опытов я открыл для себя, что толковая система не нуждается в огромном массиве данных и глубокой истории. Об этом я писал в последнем своем посте: «память» старых данных «замыливает глаз», что называется.
Правда, здесь тоже есть лукавство и некоторое кноу-хау.
Кароч, только Вам намекну, я пользуюсь небольшим историческим периодом, просто в системе есть некий параметр, который нивелирует историческую глубину.
Это какие то некорректные настройки.
Если не очень трудно можете показать File-Database settings, Intraday settings оттуда же и Tools-Preferences-Intraday?
Думаю что глюки бывают при compression (когда из минуток пятиминутки итд) из-за таких настроек как на Вашем скриншотах. Просто чтобы закачанные свечи не совпадали в оригинальном формате это вряд ли.
На втором Custom time formats не обязательно как у меня, главное настройки справа.
Если только квиковский датафид гадит.
«Вся причина кроется в строго зафиксированном количестве «баров»/«свечек» для любого фрейма.»
Это не так. Ставим local storage и накапливаем сколько надо, исторические вообще можно подгрузить туда же. И периодический save database конечно.
И — да, сохранить локально можно сколько угодно. Про «периодически save database» (если честно) просто не стал разбираться.
Когда Квиковский датафид упирается в ограничение кол ва баров датабазы Ами то он вместо того чтобы затирать самые первые записи тупит. Это известный баг и Квиковцы в курсе.
Поэтому надо самостоятельно затирать первые записи чтобы он нормально работал, особенно актуально на валютах/акциях.
Но у автора топика не работает на финамовских насколько понимаю. Мне оч интересно.
накосячил
Вы предоставили листинг ордерлога, а я читаю пока что сделки.
Вот текст, выданый утилиткой, которую сам автор всей этой затеи предлагает для проверки содержимого файлов, qsh2txt.exe:
Plaza2:SBER:TQBR::0.01
Received;ExchTime;DealId;Type;Price;Volume;OI
02.10.2020 10:00:05.423;02.10.2020 09:59:40.000;3316238956;Buy;210.4;165;0
————————————————————————————————————
02.10.2020 18:46:03.014;02.10.2020 18:46:02.575;3317696421;Buy;208.16;2;0
первая и последняя сделка.
Моя программа дает точно такой же результат.
То есть ордерлог записан до конца вечерней сессии, а сделки только до вечернего клиринга?
да, у меня тоже самое по SBER
совсем не понимаю!!!
Ест алгоритм, который в коде.
Есть приложение, в котором код.
В итоге есть конкретная программа.
Ей нужны данные.
Качаются с ФИНАМа данные (вполе нормальоные), а ПРОГРАММА НЕ РАБОТАЕТ С НИМИ!!!
Попробуйте после скачки данных для начала тупо отрубить инет ...
А потом проверяйте целостность алгоритма пошагова на ОТКЛИ в виде ошибоек исполнния команды!!!,..
Это же так просто, друзья! ...
Я, не программист, использую программирование даже тут при написании комментов!!!