Блог им. FineLogin |Лайфхак QLUA для загрузки больших данных

Мой дорогой друг, если ты гоняешь бэктесты в QLUA, то тебе регулярно приходится загружать исторические данные. Как правило, это текстовый файл с тысячами строк в формате D,T,O,H,L,C,V:

20220915,090000,61420,61497,61406,61464,241
20220915,090100,61460,61476,61420,61451,160
20220915,090200,61444,61489,61436,61479,185

Осмелюсь предположить, что эти строки ты заливаешь в массив с помощью string.match. Это готовый парсер строки с разделителем. Работает достаточно шустро. Я на нем сидел пару лет.

Когда данных не много, такой метод загрузки не напрягает. Но когда за день 20-30 раз загружаешь сотни тысяч или миллион строк, то потери времени становятся невыносимыми.

Стал искать способ ускорить этот процесс. И он таки нашелся. Выяснил следующее:

Если строки в файле истории сконвертировать в такой вид (делается 1 раз):

table.insert(MyTable,{«20220915»,«090000»,61420,61497,61406,61464,241})
table.insert(MyTable,{«20220915»,«090100»,61460,61476,61420,61451,160})
table.insert(MyTable,{«20220915»,«090200»,61444,61489,61436,61479,185})



( Читать дальше )

Блог им. FineLogin |С чего начать алготрейдеру?

Первое, с чего советую начать:

ПРОТЕСТИРОВАТЬ ДЕТСКУЮ ВЕРУ В УРОВНИ

Как протестировать уровни?

1. Возьми отсюда данные формате Open, Hight, Low, Close за 5 лет (таймфрейм — по вкусу, например, 1 час)
2. Возьми свой любимый инструмент программирования.
3. Составь алгоритм, обрабатывающий простейший горизонтальный уровень двух экстремумов.

Например, такой:

С чего начать алготрейдеру?

Переменных всего 6 штук:

1. Ширина полосы уровня
2. Высота подъема цены над уровнем
3. Ширина полосы подъема цены над уровнем
4. Триггер входа в позу (пересечение верхнего или нижнего края полосы уровня)
5. Направление сделки (лонг/шорт)
6. Размер Тейк/Стоп

Итого, у тебя получится конструкция из шести вложенных циклов, перебирающих шесть переменных в разумных интервалах значений. На выходе из циклов программа должна выдать результаты, содержащие кол-во прибыльных сделок, сумму прибыли, кол-во убыточных сделок, сумму убытка. Эти данные должны быть сформированы за каждый день тестового периода. Используя эти результаты ты без труда сможешь их проанализировать в различных срезах в каком-нибудь Excel.

( Читать дальше )

Блог им. FineLogin |Девять базовых алгоритмов на МА

Когда я с утра до ночи тестировал теханальные системы, у меня появилась потребность в систематизации исследований, чтобы не ходить кругами и не терять время. Пришлось классифицировать теханальные индюки на базовые и производные и типизировать торговые алгоритмы на базовых индюках. Ниже выкладываю часть проделанной работы. Вдруг кому-то пригодится.

Девять базовых алгоритмов на МА, на основе которых строятся тысячи вариаций (об этом — в конце):

Девять базовых алгоритмов на МА 

( Читать дальше )

Блог им. FineLogin |Коротко о скользящем тейке

Внимание! Если вы не занимаетесь тестированием торговых алгоритмов, не читайте этот пост. Он опасен для вашей веры в продолжение тренда.

Как показали многочисленные тесты, скользящий тейк убивает прибыль. Почему? Потому, что точка смещения тейка — это новая ставка с неизвестной вероятностью успеха. Другими словами, скользящий тейк генерирует ставку на удачу. Поясню картинкой:
Коротко о скользящем тейке
Первая ставка — лонг с рассчитанной (исторической) вероятностью 60%/40%. 
Вторая ставка — лонг в точке смещения тейка с неизвестной вероятностью.
Почему с неизвестной? Потому, что она не подтверждена историей.

Понятно?

Если НЕТ, напишите, пожалуйста, в комментах — что не понятно. Постараюсь объяснить)


Блог им. FineLogin |Как правильно начать торговать

Мой дорогой друг, этот короткий пост поможет тебе начать движение в правильном направлении. Потрать пару минут на чтение и пять минут на размышления. Возможно, это спасет твои деньги и здоровье.

Классический трейдинг построен на предположении о том, что закономерности прошлого повторятся в будущем:

Как правильно начать торговать

Откуда взялось такое предположение?

С этим всё просто. Ты видишь на графике повторяющиеся формы и предполагаешь, что эти формы повторятся в будущем. Так у тебя появляется вера в возможность заработать на графике.



( Читать дальше )

Блог им. FineLogin |Где ставить стоп и тейк...

Про стопы и тейки пишут и рисуют всякое. И в книжках и в интернетах. Особо красиво смотрятся рассказы про % риска со всякими умными формулами. Осмелюсь утверждать, что все это херня.

Посмотрите, на этот поток данных:




Где ставить стоп и тейк...

По правой оси цена бегает вверх-вниз и больше в этой системе ничего не происходит. График — это плод человеческого воображения, получающийся за счет смещения правой оси во времени. В реальности никакого графика не существует. Есть только меняющаяся цена:


Где ставить стоп и тейк...

( Читать дальше )

Блог им. FineLogin |Хмм...

Позади 21 торговый день Октября. Робот дал 6% от ГО с учетом всех потерь. 1-2 сделки в день. 13 дней в плюс, 8 дней в минус. В Ноябре заряжу в два раза больше контрактов. Пусть работает. Это уже второй алгоритм, прошедший WFT. Первый зарядил летом. Полет нормальный. Логику пока не трогал.

Цель — не менее пяти диверсифицированных (принципиально разных) алгоритмов, прошедших WFT. Два уже есть. Осталось еще три. Задача сложная, но интересная. Впереди новые тысячи вариантов. Надеюсь, за пару лет справлюсь. А может и за пять. Не знаю))


Блог им. FineLogin |Заметки алготрейдера. Соотношение высот баров.

Раз уж завел свой блог, буду выкладывать сюда заметки тестировщика торговых алгоритмов. Возможно, они кому-нибудь пригодятся.

Просчитал сбер, сишку, брент и ришку на достаточно длинных периодах. Таймфреймы М1, М5, М10, М15, М30 и М60. Выяснил, что средний оверсайз бара над предыдущим баром составляет около 50% от средней высоты бара за исследуемый период. Поясню на картинках:

Фрагменты графика выглядят:

  Заметки алготрейдера. Соотношение высот баров.

( Читать дальше )

Блог им. FineLogin |Отчет о тесте стратегии "Хай-Лоу предыдущего дня"

Протестил стратегию уважаемого Сергея Тарасенко. Спасибо ему за содержательный пост и активность в комментах. Алгоритм реально простой. Тестить на дневках — плёвое дело:

Если H(-1) < H то закрываем шорт (если открыт) и открываем лонг на уровне H(-1).
Если L(-1) > L то закрываем лонг (если открыт) и открываем шорт на уровне L(-1).
Открытую позу переносим через ночь.

Вот, собственно, и весь алгоритм))

----------

Протестил с 2010 по 2021 год включительно несколько фьючей. Потери заложил -5 рублей на вход и -5 рублей на выход. Тестил по годам.

Вердикт:

Рыба есть. Местами даже жирная. Но алгоритм дает внутригодовые просадки таких адских амплитуд, что среднестатистический мужчина будет срать силикатными кирпичами и кричать от боли.

Например, внутригодовое отклонение от идеальной (прямой) эквити может превышать 100% от финального результата. А брент в 2014 году нарисовал акуенный минус. Сишка нарисовала не менее акуенный минус в 2021 году.



( Читать дальше )

Блог им. FineLogin |Тестируем робота перед покупкой

Мой дорогой друг, если ты недавно решил разбогатеть на бирже, значит ты тот самый новичок, за деньгами которого охотятся опасные насекомые, типа продавцов роботов. Вот тебе совет, как протестировать робота перед покупкой. Следуй этому совету и сохранишь свои деньги.

Метод тестирования называется Walk-Forward Test (WFT). Выглядит метод так:

Тестируем робота перед покупкой

Короткое описание:

Всякий робот состоит из двух основных блоков — блок логики и блок транзакций. Блок логики обрабатывает данные и выдает сигналы блоку транзакций. Блок транзакций интереса не представляет. Пусть программисты в нем копаются. А мы поговорим про блок логики. Как он работает и откуда знает — когда покупать и когда продавать?

Человек (обычно это прыщавый программист) читает теханальную литературу, скачивает

( Читать дальше )

....все тэги
UPDONW
Новый дизайн