S#.PMO
Atom
4/28/2016
JaguarFX


С удивлением следил в последние 2 года за процессами трансформации концепции S#: вначале это была бесплатная простая лицензия с увеличением функций за прохождение обучения. Затем открыли коды и лицензия как таковая потеряла актуальность. Недавно снова закрыли коды, сославшись на 'огромные убытки'. А S#.Studio пререименовали в S#.Designer, сделав обрезание функционала…
При этом непосредственно в развитии функционала и удобства библиотек было сделано весьма немного, walk forward optimization как не было так и нет, торгового исполнения индексных инструментов для pair trading как не было, так и нет.

Собственно сам факт отсутствия значимого вклада пользователей в развитие S# в эпоху 'открытого кода' достаточно плотно обсуждался в дискуссии (http://stocksharp.ru/forum/283/Nashi-niesbyvshiiesia-Open-source-miechty/). Краткий итог печален: пользователи делятся либо на алготрейдеров с идеями но без навыков качественного программирования, либо на программистов без алгоидей. И это без учета массы ламеров и алгодрочеров-неудачников.

Однако по итогам проведенного эксперимента вполне можно предложить новую парадигму развития S# как открытой платформы - S#.PMO
Суть в том, что создается Проектный офис (Project Menegement Office - PMO), в котором активные пользователи принимают участие с целью коллективного развития S# на основе проектного подхода и с учетом их компетенций.

Каждый Проект, запушенный в Офисе, имеет цель создать укальный новый функционал или существенно развить имеющийся.
Основные роли в каждом проекте:
Алго-аналитик (1 место) - отвечает за проработку Технического задания, уточнение ТЗ в процессе выполнения, подготовку Справки пользователя в период выполнения, проверяет набор тест-кейсов на предмет охвата функционала и проводит тестирование результатов выполнения задания.
Разработчик (1/2 места) - отвечает за реализацию в новых библиотеках нового функционала согласно ТЗ, результаты передает Тестировщику.
Тестировщик (1 место) - верифицирует ТЗ на предмет четкости изложения до передачи разработчикам, во время разработки подготавливает тест-кейсы для функционального/регрессионного и интеграционного тестирования, после получения разработки или ее компонентов от Разработчика проводит обозначенное тестирование функционала вместе с Аналитиком.
Спонсор (1-4 места) - место открывается в проектах, в которых требуется приобрести внешние платные компоненты или заказать разработку кода на языке отличном от C#, обеспечивает взнос не менее Х тыс.руб. Для таких проектов на этапе старта планируется Бюджет - общая сумма средств, которую необходимо набрать для успешной реализации проекта в целом.

К каждой роли кроме Спонсора предъявляется минимальный набор требований: завершение курса обучения S# и не менее полугода участия в жизни Форума.
К роли Разработчика доп. требование - заключается в наличии как минимум одной полноценной разработки на основе S#, опубликованной на общем GitHub.

Для большей мотивации восстанавливается подход двух лицензий: бесплатная для проектирования (без возможности торговли на живых коннекторах), платная - с полным функционалом и с ежегодной оплатой лицензии. При этом оставляется возможность получить платную лицензию на 1 год за участие в 1 успешно завершенном проекте S#.PMO.
Практика предоставление платных лицензий просто за обучение прекращается(не возобновляется).

Руководителем Проектного офиса назначается Михаил, или иной участник текущей команды S#. Суть данной роли - верификация уместности запускаемых проектов, аудит фин. расходов для проектов с ненулевым бюджетом, акцепт готовых проектов с присвоением статуса успешно/неуспешно выполнен.

Ведение Планов проектов не предусматривается, т.к. понятно что подобные проекты будут массово включать agile-методы итеративной разработки-тестирования, и жесткий контроль сроков каждой стадии не уместен. Однако при желании команды работать с Планом, План проекта может вестись Алго-аналитиком или участником с иной ролью.

Перед стартом работы и при каждом изменении состава команды, участники собираются для очного общения в кафе/мдк/kfc и т.д. Основная цель - социализация и создание атмосферы доверия.


1 2  >
JaguarFX

Avatar
Date: 4/28/2016
Reply


Основной глобальной целью S#.PMO является конечно же ускорение развития платформы S# за счет распараллеливания выполнения и финансирования наиболее значимых для алготрейдеров разработок.
Задача за 2 года догнать и перегнать платформы SmartQuant/Metatrader/NinjaTrader по показателям функциональности и удобства разработки стратегий.

Основные мои идеи для проектов S#.PMO:
1) создание алгоритмов и пользовательских экранов для многопроходной оптимизации ( walk-forward optimization, например по аналогии с реализацией в NinjaTrader),
2) создание S#.Shell-2.0- универсального движка торговых стратегий с реализацией всех базовых типов и кучей полезных примочек (например на базе S#.Studio),
3) создание службы платного выполнения заказов S#.Freelance (по аналогии с MQL.Freelance, но более совершенной) и внутренней системы денежных расчетов S#.Payments,
4) полноценная реализация 'pair trading': создание библиотек купли/продажи необходимого количества бумаг согласно команде и спецификации индексного инструмента, внедрение поддержки расчета индикаторов и отрисовки графиков индексных инструментов и т.д.,
5) создание S#.MToolbox для целей загрузки данных в Matlab из S#.Hydra и факторов работы стратегий из S#.Shell-2.0 в целях углубленного анализа ценовых паттернов и предотвращения оверфиттинга при оптимизации,
6) создание в S#.SkillsTrainer - системы моделирования ценовых паттернов на основе исторических образцов, с целью проведения процесса обучения и развития торгового мышления (по аналогии с ForexTester, но на более продвинутом уровне),
7) создание алгоритмов и пользовательских экранов для мониторинга реального перфоманса стратегий по сравнению с зафиксированным тестовым профилем (strategy performance tracking),
8) создание S#.TickDatafeed - сетевого ресурса накопления и раздачи тиковых данных и данных биржевых ордер-логов, возможно с отдельной годовой оплатой от пользователей (выгода будет получаться за счет того, что пользователям не нужно будет платить персонально за приобретение и хранение ордер-логов),
9) создание S#.CodeLibrary - ресурса накопления и хранения бесплатных образцов реализации отдельных элементов стратегий,
10) создание S#.AlphaClub - сервиса диверсификации торговых рисков успешных алготрейдеров на основе Comon.ru; будет позволять зашарить собственный торговый сигнал другим участникам для диверсификации рисков и переживания периодов отмирания стратегий; условием признания алготрейдера успешным будет наличие опубликованной на Comon.ru сигнала с достаточно жесткими критериями (например: не менее 15 мес торговли, не менее 50% годовых, не более 35% просадки за историю, не менее 12 прибыльных месяцев из 15ти).

Сам я готов стать Алго-аналитиком для 1-2 проектов и Спонсором еще для 2-3х.
Thanks:

Mikhail Sukhov

Avatar
Date: 4/28/2016
Reply


lebedevsrg
С удивлением следил в последние 2 года за процессами трансформации концепции S#: вначале это была бесплатная простая лицензия с увеличением функций за прохождение обучения. Затем открыли коды и лицензия как таковая потеряла актуальность. Недавно снова закрыли коды, сославшись на 'огромные убытки'. А S#.Studio пререименовали в S#.Designer, сделав обрезание функционала…


Дизайнер - это не Студия. Так совпало, что одновременно с убиранием Студии появился Дизайнер. Но сам проект Студия был закрыт давно.

Дизайнер сделан на базе Студии. Студия - это некий графический framework. Дизайнер занял 1 человеко-год. Без Студии создать Дизайнер было бы невозможно за такой период. Минимум бы потребовалось 5-6 человеко-лет.

lebedevsrg

При этом непосредственно в развитии функционала и удобства библиотек было сделано весьма немного, walk forward optimization как не было так и нет, торгового исполнения индексных инструментов для pair trading как не было, так и нет.


Опять я не соглашусь. Это не базовые вещи. В АПИ мы делаем основу. Например, walk forward делается на базе HistConnector достаточно быстро. Торговля иднексами так и вообще не формализованная схема, а некая парадигма.

Делать как раз такие вещи было бы хорошо нашим пользователям. Но, к сожалению, те, кто умеет программировать, не умеют хорошо продавать свои продукты, и вообще анализировать рынок. Поэтому у нас на рынке +10 скальперских стаканов и ни одного индексного проторговщика. Почему? Да потому что так устроены программисты - они не креативны.

lebedevsrg

Собственно сам факт отсутствия значимого вклада пользователей в развитие S# в эпоху 'открытого кода'


Эта эпоха бурно и с фанфарами вошла в интернет, и незаметно исчезла. Лэптопы, планшэты, мобильные устройства, телевизоры, приставки, автомобили, роутеры - масса того, что нас окружает посведневно не имеет открытых исходных кодов. Или сделаны на закрытом брэнче открытого кода, или вообще на закрытых исходниках.

lebedevsrg

достаточно плотно обсуждался в дискуссии (http://stocksharp.ru/forum/283/Nashi-niesbyvshiiesia-Open-source-miechty/). Краткий итог печален: пользователи делятся либо на алготрейдеров с идеями но без навыков качественного программирования, либо на программистов без алгоидей. И это без учета массы ламеров и алгодрочеров-неудачников.


Вот-вот. И я скажу так. Клеем тут может стать только денежный знак центробанка РФ или США. Будут деньги - будет коворкинг. Не будет денег - какой бы инструмент не был - не будет ничего.

lebedevsrg

Однако по итогам проведенного эксперимента вполне можно предложить новую парадигму развития S# как открытой платформы - S#.PMO
Суть в том, что создается Проектный офис (Project Menegement Office - PMO), в котором активные пользователи принимают участие с целью коллективного развития S# на основе проектного подхода и с учетом их компетенций.


Боюсь вы придумали велосипед - сервис фриланс.

lebedevsrg

Для большей мотивации восстанавливается подход двух лицензий:


Для большей мотивации может быть только одно - деньги. И желательно их получать сразу. Нужен инвестор(-ы), готовые покупать сделанное командой или одним человеком. Трудится во имя идеи будет не каждый. Далеко не каждый. Иначе бы в мире преобладали открыватели, исследовати и бизнесмены, а не инженеры или работники с сферы обслуги.

Я, конечно, готов помочь этому благоду делу, только пока не поминаю как именно.
Thanks:

Mikhail Sukhov

Avatar
Date: 4/29/2016
Reply


lebedevsrg
Основной глобальной целью S#.PMO является конечно же ускорение развития платформы S# за счет распараллеливания выполнения и финансирования наиболее значимых для алготрейдеров разработок.
Задача за 2 года догнать и перегнать платформы SmartQuant/Metatrader/NinjaTrader по показателям функциональности и удобства разработки стратегий.

Основные мои идеи для проектов S#.PMO:

8) создание S#.TickDatafeed - сетевого ресурса накопления и раздачи тиковых данных и данных биржевых ордер-логов, возможно с отдельной годовой оплатой от пользователей (выгода будет получаться за счет того, что пользователям не нужно будет платить персонально за приобретение и хранение ордер-логов),
9) создание S#.CodeLibrary - ресурса накопления и хранения бесплатных образцов реализации отдельных элементов стратегий,

Сам я готов стать Алго-аналитиком для 1-2 проектов и Спонсором еще для 2-3х.


Вот эти два пункта на мой лично взгляд наиболее интересные и формализованные. Преамбула о том, как я анализирую идея. Я не рассматриваю проекты вида "сделаем как они, но только лучше". Такие проекты провальные на этапе самой идеи. Делать надо не клоны, и не лучше или хуже. Делать надо то, чего нет на рынке. Это к слову о креативу[wink]

По этим пунктам у меня были в свое время идеи. Но они направлены все таки на создание что-то нового, а не просто клона.

По пункту 8 - S#.TickDatafeed - у меня была идея создать P2P сеть на основе популярного протокола (например, bittorrent). В качестве раздачи выступала б или тикер, или тип информации (аналитика). Раздача производилась бы на основе сериального типа, когда существуют 100500 серий, и по мере добавления новой серии раздача бы обновлялась (обновлялся метафайл .torrent). Например, мы раздаем тиковые данные по акции Эпплу, торгующиеся на ЛСЕ. Значит у нас раздача AAPL@LSE_Ticks. В ней существуют отдельные серии ввиде месяцов или лет. Пользователь соответсвенно при скачивании как в случае сериалом может выбирать нужные ему дни.

Суть должна быть открытой для всех. Люди вносят туда материалы (исторические данные). Существуют модераторы, которые проверяют на дубликаты или неверность раздаваемой информации. И хост-трекер сайт, где можно было бы увидеть наличие доступных в сети данных.

Такая сеть в случае ее популярность минимум бы позволила убрать потребность в хранении данных локально на диске, когда сейчас большинство собирает данные, но использует от силы 0.0001%. А еще хуже - собирают просто ненужный мусор.

Централизованный сервер - тема лично для меня пройдена. Недостатки его в изолированности участников. Система может существовать только за счет непрерывного вливания участников. Иначе может остаться 0 участников, заинтересованных в данных (жизнь меняется, приоритеты так же). А это в свою очередь идет к созданию клона по покупке готовых данных. Я бы даже сказал, купить пакет определенных данных становится выгоднее, чем отдавать немалые деньги и получать все-все данные, даже если 99.99% вообще не нужно.

По пункту 9 - S#.CodeLibrary - идея была в том, чтобы не делать с нуля такую базу, а сделать интеграцию к существующим. На данный момент можно в принципе выделить несколько наиболее популярных таких баз: mql, python (pandas ветка). Например, для пользователей MQL есть проблема, связанная с уходом от форекса на фонду. Это второй поток по значимости ухода из форекса (после, конечно же, естественного слива). Тоесть группа пользователей не маленькая. С чем они сталкиваются? Да с тем, что все их наработки, собранные годами, невозможно использовать на фонде из-за кухонности метака. Следовательно людям с нуля нужно изучать возможности кодирования их систем для фонды. Вполне возможно создать некий тул, который мог бы проигрывать mql4 на фонде, с реальными подключениями. Тогда в принципе можно было бы не накапливать на C# библиотеку, а использовать готовые. Форекс все таки по количеству участников больше, чем фондовый рынок. А генерация контента зависит именно от количества, а не от качества.

С Пандасом такая же проблема, только он сам по себе изначально вещь в себе. Что-то вроде AFL. Дает первоначальный анализ, а как дальше это запускать в торговлю сразу не понятно. Людям даже не очевидно, что их наработки слабо годяться для алгоритмической торговли, так как Пандас - это пакет для анализа, а не для трейдинга. Но сам по себе пакет (и скрипты, что были написаны на этом пакете) в количественном исчислении довольно не маленькие.

Я могу подробнее рассказать про эти вещи (заинтересованность инвесторов, этапы в работе). Можно в телеге, куда вы присоединились судя по моему извещения.
Thanks:

JaguarFX

Avatar
Date: 5/3/2016
Reply


Согласен, эти направления важны, т.к. формируют базы для ускоренной разработки и тестирования торговых идей.
При этом полагаю что более важная тема - развитие универсального движка как в части стратегий, так и в части прикладных программ.
Поясню более подробно: после прохождения курса обучения S# я решил запрограммировать свою первую стратегию. Но столкнулся с тем, что под нее по факту потребовалось писать вся оболочку с нуля. Вначале меня это обескуражило, но тогда на дворе стол 2013г, работал TFS и на нем я нашел исходники S#.Shell, и на их основе уже стал делать робота.
Однако полагаю что многие другие начинающие пользователи S#.API слились просто осознав сам факт того что нужно будет писать все с нуля, и выбрали иные продукты где скриптинг встроен и не требуется писать оснастку. Да универсальности и возможностей в тех платформах меньше, но проше начать.
Соответственно в первую очередь для закрытия этого гепа между первичным обучением и стартом разработок и требуется развитие универсального открытого движка стратегий, с готовым StarterKit из 6-8 базовых стратегий.
Во-вторых наличие такого движка будет интересно и более опытным пользователям S#.API, т.к. даст возможность им ускорить разработку и тестирование в новых областях.
Это важная ешь, так как идей много, и если тратить на воплощение каждой с нуля по 2-3 месяца, то использование S#.API оборачивается запредельными затратами времени по сравнению с теми платформами, где есть и готовые движки и открытые крупные библиотеки базовых стратегий.
Поэтому в качестве эксперимента в течение мая я стартую на GitHub отдельную ветку по развитию S#.Shell. и постараюсь сформировать команду по приведенным мной выше принципам. По итогам первого года будет видно насколько жизнеспособна идея S#.PMO.
Thanks: Mikhail Sukhov

Иван З.

Avatar
Date: 5/4/2016
Reply


lebedevsrg

Однако полагаю что многие другие начинающие пользователи S#.API слились просто осознав сам факт того что нужно будет писать все с нуля, и выбрали иные продукты где скриптинг встроен и не требуется писать оснастку. Да универсальности и возможностей в тех платформах меньше, но проще начать.

Вот с этим я соглашусь. Для написания стратегии на S# надо относительно мало времени. Но чтоб ее оттестировать, подробно просмотреть как она себя ведет, нужно написать оболочку под нее, с графиками и тп. И это как раз занимает много времени. Так еще потом надо все присобачить к терминалу, чтоб тоже работало без проблем.
Раньше я ждал S# studio, теперь жду Designer. Непонятно чем ваша ветка по развитию S#.Shell, будет лучше Designer?
Thanks:

Mikhail Sukhov

Avatar
Date: 5/4/2016
Reply


lebedevsrg

Однако полагаю что многие другие начинающие пользователи S#.API слились просто осознав сам факт того что нужно будет писать все с нуля, и выбрали иные продукты где скриптинг встроен и не требуется писать оснастку.


Безусловно, это любой продукт сливает часть своих посетителей. Посетителей у нас много, а пользователей, конечно же, меньше. Наша четкая таргет группа на текущий момент обусловливается нашими продуктами и сервисами. Всех охватить физически невозможно.

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

Что касается Студии или Шела, то это расширение пользовательской базы, безусловно. Но Дизайнер дает расширение больше. Поэтому пока нет в планах как-то доводить до продакшена что-то, что могло бы конкурировать с Нинзей или еще чем-то из той же оперы. Да и смысла особого нет делать то, что уже давно существует на рынке.

lebedevsrg

Соответственно в первую очередь для закрытия этого гепа между первичным обучением и стартом разработок и требуется развитие универсального открытого движка стратегий, с готовым StarterKit из 6-8 базовых стратегий.


Мы это делаем через обучение и саппорт.

lebedevsrg

Во-вторых наличие такого движка будет интересно и более опытным пользователям S#.API, т.к. даст возможность им ускорить разработку и тестирование в новых областях.


Это очевидно.

lebedevsrg

Это важная ешь, так как идей много, и если тратить на воплощение каждой с нуля по 2-3 месяца,


Не соглашусь. Только первые стратегии требуют длительного времени. На вторых уже есть наработки. Тот же Шелл, который пусть даже проклятым копипастом, но все же позволяет достаточно быстро протестировать новую стратегию. Не говоря уже про реал.

lebedevsrg

Поэтому в качестве эксперимента в течение мая я стартую на GitHub отдельную ветку по развитию S#.Shell. и постараюсь сформировать команду по приведенным мной выше принципам. По итогам первого года будет видно насколько жизнеспособна идея S#.PMO.


Прежде чем вы начнете, я хочу вам сказать несколько фактов.

Факт номер 1 - бесплатные помощники. Когда открывались исходные коды, я уже тогда имел опыт работы с бесплатными помощниками. По итогу их работ был результат ввиде или полного переписывания или глубокого рефакторинга. Тоесть терялось время даже больше, чем если бы разработка велась самостоятельно. Кардинально картина изменилась, когда начались привлекаться силы на платной основе. Тут и снизилась нагрузка на координацию, и на коде-ревью. Небо и земля, по ощущениям. Более того, доверять деньги коду, который написан тяп-ляп, сможет не каждый.

Факт номер 2 - стоимость. Продукт, подобный Шеллу - это как и Дизайнер 1 год. Это идеальный сценарий. Тоесть когда программист использует готовые компоненты, написанные нами, а не со словами "там все сложно, лучше я сейчас все перепишу сам с нуля" начинает городить огород. Месяц работы ИТ специалиста известен? Умножьте ЗП_Месяц * 12 - и получите оптимистическую финансовую оценку. Если это будет делать не профессиональный программист, а трейдер, умеющий программировать, то вы сами не захотите использовать подобный продукт в реале.

Я не хочу вас отговаривать от затей, но прежде чем вы начнете махать шашкой, просто подумайте о масштабе. Что-то начать и недоделать (пусть даже остается всего 10-20%) - это незаконченный продукт и для реала он не годиться. Да и продукты, если вы видите, в трейдинге - это бесконечная разработка с бесконечным развитием. Иначе, через какое-то время другой продукт становится снова выгоднее в использовании, чем собственно-сделанный.
Thanks:

JaguarFX

Avatar
Date: 5/5/2016
Reply


Иван З.

Раньше я ждал S# studio, теперь жду Designer. Непонятно чем ваша ветка по развитию S#.Shell, будет лучше Designer?

Ждать тут бесполезно. Тоже в свое время ждал открытия кодов S#.Studio в надежде, что эту разработку можно будет использовать в качестве нового каркаса к собственным стратегиям. Однако после получения доступа я понял бессмысленность этих надежд:
- исходный код S#.Studio оказался крайне нормализированным в смысле разнесения функций по сотне классов, так что разработать и внедрить даже простую форму оказалось делом весьма нетривильным,
- в виду отсутствия документации по схеме классов и принципах работы, время на "погружение" мной было оценено >1 года.
Т.е. стало понятно что поскольку изначально конструкций кода S#.Studio не подразумевает того что ее будут активно дорабатывать пользователи, то и залезть туда со своими алгоритмами будет стоить больше чем остаться на прежнем каркасе.

Designer вообще изначально заявлен как кубический конструктор, поэтому что там ждать - вообще непонятно.
Построение прибыльной торговой стратегии изначально подразумевает что алготрейдера посетила некая уникальная идея, и по результатам тестов она оказалась прибыльной. Для воплощения этой идеи часто даже скриптовые оболочки (Welthlab, Metatrader etс) даже могут быть тесными, а уж кубический конструктор и подавно.

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

Thanks:

JaguarFX

Avatar
Date: 5/5/2016
Reply


Mikhail Sukhov

Прежде чем вы начнете, я хочу вам сказать несколько фактов...

Вероятно с учетом вашего опыта вы правы. Тогда это значит что каждый серьезный проект должен иметь свой бюджет, и несколько другую структуру команды - каждый участник выступает и как алго-аналитик, внося свой вклад в детализацию ТЗ по ключевой идее, и как спонсор реализации.

Thanks:

Mikhail Sukhov

Avatar
Date: 5/5/2016
Reply


lebedevsrg

Designer вообще изначально заявлен как кубический конструктор, поэтому что там ждать - вообще непонятно.
Построение прибыльной торговой стратегии изначально подразумевает что алготрейдера посетила некая уникальная идея, и по результатам тестов она оказалась прибыльной. Для воплощения этой идеи часто даже скриптовые оболочки (Welthlab, Metatrader etс) даже могут быть тесными, а уж кубический конструктор и подавно.


Тесно - это как раз для реализации. А для прототипирования очень даже ничего. Разработка похожа на некую воронку, где на вход идет значительно большее количество данных, чем на выходе. Идей может быть море. А реализаций всего несколько. Если идея дала на реале (а Дизайнер предполагает торговлю с реальным счетом) какие-то денежки, то это даст больший стимул перевести на нормальный язык стратегию. Чем сразу браться и писать на языке программирования.
Thanks:

Mikhail Sukhov

Avatar
Date: 5/5/2016
Reply


lebedevsrg
Mikhail Sukhov

Прежде чем вы начнете, я хочу вам сказать несколько фактов...

Вероятно с учетом вашего опыта вы правы. Тогда это значит что каждый серьезный проект должен иметь свой бюджет, и несколько другую структуру команды - каждый участник выступает и как алго-аналитик, внося свой вклад в детализацию ТЗ по ключевой идее, и как спонсор реализации.



Более того, первую функцию можно исключить. На этапе когда по факту нет ничего + делается скорее клон, анализировать смысла особо нечего. Нужен пул именно людей, заинтересованных оплатить разработку. При наличие денег исполнитель тоже найдется, это лишь вопрос времени. Поэтому вы, если хотите организовывать подобные проекты, заботитесь не о тех вещах. Не о структуре стоит беспокоиться, а о привлеении людей, и мотивации их что-то заплатить. Ведь, скорее всего, напрямую из созданного продукта они не получат не копейки. Только косвенно.
Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy