Блог им. Wolffrr
Итак, это было обычное скучное утро, когда я решил: «А почему бы не попробовать этот Алгопак от Московской биржи?» Я давно слышал про него, а тут как раз была пара свободных часов и чашка горячего кофе. Что может пойти не так, верно?
Регистрироваться было просто. Почта, пароль, подтверждение — стандартный набор. И вот я уже на главной странице Алгопака, который выглядит достаточно дружелюбно. Однако, первый звоночек прозвенел, когда я начал искать справочную информацию. Документация оказалась несколько запутанной, а некоторые разделы вовсе не обновлялись годами.
Для начала я решил не мудрить и создать что-то простое. Пусть это будет стратегия на основе скользящих средних (SMA). Вот мой пример кода на Python, который я решил использовать:
import pandas as pd import numpy as np # Загружаем данные data = pd.read_csv('historical_data.csv') # Параметры стратегии short_window = 40 long_window = 100 # Создаем сигналы signals = pd. <a name="cut"></a> DataFrame(index=data.index) signals['signal'] = 0.0 # Короткое скользящее среднее signals['short_mavg'] = data['Close'].rolling(window=short_window, min_periods=1, center=False).mean() # Длинное скользящее среднее signals['long_mavg'] = data['Close'].rolling(window=long_window, min_periods=1, center=False).mean() # Генерируем сигналы покупок и продаж signals['signal'][short_window:] = np.where(signals['short_mavg'][short_window:] > signals['long_mavg'][short_window:], 1.0, 0.0) # Генерируем торговые позиции signals['positions'] = signals['signal'].diff() print(signals.tail())
Я загрузил свои исторические данные и запустил этот скрипт, чтобы проверить, как бы моя стратегия сработала в прошлом. Это как путешествие во времени, только без Доктора Кто. Результаты были достаточно интересными. Некоторые сделки показали хороший результат, но были и такие, которые оставляли желать лучшего.
Здесь я столкнулся с первым серьёзным недостатком: тестирование на исторических данных было слишком медленным. Приходилось ждать по несколько минут, что для трейдера — вечность. Это место могло бы быть улучшено, добавив больше серверных мощностей или оптимизировав код.
Решив, что стратегия достаточно хороша для старта, я подключил её к торговой платформе через Алгопак. Удивительно, но это оказалось проще, чем я ожидал. Алгопак позволил мне быстро интегрировать мой скрипт и запустить его в реальном времени.
Конечно, были моменты, когда мне хотелось биться головой об стену из-за неожиданных рыночных колебаний, но это нормальная часть процесса. Вот тут мог бы быть мем с грустным Пикачу, если бы можно было добавлять мемы.
В конце дня я открыл статистику и увидел, что моя стратегия заработала небольшую, но всё же прибыль. Это было приятно, как находка денег в старых джинсах. Конечно, до миллиона долларов мне было далеко, но я уже почувствовал потенциал.
С каждым днём я продолжал улучшать свою стратегию. Я добавил больше условий для входа и выхода из сделок, начал использовать более сложные индикаторы и тестировал на больших объёмах данных.
Вот пример того, как я добавил индикатор RSI:
# Расчет индекса относительной силы (RSI) def RSI(series, period): delta = series.diff() gain = (delta.where(delta > 0, 0)).rolling(window=period).mean() loss = (-delta.where(delta < 0, 0)).rolling(window=period).mean() rs = gain / loss return 100 - (100 / (1 + rs)) signals['RSI'] = RSI(data['Close'], 14) signals['signal'] = np.where(signals['RSI'] > 70, -1, np.where(signals['RSI'] < 30, 1, 0)) signals['positions'] = signals['signal'].diff() print(signals.tail())Критика и предложения по улучшению
Алгопак от Московской биржи — мощный инструмент, который может значительно облегчить жизнь трейдерам и инвесторам. Однако, есть над чем работать и что улучшать.
Документация оставляет желать лучшего. Необходимы более подробные и актуальные материалы, а также видеоуроки и вебинары для новичков. Это сэкономит массу времени и нервов.
Скорость тестирования на исторических данных действительно разочаровала. Это скорее связано с использованием Python, который может быть медленным на объемных данных. Было бы интересно узнать у других пользователей: в чем вы тестируете свои стратегии? Какие библиотеки сейчас считаются лучшими для этого?
К сожалению, официальной технической поддержки у Алгопака нет вовсе. Вместо этого есть уютный чат в Telegram, где пользователи могут обмениваться опытом и помогать друг другу. Это не всегда удобно, но все же лучше, чем ничего.
Интерфейса как такового у Алгопака нет, так как это программная библиотека. Все взаимодействие происходит через код, что может быть не совсем удобно для новичков. Добавление графического интерфейса или хотя бы более удобных инструментов для визуализации было бы большим плюсом.
Алгопак имеет большой потенциал, но требует доработок, чтобы стать действительно удобным и эффективным инструментом для всех уровней трейдеров. Надеюсь, моя история поможет вам понять, что ожидать от этого продукта и какие его аспекты можно улучшить. Впереди еще много возможностей, и главное — не останавливаться на достигнутом.
Тоже захотелось поковыряться, питон чуть чуть знаю. Все таки если бота запускать (для интрадей) то на ММВБ, мало инструментов с хорошей ликвидностью. К сожалению.
Gambler, При ближайшем рассмотрении — это просто доступ к старому ISS по REST API. Так что можно писать на любом языке. Собственно у них там и выложены примеры библиотек на разных языках. И их своя на Питон.
Видимо сейчас, если не брать C языки, то проще на Go, Rust, возможно C#, хотя он не так чтобы быстр.
Gambler, Единственное, что вижу интересным в уже реализованном — это их Super Candles. Хотя они пока только 5 минут. Не надо самому рассчитывать данные по потоку сделок и стакану.
Основной вопрос — сколько это будет стоить после подключения мотенизации.
Gambler, Так в документации описана методика, в разделе Методика расчета данных. data.moex.com/directory
vwap типовой расчет, остальное тоже в рамках обычного расчета.
Чёт у меня какой-то диссонанс).
У вас написано 17 лет на рынке, а по написанным впечатлениям от тестирования стратегии на средних как будто вы первый раз это попробовали).
Чего, кстати, скорость не понравилось — там же векторно, или датасет большой? — Что там, минутки? — Сколько тикеров в датасете?
В коде не фигурирует алгопак.
Нейросеть не помогала в написании статьи, случайно?)
Нейросеть действительно не помогала в написании статьи, но она значительно помогла в освоении Алгопака. С её помощью я смог быстро разобраться с основными функциями и инструментами, а также найти примеры и советы по их использованию. Это очень облегчило процесс изучения и позволило сосредоточиться на создании и тестировании стратегий. А что имеете против такого подхода?
Gambler, Понял, ну супер. Для подобных целей и сам нейросети использую.
Просто ощутил не до конца формализуемое внутреннее ощущение неестественности поста. Когда речь про текст, это нельзя назвать эффектом Зловещей долины. но что-то из этой серии)).
Gambler, Ыыы, понял. Не, ну я всего лишь человек. У меня тоже есть ложные срабатывания).
Да не, так нормик).
в целом все таже рутина на работе, а СЛ стал отвратителен в моей картине мира: либо не захожу, либо нет совсем желания что либо писать.
но иногда подкатывает, может чего и напишу
торговые алгоритмы — примитивная хрень, поэтому, если вам не хватает вычислительной мощности обычного компа с Core i3, значит вы чрезмерно усложнили задачу и зря тратите свое время
если расчет требует нескольких часов, результат будет — говно))