Блог им. AlexGood

Как защитить свой алгоритм поручая программисту написание робота?

Друзья и коллеги, всем привет!
При поручении программисту написать по своему эффективному алгоритму робота он же узнает принципы входа-выхода, мани-риск менеджмент, количественные параметры! Как защитить свой алгоритм от раскрытия перед программистом?
★1
71 комментарий
Конечно узнает! Что вообще серьёзно думаете что изобретете что-то новое?
avatar
ликвидировать программиста 
avatar
Pringles, это будет профессионально. могу рекомендовать
или этих



Нэш Ван Дрейк (Кот Скрипаля), Руслан баширов — вылитый Бульдог Харламов
avatar
Pringles, 
ликвидировать программиста

законспектировал!
avatar
Pringles, а я бы взял для ликвидации вот этого чувака)



avatar
Pringles, Всех! И торговать руками! 
avatar
Ну очевидно как — писать самому, какие ещё варианты?
Ну разве что ещё сформулировать алгоритм максимально обще, с кучей параметров, задаваемых в конфиге (чтобы даже направление сделки параметризировалось, например), чтобы программист не смог понять в чем вообще логика работы. И потом параметрами уже под себя задать конкретную логику.
Правда, в этом случае уже у вас может быть проблема, что вы не сможете проверить, что программист написал то что надо.
avatar
Eugene Logunov, вот как раз эта вкладка функций будет тупить скорость алгоритма, чем проще код тем он быстрее исполняется и меньше ошибок в нем. 
  Еще могу открыть тайну: ваш грааль интересен исключительно вам самим, что бы его «украли» вам придется еще и доплатить. Ну а если он действительно сможет зарабатывать, то вы сможете платить программистам столько, что им не придет в голову что то у вас перенимать
avatar
Noviy_nik, трейдеры в большинстве неадекваты. Еще раз мне в голову не придет что то воровать у шарамыги с улицы который гоняет свои сраные 200 тыс. А в хэджфонде воровать не стал бы что бы не лишиться места + у них мощная команда юристов 
avatar
StockChart.ru, человек может гонять сраные 200к
А при реализации же думаешь.
И отдельные идеи тестируешь отдельно.
Даже если их в тз нет.
И они обойдены.
Торгуется неэффективность и вполне можно в копилку добавить еще одну неэффективность по результатам выполнения ТЗ.
avatar
Noviy_nik, дело не в том что честный. Конечно если я буду уверен в формуле я буду ее использовать, и это не будет воровство даже
   Дело в том, что к таким как вы изначально относятся как городским сумасшедшим и просто даже нет желания проверять что вы там такое выдали. К тому же проверять надо своими живими деньгами, на истории то все подряд работает. Вы как то неуловимый Джо — не ловят потому что никому не интересен
avatar
Noviy_nik, ну я соглашусь что подрабатывают написанием роботов в основном самые низы профессии так как заработать там что то нерально. В основном там работают те же трейдеры с завода, которые научились что то по быстрому кодить на кровне 8-ми классника. В целом это та каша что варится сама в себе и со взрослым миром взаимодействует слабо.
   Что касается ублюдков — а что проблема отдать свои идеи кому-то даром. Честно, не понимаю… почему бы другим не помочь. Ну тут же на голубом глазу предлагают че-то накодить нахаляву. Все это очень забавно — с одной стороны автор просит сделать ему бесплатно, а с другой ищет как бы его гениальные идеи не сперли. Картинка такого заказчика вырисоывается )))
avatar
StockChart.ru, 
+ у них мощная команда юристов 

вот человек поработал внутри, кое-что узнал, потому ушёл на «вольные хлеба». И что, к нему могут докопаться, он будет раскрывать им свой алгоритм? 
avatar
asfa, там затруднительно будет всю инфраструктуру унести… А на счет кое что узнал, так это норм. В любой профессии что то узнаешь получаешь опыт
avatar
Noviy_nik, В РФ идеи не подлежат защите.
Так что идеи к которым программист придет занимаясь написанием кода не защищаются.

А написать код и при этом не понять его идею.
Наверно можно так сделать ТЗ.
Кусками.
Заменить функции регрессии так средним )
Или в описании и принятии теста не тот тайм фреймйм задать.


avatar
Антон Б, если программист дотошный, ему будет интересно, что он создал. И вскроет все эти пустяковые приблуды — ТФ, регрессии…
Noviy_nik, Вы нанимаете кодера чтобы он закодил.
И желательно с опытом.
Логично?

А опыт это знания и наработки.
В разработке роботов БОЛЬШЕ 50% времени это выяснение что-же хотел заказчик и за что он платит.

Иначе заказчик будет не доволен.
Результата не будет.

Это исследовательский проект где вы нанимаете исследователя.
который к тому же умеет кодить.
как доп функция.

другие просто не возьмутся так как тема не их.
avatar
 задайте задание программисту создать алгоритма компьютерной игры, так зашифровав что он нихрена не поймет что ты хотите те этим торговать.  
Владимир Гончаров, 
задайте задание программисту создать алгоритма компьютерной игры

слишком экзотично!
avatar
Владимир Гончаров, главное потом самому не забыть что и как зашифровал )
avatar
Запрограммировать робота самому. Здесь чужими руками жар загребать не выйдет. Либо забудь про роботов, торгуй руками.
  Хорошо давайте на пальцах объясню. Вот тут куча народа публикует свои прогнозы. И что — они кому то интересны кроме автора?! Так они в открытом доступе и их читают тысячи трейдеров
  А кодер будет реализовывать вашу идею один… да и рынок как таковой ему скорее всего не интересен, иначе кодировал бы для себя

  Другой вопрос что с частными трейдерами адекватный кодер работать не  будет. Меня недавно звали в хэдж фонд на 300 000. Не пошел, потому что надо идти в офис. А шарамыги с улицы вообще часто хотят халявы и считают 20 — 30 тыс в робота пипец инвестицией и выпьют за них всю кровь. Ну нафиг
avatar
StockChart.ru, в этих прогнозах на 90% ничего нет.
а ТЗ чтобы реализовать нужно понять о чем оно.
Хотя-бы для того чтобы оценить трудозатраты.
И в этот момент ты уже собираешь из кусочков.

Вот это уже  есть.
Вот эту функцию я писал.

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

Приходится уже на этапе чтения тз понимать как это будет работать.

С  нуля то же ничего не пишется.
Это не возможно.
Так-как это значит что сфера новая и опыта в нем нет.
Оценить тз на трудозатраты нельзя.
Время и цен сказать нельзя.

Я вот например тз от некоторых людей на этом сайте вообще готов бесплатно сделать ).

avatar
Антон Б, у меня было пару таких заказов. Все эти идеи очень наивны. Я даже мягко пытался намекнуть что это не работает по причинам элементарной математики, но авторы обычно уперты и считают что схватили бога за бороду. Что то с родни городских сумасшедших с идеей вечного двигателя из подручных средств
avatar
StockChart.ru, у меня работают очень! наивные идеи в реале.
очень простые.
e=mc^2 это очень простая формула.
И регрессия очень простая формула.
И матица очень простая вещь.
avatar
Антон Б, ну правильно потому что вы их своими руками регулируете. для других ваши идеи бесполезны
avatar
StockChart.ru, это не так.

торгуются неэффективности.
алгоритм это метод их фиксации в виде позиции в рынке.

неэффективность получается из алгоритма можно вытащить и использовать отдельно.
если она есть.

а если неэффективность никакая не эксплуатируется то робот будет сливать примерно со скоростью комиссии.

если вы предполагаете что неэффективностй нет на рынке то из него надо уходить.

avatar
Антон Б, все неэффективности ограничены по времени. и знает понять когда они закончатся может только авто робота
avatar
StockChart.ru, продавай в мае и уходи до сих пор работает.
для меня еще одна неэффективность это артефакт.
можно ее добавить как фильтр.
или фильтр из другой неэффективности..
ну например из продавай в мае и уходи.

их можно миксовать.

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

avatar
StockChart.ru, а если робот простой? Ну например параметры — тейка, стопа, во сколько заходить, сколько лотов итд. Дорого такая форма ? 
avatar
Eugene Logunov, это если можно отделить расчётную функцию от всего остального. А если у него там всё вперемешку  — надо правильно алгоритм составить
Бьете свой алгоритм на несколько блоков. Каждый блок отдаете на реализацию разным людям. Основная проблема — «срастить» блоки между собой. На самом деле достаточно просто решается. Можно конечно позвать еще одного программера))) но есть способ менее затратный. Вы должны по каждому блоку выставлять ТЗ так, чтобы у каждого модуля был интерфейс приема входных данных и интерфейс выдачи данных. 
Модули которые должны общаться друг с другом должны знать спецификацию интерфейсов и типы данных друг от друга.

Короткий пример. Есть ядро системы и есть подтверждающий индюк. Без их совместной работы ТС является пустышкой. Ваша задача составить ТЗ на написание ядра таким образом, чтобы были четко описаны выходные данные (их типы, объемы, расстановка в переменных и т.п. в простейшем понимании).
Соответственно в ТЗ на индюк вы пишите, что на вход индюку будут подаваться такие данные (такого-то типа, в таком-то объеме, в такой-то расстановке в переменных и т.д.)

Если в ходе отладки возникают ошибки, вы сможете локализовать их и обратиться по гарантии именно к тому прогеру, кто ваял проблемный модуль и сказать «я подаю на вход значения 5 и ААА, а он не фурычит. Переделывай» 
avatar
Serj90, в тз на индюк будет неэффективность.
и во время теста при сдаче вам придется  тестировать на каких-то данных.
а значит этот индикатор отдельно.

а робота по индикатору на md5 (md4) можно за 20 usd купить.
не считайте что кодер идиот.
особенно если он в этой нише несколько лет.
avatar
Антон Б, ну слушайте субподряд тоже никто не отменял, это уже внутренняя кухня исполнителя)))))))))))) Просто при вашей схеме на мой взгляд все модули должны быть совместимы с md5, что опять же можно отразить в ТЗ.
avatar
Serj90, млять что бы собрать модули и продумать их взаимодействие надо самому обладать хорошей квалификацией в программировании 
avatar
StockChart.ru, достаточно знать подходы и методики и не знать всех языков. Принципы программирования везде схожи. Автор может не обладать языком Lua, но знать C# (как я например). И если нужен код именно на Lua, то тут 3 пути:
1. Разбираться с Lua
2. Писать на С#
3. Отдать на аутсорс вот с таким вот вопросом от топикстартера

avatar
Serj90, я понял что вы не профессиональный программист
avatar
StockChart.ru, это верно, но я и не позиционировал себя программистом в принципе))
avatar
Serj90, поэтому несете чепуху. взаимодействие модулей продумывает по факту архитектор а кодить модули может и начинающие. все это говно свести в одно как раз делают профи
avatar
StockChart.ru, какой профи? во то прям наука, подать данные в процедуру и обработать выходные из неё. Это делается проще простого если есть понимание как должны взаимодействовать между собой модули, в каком порядке и при каких событиях, для этого достаточно простой блок-схемы накидать. Самое примитивное и костыльное решение знаете какое? Написать все модули как независимые и самостоятельно исполняемые и связать их путем обмена данных через файлы. Сказать разработчику модуля «А» пиши в файл с именем таким-то значения таких то переменных в таком-то порядке. И сказать разработчику модуля «Б» парси из файла с именем таким-то значения в таком то порядке и по таким переменным. Какого уровня профессионализм тут нужен? Мы не говорим о скорости работы и удобства сопровождения. Схема рабочая? факт есть. А если все модули будут написаны в виде функций или процедур, то выигрыш во всём и сразу. Значит к чему мы приходим? к правильно составленному ТЗ на каждый модуль. Ну и где здесь чушь?
avatar
Serj90, учите паттерны GOF для начала
avatar
StockChart.ru, спасибо конечно, но с этим я уже сталкивался, проблем с написанием программ для себя у меня нет)
avatar
Serj90, боюсь с распределенным управлением толпой начинающих фрилансеров вы не сталкивались
avatar
StockChart.ru, с ними не работал никогда, хотя бы с той позиции если можешь сам, то зачем кого-то звать, тем более начинающих)) Из трех обозначенных вариантов, если мне нужен робот на lua, я изучу lua. Тут вопрос только в трате времени, а не в способностях. Автору я предложил вариант решения проблемы — модульность. Дальше, я вот уверен на 100%, всё зависит от того как подвешен язык, если человек умеет ясно излагать что он хочет, то не будет большой проблемой свести их совместную работу на уровне интерфейсов и регламента взаимодействия.

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

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

Знаете сколько приходит таких задач, вот есть черный ящик где-то там и он выплёвывает такие то данные. Окей, дайте спецификацию, опишите как эти данные обрабатывать и в каком регламенте взаимодействие должно осуществляться. Это вопрос метода, подхода к решению задачи. По сути это вариант перевода задачи от написания всего полноценного кода разом, к вопросам интегрирования. Чем не выход? Отладка — да, дело будет сложное, хотя в большинстве случаев просто срок будет растянут, т.к. возникают накладные расходы на координацию команды, но эта задача упрощается если все модули готовы в срок, настроено корректное и полное логирование.

Может быть ваше категоричное мнение обусловлено моим примером с ядром и индюком, якобы в такой системе больше ничего нет от того она и простая. Но я привел упрощенный пример, касающийся именно тех частей, где будет зашита интеллектуальная собственность. Понятное дело, что там коннектор нужен, отдельные модули для формирования параметров позиции, ведения позиции, блок анализа сделок, расчет риска (хотя это больше функция ядра) и т.п. Там дохрена подзадач, т.к. робот это полноценная система. Но я и не говорил что написание роботов, да еще и силами других людей — это простая задача. Я говорю что методы могут быть простыми, упрощенными. И банально, скажем так второстепенные задачи и индюка мы можем отдать одному прогеру, а ядро другому. Как еще проще объяснить. Программисту отдаем задачу построения кузова, коробки, подвески, рулевого управления и описываем параметры подкапотного пространства + описание интерфейса взаимодействия с коробкой передач. А движок другому программисту. Если стоит вопрос написания всех модулей робота в одном пространстве имен, то это тоже не великая проблема.

avatar
Serj90, мое категоричное мнение основано на опыте кодирования уже дай бог 28 лет
  Сложность реализации от масштаба растет экспонентциально, а не линейно. На коленке что то наваять несложно. Поэтом это очень быстро разваливается под своим весом
avatar
StockChart.ru, с этим не поспоришь. Лайк
avatar
Сергей Сергаев, только тз будет тестироваться частями.
хотя есть такие методы.

я видел 2 раза в тз.

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

только кодер же из регрессии копипастит готовый код.
 и тестирует получается 2 функции.

наивное понимание что кодер без во и регрессию не поймет.
и математику не знает.


avatar
Eugene Logunov, если честно мне бы нужны все эти кишки чтобы можно было исполнять алгоритм из подключаемого файла, а уж файл можно на С++ написать и т.д.  
мудрый инвестор, а еще людей так корежит когда говоришь что это исследование.
и проект исследовательский.
а не услуга по написанию кода по тз.

что программист прямо берет и каждый пункт кодит не читая все тз.
а оценивает объем работы по кол-во листов тз.
(кстати точная оценка ))

avatar
никак
avatar
1) позвать в качестве программиста своего брата
2) предложить программисту написать кастомизированный вариант, т. е. будет вариабле, которая потом будет заменяться вручную, он то конкретных чисел не знает, а подбором заниматься муторно, это ведь не перебор вариантов пароля.
3) взять программиста в долю, размер доли подбирать индивидуально
avatar
Сергей Сергаев, подозреваю что для того чтобы понять как это сделать самому нужно быть программистом, и тогда проще уж самому код написать.
avatar
А в тслабе накидать, не? Или там супер сложный скоростной алгоритм?
avatar
Vovilnik, не владею им и осваивать пока некогда!
avatar
AlexGood, я за неделю довольно хорошо освоил, накидал все популярные стратегии, стратегии всяких гур и убедился, что они полный шлак)))
avatar
Хм, а есть что воровать?
avatar
wrmngr, пока нет!
avatar
AlexGood, так и решайте проблемы по мере их поступления! жизнь коротка!
avatar
просто взять в долю
avatar

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

После этого вы сможете сами реализовать свой замечательный алгоритм. Можно даже сразу перейти к этому пункту, дорогу осилит идущий.

Если ты сам не программист, то никак скорее всего…
avatar
 Тоже думаю что -никак, кроме как самому. Пока разбил систему на 6 скриптов и заказал у 2-х программистов, а дальше тупик 
avatar

теги блога AlexGood

....все тэги



UPDONW
Новый дизайн