В нашем блоге мы уже публиковали истории о том, как программисты зарабатывали на фондовом рынке, применяя свои знания новых технологий (например, машинного обучения). В комментариях к подобным материалам некоторые пользователи Хабра говорили о том, что их смущает необходимость рисковать при работе на бирже своими собственными деньгами.

Сегодня мы подробнее расскажем о том, как можно заработать на фондовом рынке, занимаясь только программированием, и не вкладывая собственных средств. Сделать это можно участвуя в специальном конкурсе разработчиков от проекта 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)


  1. injecto
    04.06.2015 10:25
    -5

    > Сегодня мы подробнее расскажем о том, как можно заработать на фондовом рынке, занимаясь только программированием, и не вкладывая собственных средств.

    И как же?


    1. itinvest Автор
      04.06.2015 10:48
      +3

      Можно прочитать пост, чтобы увидеть ответ. Спойлер: поучаствовать в конкурсе, запрограммировать дополнение к системе SotckSharp, получить по 9к за каждый принятый пулл реквест (и еще 50, если дополнение будет признано самым лучшим).


      1. injecto
        04.06.2015 10:51
        -3

        Я, очевидно, прочитал этот пост, в котором вы предлагаете разрабатывать платформу, а не зарабатывать на рынке.
        Спойлер: программисты обычно получают _намного_ больше за разработку подобных систем.


        1. itinvest Автор
          04.06.2015 10:58
          +1

          Вы, очевидно, невнимательно прочитали материал. В нем, помимо прочего, сказано, что многих разработчиков смущает необходимость рисковать собственными деньгами на фондовом рынке (это та «работа» на нем, о которой говорите вы).

          Соответственно, участвовать в разработке систем, которые используются для торговли — это все равно участие в работе фондового рынка, но без риска потерять свои деньги. Вроде все понятно.

          Про _намного_ больше все также в курсе — покажите, где в материале сказано, что это не так и конкурс предлагается в качестве замены основного заработка? Для технических специалистов, которые погядывают в сторону фондового рынка, но не могут решиться попробовать свои силы в разработке подобных систем, это отличный тестовый полигон, поскольку созданные дополнения пройдут код ревью от профессионалов, которые дадут обратную связь в том же чате.

          Короче говоря, не очень понятен ваш какой-то негативный посыл.


      1. dmitrmax
        04.06.2015 11:54
        +1

        Поддержу injecto: заголовок статьи достоен самой желтой прессы. Не хватает только слов «шок, смотреть видео».


        1. itinvest Автор
          04.06.2015 12:28
          +1

          Без обид, но вы мало что понимаете в желтой прессе. Однако раз у многих заголовок вызвал вопросы, поправили его


          1. dmitrmax
            04.06.2015 18:08

            Что вы, что вы! Как можно на это обижаться? Это явный комплимент! Я действительно ничего не понимаю в желтой прессе. А вы видимо специалист…


            1. itinvest Автор
              04.06.2015 19:52
              +2

              Ну не захотелось как-то добавлять «… и в прессе вообще», потому что это уже был бы какой-то перегиб :). Мы за конструктивное общение все-таки


        1. solver
          04.06.2015 13:48

          Забыли самое важное «Без СМС»


  1. pilezkiy
    04.06.2015 12:00
    +1

    Есть риск потерять впустую время. А время — деньги.
    Так что риск потерять деньги остался. Риски есть всегда и везде.


    1. itinvest Автор
      04.06.2015 12:29
      +1

      Ну жить вообще вредно, но мы до такого уровня обобщения не доходим.


  1. Beltoev
    04.06.2015 12:00
    +4

    Присоединяюсь к комментариям выше: уточнили бы в заголовке, что конкурс предлагается.
    А то читаешь заголовок, интригуешься и заходишь с целью почитать о каком-нибудь методе/сервисе, а на деле получается совсем другое


    1. itinvest Автор
      04.06.2015 12:30
      -1

      Поправили заголовок. Но даже интересно, как вы вот себе представляете метод/сервис, чтобы никакого риска и только заработок?


      1. Beltoev
        04.06.2015 13:37
        +1

        А про риск в заголовке ни слова, если быть точнее.

        А так, что угодно могло быть внутри: разбор стратегии с ракурса эффективности тех или алгоритмов, рекомендация тех или иных платформ/библиотек для реализации подобного, true story по торговле и тому подобное.

        А на деле получаем немного не то, что ожидаем: участвуйте в конкурсе, но сначала попросите разрешения в чате на добавление той или иной фичи. За ваши реализации ТС не платим, только за функционал и исправление багов.

        Чувствуете разницу между романтикой «волка с wall street» и обычными буднями разработчика?


        1. Beltoev
          04.06.2015 13:41

          Хотя, нет, извиняюсь за одну деталь: ТС упоминается, но неизвестно, примут ли предлагаемую ТС.
          Но всё равно всё упирается в общение в чате, как я понимаю


        1. itinvest Автор
          04.06.2015 13:46
          +2

          Ну камон, какой Волк с уолл-стрит, мы написали уже больше 100 постов в блог на хабре, поверьте попинать за подобную «романтику» выстроилась бы очередь еще и подлиннее чем та, что получилась из недовольных обычным спокойным заголовком.

          Про что угодно могло быть внутри — это относится к любому материалу и любой вещи в жизни (сделал покупку, оказалось немного не то, что ожидал, или совсем все не так, как ожидал). Крайне странно делать траблшутинг всех возможных проблем еще до их возникновения.

          ТС упоминается, но неизвестно, примут ли предлагаемую ТС

          Ну а как должно быть-то? Пришлите нечто, что непонятно, работает или нет, и заработайте свои деньги, вы ведь такой молодец и потратили время. Это несерьезно :)


          1. Beltoev
            04.06.2015 14:10

            Какая разница, сколько вы написали постов, если допускаете такие ошибки в заголовке поста?

            В первых же комментариях вам делают замечания по этому поводу. Вдобавок к остальным привожу аргументы, «моделирую» состояние пользователя, посещающего эту страницу, а в ответ вы обиженно минусуете карму — это более, чем смешно. Учитывая, что у вас большой опыт написания постов и критику должны принимать адекватно, а не на ножи


            1. itinvest Автор
              04.06.2015 14:13

              Более чем смешно обижаться на минус в карму на хабре (на хабре, Карл! тут это сплошь и рядом), который не от нас пришел, если это важно (у поста уже более 5к просмотров, вы думаете все согласны с вашим мнением?) Мы не допускали никаких ошибок в заголовке, давайте вы сначала напишете несколько материалов на хабр, а потом будете выдавать такие определения.

              То, что несколько пользователей что-то недопоняли, мы учли и внесли в заголовок изменения — это и называется адекватное восприятие критики.

              Ну и вообще, вам есть что сказать по теме топика? А то учить писать заголовки, это все весело и важно, но материал слегка не об этом.


            1. lol_wat
              04.06.2015 14:19

              Без обид, но это и называется кармадрочерство — вместо того, чтобы писать посты на Хабр, вы увидели как первым комментом к топику был высказан негатив и решили сыграть на этой волне, типа «все побежали, и я побежал», надеясь, что аудитория вас оценит. Если проследить вообще, то у большинства, недовольных чем-то в этом топике, число комментариев довольно велико, а топиков почти нет, а если они и есть, то были опубликованы довольно давно по больше части.

              Мне кажется, надо быть конструктивнее. Если вы хотите сделать ресурс лучше, то логично в личку высказать автору поста свои соображения по теме того, как его улучшить. А понять, как вообще надо нынче после всех перетрубаций писать на хабр, и как реагирует на это аудитория, можно только практикуясь в создании статей.


              1. Beltoev
                04.06.2015 14:35

                Не совсем так: утром увидел новый пост в ленте, не было времени читать, добавил в избранное, чтобы на обеде отвлечься.
                Обед. Читаю. Понимаю, что заголовком меня обманули (напомню, я с мобильного), смотрю комментарии: подобная проблема есть, автор отвечает, но заголовок до сих пор без изменений (а ведь не я один такой буду, не так ли?), оставляю ещё комментарий по этому поводу.
                Очередной комментарий в посте подталкивает автора к действиям, заголовок меняется, мир становится лучше.


                1. lol_wat
                  04.06.2015 14:36

                  Ну ага, при этом по теме поста ни одного коммента (а мы на Хабре, где люди привыкли в комментариях получать дополнительную добавочную стоимость к контенту самого топика), зато под ним перепись корректоров. Это неверный подход, который убивает суть ресурса вообще, если так задуматься.


  1. lol_wat
    04.06.2015 12:41
    +1

    Лол, набежали тролли :). Нормальный топик, это же корпоративный блог, чего вы от него ожидали-то? Ну и еще до ката написано про конкурс, так что надо как-то совсем невнимательно читать, чтобы зайти в пост, а потом обижаться на то, что сразу непонятно было про это.


    1. Beltoev
      04.06.2015 13:29
      +3

      Учитывая, что более половины читает с мобильного, либо переходя из RSS, где есть только заголовок, без ката и, в некоторых случаях, хабов, нужно внимательно подбирать заголовок поста


      1. lol_wat
        04.06.2015 13:33
        +1

        А есть такая статистика открытая про более половины с мобильных? Я тоже довольно активно пишу посты на Хабре, и мне этот заголовок кажется адекватным. В конце концов упоминание конкурса идет уже во втором абзаце, не сильно и много тратится времени, чтобы это осознать.


  1. Holms
    04.06.2015 20:23

    Хм, и мне что теперь покупать WPF Studio придётся или как?

    WPF Studio License
    image


    1. Holms
      04.06.2015 20:28

      И еще, скажите ребятам из проекта что-бы писали коментарии на английском, а то как-то криво получается

      Wrong encoding
      image


      1. itinvest Автор
        04.06.2015 20:42

        Передадим, но вы можете тоже в чатик написать


  1. AlexanderYastrebov
    05.06.2015 00:21

    Я не настоящий с#варщик, но код многих ваших (я насчитал 22) индикаторов можно улучшить (в т.ч. Highest) за счет использования кольцевого буфера, т.к. в них используется Buffer.RemoveAt(0) со сложностью O(n).

    А еще у вас кто-то догадался семплы запихать в репозиторий — git clone --depth=1 дает аж 589M