Начнем с традиционной таблицы
Главным неудачником января, как и предыдущих трех месяцев, стал RI-контртренд. Более того, когда в третьей декаде января RI-тренд был отключен от торговли «фильтром большой пилы», я выключил и RI-контртренд. Также Si, торговавшийся в январе в режиме «только лонг с плечом», получил минус из-за падения Si в последние торговые дни января.
В то же время убыток RI-контртренда был перекрыт прибылью RI-тренда и потому в таблице по RI Вы видите плюс. В плюсе закончил январь и Спот+«синтетика» и эта прибыль даже меньше, чем прибыль RI-тренда.
Какую «пользу» принес мне RI-контртренд в январе, можно судить по разнице между прибылью на моем основном счете (см. Итого в таблице) и стратегии Сохраним и приумножим (+3.8%), где его нет.
В целом месяц отличался низкой волатильностью счета (см. Максимальная просадка в таблице) из-за того, что шорты по объемам у меня меньше лонгов (для фьючерсов в два раза, а для Спота в три). А также из-за апериодического включения фильтров «большой» и «малой» «пилы», выключавших торговлю по части систем и даже по всем системам: GAZP во второй декаде, RI – в третьей, SBER – во второй половине месяца.
Первую задачу как мы уже знаем можем решить с помощью data mining.
Переходим к следующей — тестирование стратегий на подгонку и устойчивость к изменениям.
Прежде чем займемся непосредственно тестированием, обсудим такой вопрос “Чем будущий график цены актива может отличаться от прошлого?” или "Почему биржевые роботы умирают?"
Конечно, вопрос попахивает философией, но выдвину свою гипотезу: будущий график отличается от прошлого новыми непредсказуемыми и уникальными комбинациями “тренд-флет”, а именно новой длинной флетовых участков, которые и приводят к затяжным убыткам у трендовых алготрейдеров.
Здравствуйте!
Я на рынке с 2007 года, торговал с перерывами, но следил за рынком постоянно. Но годы идут, и все больше хочется пассивного дохода. И тут я подумал, а не подключить ли робота к торговле? «Вкалывают роботы — счастлив человек». За месяц собрал несложный скрипт, чисто для эсперимента, запустил в торговлю. А он торгует! И даже немного зарабатывает. Пока тестирую небольшим сайзом, но на реальном счете. Попутно думаю, как можно улучшить алгоритм для следующего контракта.
В ютубе веду прямые трансляции, так сказать, для отчетности. Отчет за неделю:
Всем привет!
Это заключительное пост о том, как правильно делать биржу криптовалют.
Подведём итоги того, о чем говорили в прошлых трёх видео. Плюс я ещё одну очень важную и не очевидную вещь скажу. Чтобы помочь тем, кто только начинает делать свою биржу. Как сделать так чтобы алготрейдеры к Вам всё-таки когда-нибудь пришли.
1. Делайте единое АПИ для всех секций
2. Делайте зону колокации и отдельные шлюзы для профессиональных участников. У них должен быть Фикс Фаст и возможность торговать с серверов, которые стоят рядом с биржей.
3. Не забудьте про регистрацию. Закладывайте на это деньги. Изучайте вопрос серьёзно
4. Сделайте единую денежную позицию между спотом и фьючерсами. Об этом мы в прошлых видео не говорили. Но это увеличит объём торгов у Вас на бирже и вполне возможно даст Вам шанс стать популярным в среде алготрейдеров.
Что это такое?
Это денежные средства, на которые можно одновременно покупать и товары со спотовой площадки и с фьючерсной. На классических биржах этот вопрос решился уже лет 50 назад. И сейчас большинство брокеров Вам эту самую единую денежную позицию предоставляют. Тогда как на биржах криптовалют этого массово нет, ибо лидеры среди этих самых бирж на это как-то подзабили.
Но мы ведь не такие? Правильно. Делая свою биржу – делайте сразу хорошо. И люди к Вам потянуться.
Удачных алгоритмов!
— Функция возвращает имя запускаемого скрипта
— может пригодиться для логирования результата (лог_<имя_запускаемого_скрипта>)
scName="" function OnInit(script_path) scName=tostring(get_file_name(script_path)) -- получение полного пути к исполняемому скрипту end function main() message("имя файла = "..scName) end function get_file_name (file) local file_name = file:match("[^\\]*.lua$") -- поиск в строке полного пути к файлу названия скрипта.lua return file_name:sub(0, #file_name - 4) -- обрезка '.lua' в конце строки end