Один из самых частых вопросов, который начинающие программисты-трейдеры задают мне в почту или скайп это — «Как написать бэктестер?». Глобализовать задачу не хочется, дабы она не умерла из-за потери концентрации и мотивированности, поэтому пойдем поступательно, от простейшего, к простому и за несколько итераций реализуем набор алгоритмов, которые позволят тестировать торговые стратегии, базирующиеся на свечках (Bar). Первый бэктестер должен будет уметь исполнять рыночные заявки, по цене закрытия самого последнего бара, присутствующего в контексте торговых данных, для нашего финансового инструмента. Примерный план действий такой:
- Реализуем класс, который эмулирует сделки для наших заявок.
- Реализуем класс, который последовательно читает свечки из текстового файла и добавляет их в контекст торговых данных.
- Реализуем к примеру пробойный обработчик на открытие позиции.
- Реализуем обработчик на закрытие позиции.
- Реализуем консольное приложение, которому можно будет передавать имя текстового файла с историческими данными и которое будет выполнять бэктест для этих данных.
Видео по первому пункту:
сделай лучше доброе дело… напиши биржевой тренажер…
это имитатор торгов типа opentrainer.ru chartgame.com
загоняешь данные минутки лет за 5… из них формируются другие таймфреймы… главная фишка три экрана — ни у кого такого нет… если сделаешь в виде плагина к смартХ от айтиинвест то тебе денежку заплотят… вообще биржевой тренажер крайне важная и полезная штука… smart-lab.ru/blog/155810.php тут один абзац про них
Отдельный блог на самом деле есть, его очень легко найти, надо всего лишь взять фрагмент пространства имен ru.sazan.trader, перевернуть его, и добавить в начале префикс http :-)
Еще есть отдельный канал на Ётьюбе, его тоже очень легко найти :-)
Ну и еще в декабре появился микроблог в Тумблере, куда я пытаюсь нарезать коротенькие фрагменты для тех, кто вообще не умеет программировать и пытается этому научиться.
Почему теряю время? Я люблю общаться, я не социофоб, если бы за способность приобретать новые знакомства и умение приятно поболтать платили деньги, я бы уже наверное давно миллиардером был. Я вообще не поклонник Глеба Архангельского и это не в моем характере сжав зубы и собрав жопу в горсть «идти к цели». Surf's Up смотрели? Так вот для меня тоже главное чтобы было в кайф :-)
Если вы хотите писать за деньги программы, то я могу сразу сказать — это копейки. Мы сами раньше заказывали стратегии, пока не нашли своих программистов. Средний заказ обычно не превышал 30 т.р. При это такая стратегия генерировала прибыль с пятью нулями за 1 месяц. Программистам никто не дает секретные стратегии. Обычно это какая-то исполнительная часть (вывести приказы на биржу, закрыть позиции, переворот). Логику делаем всегда сами. Думаю, мы не одни такие.
И да, за эти копеечные деньги мы старались всю душу вынимать из программиста. Мне кажется, этот рынок не сильно нравится айтишникам. Проще найти веб программиста, чем писателя роботов. Потому что у первых и заказы крупнее, и стресса меньше.
Подумайте на досуге, нужны ли вам заказы. Поверьте, куда больше денег вы получите, если будете работать с трейдерами. А чтобы найти хороших трейдеров, внимание, вам нужна не программирование бэктестеров делать, а начать делать самостоятельно рисерчи и делать мини папиры. Тогда вас сами найдут люди, с которыми вы так захотите сильно работать, что ни на какие Ютюб ролики у вас времени не будет оставаться ;-)
«Программистам никто не дает секретные стратегии»
«начать делать самостоятельно рисерчи и делать мини папиры»
Это разве не противоречие?
В одном предложении говориться, что наемным программистам никто ничего давать секретного не будет (исключение, если человек сидит в офисе, подписал договор, и следует политике компании).
В другом предложении написано, как не наемным программистам привлечь к себе внимание трейдеров или команду трейдеров. Чтобы человека взяли к себе в команду и он начал работать на себя в команде.
А вот зачем специалисту нужна команда, могу сразу ответить. Навскидку:
1) Обучение друг друга. В команде нет лишних людей. Каждый знает что-то, чего не знаю (или плохо знают) другие.
2) Диверсификация рисков. Одному просадить счет значительно проще, чем всей команде.
3) Разделение навыков. Кто-то хорошо умеет искать вменяемых инвесторов (если у вас есть опыт ДУ, то вы понимаете, что не все деньги, что дают, одинаково хороши). Кто-то умеет хорошо координировать действия. Кто-то хорошо анализирует. Кто-то занимается серверами. Кто-то маркет данными. Кто-то оптимизирует комиссии и налогообложение. Кто-то следит за новостями брокеров и бирж.
Человек-оркестр быстро выгорит. Плюс нет смысла работать ради работы. У любого психически нормального человека потребность в деньгах только одна — ради себя и своей семьи (близких).
Поэтому работа в команде является золотой серединой. Есть плюсы работы «на дядю» (минимальные соц гарантии). И есть плюсы частной работы в виде дележа прибыли (и убытков, конечно же :-) )
Писать нужно на своем сайте. С кросс постом тут. Еще лучше свой ЖЖ завести. Писать так же на фейсбуке.
Сильно не надейтесь на смарт лаб. Он несколько для другого создан, чем поиск команды.
Нужны ли мне заказы на разработку? Лично мне об этом вообще нет смысла задумываться. Конечно нужны. Это основная статья моих доходов сегодня, ибо я в гораздо большей степени программист, нежели трейдер. И даже если бы у меня был личный депозит с большим количеством нулей и не допускающий дродаунов робот, я бы все равно не уехал в Ниццу лежать круглые сутки на пляже, а продолжал бы программировать каждый день и брать заказы, потому что мне это нравится.
Что такое «мини папиры»?