В нашем блоге мы уже публиковали истории о том, как программисты зарабатывали на фондовом рынке, применяя свои знания новых технологий (например, машинного обучения). В комментариях к подобным материалам некоторые пользователи Хабра говорили о том, что их смущает необходимость рисковать при работе на бирже своими собственными деньгами.
Сегодня мы подробнее расскажем о том, как можно заработать на фондовом рынке, занимаясь только программированием, и не вкладывая собственных средств. Сделать это можно участвуя в специальном конкурсе разработчиков от проекта StockSharp и ITinvest.
Что нужно делать
StockSharp — это open source-платформа для онлайн-трейдинга. Команда проекта совместно с ITinvest приглашают профессиональных разработчиков этим летом посоревноваться друг с другом, разрабатывая новые функции и дополнения к этому продукту.
Условия предельно просты: за каждое изменение (pull request), примененное в репозиторий StockSharp на GitHub, его автору будет выплачиваться денежное вознаграждение. Изменение может являться новой «фичей» для платформы (например, индикаторы технического анализа, стратегии торговли, новый вид графиков и т.д.) или обновление уже имеющейся функции (да-да, тот самый рефакторинг).
Все изменения будут проходить code review от участников проекта StockSharp и после успешного прохождения проверки применены к основной ветке.
Используется единый стиль кодирования, совместимый с Microsoft C#, который является основным языком платформы (кстати, в блоге ITInvest было интересное интервью о том, почему C# и C++ популярны на фондовом рынке).
В качестве примера стиля можно использовать код одного из индикаторов технического анализа (Highest):
namespace StockSharp.Algo.Indicators
{
using System.ComponentModel;
using System.Linq;
using System;
using StockSharp.Localization;
/// <summary>
/// Максимальное значение за период.
/// </summary>
[DisplayName("Highest")]
[DescriptionLoc(LocalizedStrings.Str733Key)]
public class Highest : LengthIndicator<decimal>
{
/// <summary>
/// Создать <see cref="Highest"/>.
/// </summary>
public Highest()
{
Length = 5;
}
/// <summary>
/// Обработать входное значение.
/// </summary>
/// <param name="input">Входное значение.</param>
/// <returns>Результирующее значение.</returns>
protected override IIndicatorValue OnProcess(IIndicatorValue input)
{
var newValue = input.GetValue<decimal>();
var lastValue = Buffer.Count == 0 ? newValue : this.GetCurrentValue();
// добавляем новое начало
if (input.IsFinal)
Buffer.Add(newValue);
if (newValue > lastValue)
{
// Новое значение и есть экстремум
lastValue = newValue;
}
if (Buffer.Count > Length)
{
var first = Buffer[0];
// удаляем хвостовое значение
if (input.IsFinal)
Buffer.RemoveAt(0);
// удаляется экстремум, для поиска нового значения необходим проход по всему буфферу
if (first == lastValue && lastValue != newValue)
{
// ищем новый экстремум
lastValue = Buffer.Aggregate(newValue, (current, t) => Math.Max(t, current));
}
}
return new DecimalIndicatorValue(this, lastValue);
}
}
}
Также можно изучить код коннектора для работы с биткоинами. Дополнительно мы рекомендуем использовать продукт под названием ReSharper, который помогает контролировать качество создаваемого кода.
Прежде чем приступать непосредственно к написанию кода, рекомендуем написать в чат StockSharp сообщение с пометкой «Конкурс» или в раздел фич и почти-фич на GitHub — это позволит обсудить детали планируемого изменения с разработчиками проекта, что повысит шансы на его успешное применение.
Какова награда
За каждое примененное изменение автор будет получать 9 тысяч рублей. Но это еще не все: конкурс продлится до самого конца лета (он закончится 31 августа). После его завершения посредством голосования в группе «ВКонтакте» подписчики сообщества выберут автора лучшего изменения. Этот разработчик дополнительно получит 50 тысяч рублей.
Disclaimer: Изменения, авторами которых являются члены команды StockSharp, не участвуют в конкурсе.
Ссылки в помощь
Почитать больше об алгоритмической торговле и написании торговых роботов можно по следующим ссылкам:
Комментарии (28)
Beltoev
04.06.2015 12:00+4Присоединяюсь к комментариям выше: уточнили бы в заголовке, что конкурс предлагается.
А то читаешь заголовок, интригуешься и заходишь с целью почитать о каком-нибудь методе/сервисе, а на деле получается совсем другоеitinvest Автор
04.06.2015 12:30-1Поправили заголовок. Но даже интересно, как вы вот себе представляете метод/сервис, чтобы никакого риска и только заработок?
Beltoev
04.06.2015 13:37+1А про риск в заголовке ни слова, если быть точнее.
А так, что угодно могло быть внутри: разбор стратегии с ракурса эффективности тех или алгоритмов, рекомендация тех или иных платформ/библиотек для реализации подобного, true story по торговле и тому подобное.
А на деле получаем немного не то, что ожидаем: участвуйте в конкурсе, но сначала попросите разрешения в чате на добавление той или иной фичи. За ваши реализации ТС не платим, только за функционал и исправление багов.
Чувствуете разницу между романтикой «волка с wall street» и обычными буднями разработчика?Beltoev
04.06.2015 13:41Хотя, нет, извиняюсь за одну деталь: ТС упоминается, но неизвестно, примут ли предлагаемую ТС.
Но всё равно всё упирается в общение в чате, как я понимаю
itinvest Автор
04.06.2015 13:46+2Ну камон, какой Волк с уолл-стрит, мы написали уже больше 100 постов в блог на хабре, поверьте попинать за подобную «романтику» выстроилась бы очередь еще и подлиннее чем та, что получилась из недовольных обычным спокойным заголовком.
Про что угодно могло быть внутри — это относится к любому материалу и любой вещи в жизни (сделал покупку, оказалось немного не то, что ожидал, или совсем все не так, как ожидал). Крайне странно делать траблшутинг всех возможных проблем еще до их возникновения.
ТС упоминается, но неизвестно, примут ли предлагаемую ТС
Ну а как должно быть-то? Пришлите нечто, что непонятно, работает или нет, и заработайте свои деньги, вы ведь такой молодец и потратили время. Это несерьезно :)Beltoev
04.06.2015 14:10Какая разница, сколько вы написали постов, если допускаете такие ошибки в заголовке поста?
В первых же комментариях вам делают замечания по этому поводу. Вдобавок к остальным привожу аргументы, «моделирую» состояние пользователя, посещающего эту страницу, а в ответ вы обиженно минусуете карму — это более, чем смешно. Учитывая, что у вас большой опыт написания постов и критику должны принимать адекватно, а не на ножиitinvest Автор
04.06.2015 14:13Более чем смешно обижаться на минус в карму на хабре (на хабре, Карл! тут это сплошь и рядом), который не от нас пришел, если это важно (у поста уже более 5к просмотров, вы думаете все согласны с вашим мнением?) Мы не допускали никаких ошибок в заголовке, давайте вы сначала напишете несколько материалов на хабр, а потом будете выдавать такие определения.
То, что несколько пользователей что-то недопоняли, мы учли и внесли в заголовок изменения — это и называется адекватное восприятие критики.
Ну и вообще, вам есть что сказать по теме топика? А то учить писать заголовки, это все весело и важно, но материал слегка не об этом.
lol_wat
04.06.2015 14:19Без обид, но это и называется кармадрочерство — вместо того, чтобы писать посты на Хабр, вы увидели как первым комментом к топику был высказан негатив и решили сыграть на этой волне, типа «все побежали, и я побежал», надеясь, что аудитория вас оценит. Если проследить вообще, то у большинства, недовольных чем-то в этом топике, число комментариев довольно велико, а топиков почти нет, а если они и есть, то были опубликованы довольно давно по больше части.
Мне кажется, надо быть конструктивнее. Если вы хотите сделать ресурс лучше, то логично в личку высказать автору поста свои соображения по теме того, как его улучшить. А понять, как вообще надо нынче после всех перетрубаций писать на хабр, и как реагирует на это аудитория, можно только практикуясь в создании статей.Beltoev
04.06.2015 14:35Не совсем так: утром увидел новый пост в ленте, не было времени читать, добавил в избранное, чтобы на обеде отвлечься.
Обед. Читаю. Понимаю, что заголовком меня обманули (напомню, я с мобильного), смотрю комментарии: подобная проблема есть, автор отвечает, но заголовок до сих пор без изменений (а ведь не я один такой буду, не так ли?), оставляю ещё комментарий по этому поводу.
Очередной комментарий в посте подталкивает автора к действиям, заголовок меняется, мир становится лучше.lol_wat
04.06.2015 14:36Ну ага, при этом по теме поста ни одного коммента (а мы на Хабре, где люди привыкли в комментариях получать дополнительную добавочную стоимость к контенту самого топика), зато под ним перепись корректоров. Это неверный подход, который убивает суть ресурса вообще, если так задуматься.
lol_wat
04.06.2015 12:41+1Лол, набежали тролли :). Нормальный топик, это же корпоративный блог, чего вы от него ожидали-то? Ну и еще до ката написано про конкурс, так что надо как-то совсем невнимательно читать, чтобы зайти в пост, а потом обижаться на то, что сразу непонятно было про это.
Beltoev
04.06.2015 13:29+3Учитывая, что более половины читает с мобильного, либо переходя из RSS, где есть только заголовок, без ката и, в некоторых случаях, хабов, нужно внимательно подбирать заголовок поста
lol_wat
04.06.2015 13:33+1А есть такая статистика открытая про более половины с мобильных? Я тоже довольно активно пишу посты на Хабре, и мне этот заголовок кажется адекватным. В конце концов упоминание конкурса идет уже во втором абзаце, не сильно и много тратится времени, чтобы это осознать.
Holms
04.06.2015 20:23Хм, и мне что теперь покупать WPF Studio придётся или как?
WPF Studio LicenseHolms
04.06.2015 20:28И еще, скажите ребятам из проекта что-бы писали коментарии на английском, а то как-то криво получается
AlexanderYastrebov
05.06.2015 00:21Я не настоящий с#варщик, но код многих ваших (я насчитал 22) индикаторов можно улучшить (в т.ч. Highest) за счет использования кольцевого буфера, т.к. в них используется Buffer.RemoveAt(0) со сложностью O(n).
А еще у вас кто-то догадался семплы запихать в репозиторий — git clone --depth=1 дает аж 589M
injecto
> Сегодня мы подробнее расскажем о том, как можно заработать на фондовом рынке, занимаясь только программированием, и не вкладывая собственных средств.
И как же?
itinvest Автор
Можно прочитать пост, чтобы увидеть ответ. Спойлер: поучаствовать в конкурсе, запрограммировать дополнение к системе SotckSharp, получить по 9к за каждый принятый пулл реквест (и еще 50, если дополнение будет признано самым лучшим).
injecto
Я, очевидно, прочитал этот пост, в котором вы предлагаете разрабатывать платформу, а не зарабатывать на рынке.
Спойлер: программисты обычно получают _намного_ больше за разработку подобных систем.
itinvest Автор
Вы, очевидно, невнимательно прочитали материал. В нем, помимо прочего, сказано, что многих разработчиков смущает необходимость рисковать собственными деньгами на фондовом рынке (это та «работа» на нем, о которой говорите вы).
Соответственно, участвовать в разработке систем, которые используются для торговли — это все равно участие в работе фондового рынка, но без риска потерять свои деньги. Вроде все понятно.
Про _намного_ больше все также в курсе — покажите, где в материале сказано, что это не так и конкурс предлагается в качестве замены основного заработка? Для технических специалистов, которые погядывают в сторону фондового рынка, но не могут решиться попробовать свои силы в разработке подобных систем, это отличный тестовый полигон, поскольку созданные дополнения пройдут код ревью от профессионалов, которые дадут обратную связь в том же чате.
Короче говоря, не очень понятен ваш какой-то негативный посыл.
dmitrmax
Поддержу injecto: заголовок статьи достоен самой желтой прессы. Не хватает только слов «шок, смотреть видео».
itinvest Автор
Без обид, но вы мало что понимаете в желтой прессе. Однако раз у многих заголовок вызвал вопросы, поправили его
dmitrmax
Что вы, что вы! Как можно на это обижаться? Это явный комплимент! Я действительно ничего не понимаю в желтой прессе. А вы видимо специалист…
itinvest Автор
Ну не захотелось как-то добавлять «… и в прессе вообще», потому что это уже был бы какой-то перегиб :). Мы за конструктивное общение все-таки
solver
Забыли самое важное «Без СМС»