Закрылась еще одна публичная сделка моих роботов:
На текущий момент было 293 публичных сигналов на покупку. 96 от робота AVP, 160 от робота PVVI и 37 от робота CandleMax. Вот ссылки:
Доделал загрузчик по дивидендам. Теперь я собираю дивиденды и загружаю их в свою базу SQL в автоматическом режиме. И в связи с этим решил еще раз пересчитать итоговые значения лучших/худших за 1 год, которые я недавно публиковал для российского рынка в своем ТГ канале. В этом посте я сделаю расчет как на российские, так и на американские акции. В расчет будут взяты данные за период с 2021-12-16 по 2022-12-16. Дивиденды будут учтены как полученные и реинвестированные обратно в акции эмитента.
На российском рынке в качестве базы сравнения взят биржевой фонд SBMX. Из 53 эмитентов, хранящихся в моей базе, плюс показали акции семи компаний HYDR,PHOR,TRMK,BSPB,AKRN,POSI. Больше ставки безриска (на 2021-12-16 сроком на 1 год она была 8.44%) были шесть. Подкачал только HYDR. Остальные принесли убытки. При этом, лучше рынка (но в убытке) было 23, хуже — 21. Из известных имен на 15 процентных пунктов лучше рынка среди этих 23 были такие известные многим компании как T
Мы здесь: Глава 1: Этапы построения комплекта роботов для торговли.
Первая глава – это ваша дорожная карта по этой книге. В ней мы поговорим о большинстве этапов, через которые вам предстоит пройти в процессе создания своего комплекта роботов.
Через какие-то этапы мы пройдём вместе, какие-то предложу освоить самим, снабдив вас нужными знаниями о том, где искать информацию.
Рис.1. Этапы проектирования комплекта роботов.
В этой книге вы получите всё, кроме третьего пункта. А первый мы обсудим очень поверхностно.
Торговых платформ для алготрейдинга очень много, как и языков программирования. И вы вправе выбрать способ написания своего комплекта ботов сами. В таком случае данная книга не превратится в рекламу нашей платформы (OsEngine) для алго-торговли. Мне бы этого не хотелось.
1.1. Выбор торговой платформы для написания, тестирования и торговли роботами
function round(number, znaq) -- функция округления числа num до знаков znaq local num = tonumber(number) local idp = tonumber(znaq) if num then local mult = 10 ^ (idp or 0) if num >= 0 then return math.floor(num * mult + 0.5) / mult else return math.ceil(num * mult - 0.5) / mult end else return num end end
function DaysToDie(class_code, sec_code) -- Получаем количество дней до погашения инструмента,<br />-- class_code - для фьючерсов SPBFUT<br />-- sec_code - код инструмента SiZ2, BRZ2, CRZ2 и т.д. -- если < 4, просим заменить инструмент -- для работы необходима ф-ция round (округляем до целого числа) -- is_run - глобальный флаг работы робота - false = отключаемся. --- local daysToDie = 0 -- количество дней до погашения инструмента ----- получаем количество дней до погашения, если < 4, рекомендуем перейти на новый инструмент ---------- daysToDie = round(getParamEx(class_code, sec_code, "DAYS_TO_MAT_DATE").param_value, 0) if daysToDie <= 4 and daysToDie > 0 then message("Количество дней до погашения инструмента " .. SEC_CODE .. " равно " .. tostring(daysToDie) .. ". Необходимо заменить инструмент в настройках робота") elseif daysToDie == 0 or daysToDie == nil then message("Инструмент больше не торгуется") is_run = false end return daysToDie end
Представим процесс создания и верификации стратегии как исследование, и сведём этот процесс к следующей упрощенной модели: цель исследования это вопрос, само исследование — процесс ответа на вопрос, результат исследования – ответ на вопрос.
Так вот часто, эти три компонента в модели А. Не согласованы, Б. Процесс согласования не проходит через сознательный уровень. Поясню:
(А) – Ну тут обычно всё просто: если ты задаёшь один вопрос, а отвечаешь как будто на другой вопрос, то и ответ в итоге не будет отвечать на поставленный вопрос. Или ближе к алго: если ты хочешь оценить робастность стратегии, а в процессе исследования делаешь что-то несусветное, твои выводы не скажут ничего про робастность. Например, я оцениваю робастность стратегии и хочу получить наилучшие параметры для торговли (вопрос), делаю оптимизацию на истории и отбираю ТОП1 прогонов, беру от него набор значений параметров (ответ).
(Б) – Многие тупо не отдают себе отчет что они делают, почему именно так, как процесс ответа на вопрос согласуется с вопросом, как ответ соответствует вопросу и т.д. Ну т.е. многие исследуют именно так, а не иначе потому «а вот я слышал, что это работает», «я пробовал, вроде сработало» или ещё почему-то. Не скажу, что более глубокий уровень осознанности в этом деле прям обязательный, если у тебя что-то работает (твой подход) – ну и отлично.
Но я люблю осознанность:
Простая сезонка на рос рынок, покупка ртс во вторник, продажа в четверг. Мой первый бот был таков с пачкой фильтров. Так или иначе с этого можно начинать и изучение статистических особенностей рынка даст вам возможность первого шага и лучшего понимания рынка.Сделаем бэктесты чуть шире. Первое число это день входа (вечером). Второе число — день выхода (утром).