Как защитить свой алгоритм поручая программисту написание робота?
Друзья и коллеги, всем привет!
При поручении программисту написать по своему эффективному алгоритму робота он же узнает принципы входа-выхода, мани-риск менеджмент, количественные параметры! Как защитить свой алгоритм от раскрытия перед программистом?
Ну очевидно как — писать самому, какие ещё варианты?
Ну разве что ещё сформулировать алгоритм максимально обще, с кучей параметров, задаваемых в конфиге (чтобы даже направление сделки параметризировалось, например), чтобы программист не смог понять в чем вообще логика работы. И потом параметрами уже под себя задать конкретную логику.
Правда, в этом случае уже у вас может быть проблема, что вы не сможете проверить, что программист написал то что надо.
Еще могу открыть тайну: ваш грааль интересен исключительно вам самим, что бы его «украли» вам придется еще и доплатить. Ну а если он действительно сможет зарабатывать, то вы сможете платить программистам столько, что им не придет в голову что то у вас перенимать
Noviy_nik, трейдеры в большинстве неадекваты. Еще раз мне в голову не придет что то воровать у шарамыги с улицы который гоняет свои сраные 200 тыс. А в хэджфонде воровать не стал бы что бы не лишиться места + у них мощная команда юристов
StockChart.ru, человек может гонять сраные 200к
А при реализации же думаешь.
И отдельные идеи тестируешь отдельно.
Даже если их в тз нет.
И они обойдены.
Торгуется неэффективность и вполне можно в копилку добавить еще одну неэффективность по результатам выполнения ТЗ.
Noviy_nik, дело не в том что честный. Конечно если я буду уверен в формуле я буду ее использовать, и это не будет воровство даже
Дело в том, что к таким как вы изначально относятся как городским сумасшедшим и просто даже нет желания проверять что вы там такое выдали. К тому же проверять надо своими живими деньгами, на истории то все подряд работает. Вы как то неуловимый Джо — не ловят потому что никому не интересен
Noviy_nik, ну я соглашусь что подрабатывают написанием роботов в основном самые низы профессии так как заработать там что то нерально. В основном там работают те же трейдеры с завода, которые научились что то по быстрому кодить на кровне 8-ми классника. В целом это та каша что варится сама в себе и со взрослым миром взаимодействует слабо.
Что касается ублюдков — а что проблема отдать свои идеи кому-то даром. Честно, не понимаю… почему бы другим не помочь. Ну тут же на голубом глазу предлагают че-то накодить нахаляву. Все это очень забавно — с одной стороны автор просит сделать ему бесплатно, а с другой ищет как бы его гениальные идеи не сперли. Картинка такого заказчика вырисоывается )))
Noviy_nik, В РФ идеи не подлежат защите.
Так что идеи к которым программист придет занимаясь написанием кода не защищаются.
А написать код и при этом не понять его идею.
Наверно можно так сделать ТЗ.
Кусками.
Заменить функции регрессии так средним )
Или в описании и принятии теста не тот тайм фреймйм задать.
Хорошо давайте на пальцах объясню. Вот тут куча народа публикует свои прогнозы. И что — они кому то интересны кроме автора?! Так они в открытом доступе и их читают тысячи трейдеров
А кодер будет реализовывать вашу идею один… да и рынок как таковой ему скорее всего не интересен, иначе кодировал бы для себя
Другой вопрос что с частными трейдерами адекватный кодер работать не будет. Меня недавно звали в хэдж фонд на 300 000. Не пошел, потому что надо идти в офис. А шарамыги с улицы вообще часто хотят халявы и считают 20 — 30 тыс в робота пипец инвестицией и выпьют за них всю кровь. Ну нафиг
StockChart.ru, в этих прогнозах на 90% ничего нет.
а ТЗ чтобы реализовать нужно понять о чем оно.
Хотя-бы для того чтобы оценить трудозатраты.
И в этот момент ты уже собираешь из кусочков.
Вот это уже есть.
Вот эту функцию я писал.
А вот это интересный поворот — зачем он в тз, и сколько его кодить.
Может его вообще не закодить.
Приходится уже на этапе чтения тз понимать как это будет работать.
С нуля то же ничего не пишется.
Это не возможно.
Так-как это значит что сфера новая и опыта в нем нет.
Оценить тз на трудозатраты нельзя.
Время и цен сказать нельзя.
Я вот например тз от некоторых людей на этом сайте вообще готов бесплатно сделать ).
Антон Б, у меня было пару таких заказов. Все эти идеи очень наивны. Я даже мягко пытался намекнуть что это не работает по причинам элементарной математики, но авторы обычно уперты и считают что схватили бога за бороду. Что то с родни городских сумасшедших с идеей вечного двигателя из подручных средств
StockChart.ru, у меня работают очень! наивные идеи в реале.
очень простые.
e=mc^2 это очень простая формула.
И регрессия очень простая формула.
И матица очень простая вещь.
StockChart.ru, продавай в мае и уходи до сих пор работает.
для меня еще одна неэффективность это артефакт.
можно ее добавить как фильтр.
или фильтр из другой неэффективности..
ну например из продавай в мае и уходи.
их можно миксовать.
можно просто покрывать в мае позиции фьючерсом, получая дешевую по входу облигацию.
с короткой дюрацией.
как раз на лето).
Бьете свой алгоритм на несколько блоков. Каждый блок отдаете на реализацию разным людям. Основная проблема — «срастить» блоки между собой. На самом деле достаточно просто решается. Можно конечно позвать еще одного программера))) но есть способ менее затратный. Вы должны по каждому блоку выставлять ТЗ так, чтобы у каждого модуля был интерфейс приема входных данных и интерфейс выдачи данных.
Модули которые должны общаться друг с другом должны знать спецификацию интерфейсов и типы данных друг от друга.
Короткий пример. Есть ядро системы и есть подтверждающий индюк. Без их совместной работы ТС является пустышкой. Ваша задача составить ТЗ на написание ядра таким образом, чтобы были четко описаны выходные данные (их типы, объемы, расстановка в переменных и т.п. в простейшем понимании).
Соответственно в ТЗ на индюк вы пишите, что на вход индюку будут подаваться такие данные (такого-то типа, в таком-то объеме, в такой-то расстановке в переменных и т.д.)
Если в ходе отладки возникают ошибки, вы сможете локализовать их и обратиться по гарантии именно к тому прогеру, кто ваял проблемный модуль и сказать «я подаю на вход значения 5 и ААА, а он не фурычит. Переделывай»
Антон Б, ну слушайте субподряд тоже никто не отменял, это уже внутренняя кухня исполнителя)))))))))))) Просто при вашей схеме на мой взгляд все модули должны быть совместимы с md5, что опять же можно отразить в ТЗ.
StockChart.ru, достаточно знать подходы и методики и не знать всех языков. Принципы программирования везде схожи. Автор может не обладать языком Lua, но знать C# (как я например). И если нужен код именно на Lua, то тут 3 пути:
1. Разбираться с Lua
2. Писать на С#
3. Отдать на аутсорс вот с таким вот вопросом от топикстартера
Serj90, поэтому несете чепуху. взаимодействие модулей продумывает по факту архитектор а кодить модули может и начинающие. все это говно свести в одно как раз делают профи
StockChart.ru, какой профи? во то прям наука, подать данные в процедуру и обработать выходные из неё. Это делается проще простого если есть понимание как должны взаимодействовать между собой модули, в каком порядке и при каких событиях, для этого достаточно простой блок-схемы накидать. Самое примитивное и костыльное решение знаете какое? Написать все модули как независимые и самостоятельно исполняемые и связать их путем обмена данных через файлы. Сказать разработчику модуля «А» пиши в файл с именем таким-то значения таких то переменных в таком-то порядке. И сказать разработчику модуля «Б» парси из файла с именем таким-то значения в таком то порядке и по таким переменным. Какого уровня профессионализм тут нужен? Мы не говорим о скорости работы и удобства сопровождения. Схема рабочая? факт есть. А если все модули будут написаны в виде функций или процедур, то выигрыш во всём и сразу. Значит к чему мы приходим? к правильно составленному ТЗ на каждый модуль. Ну и где здесь чушь?
StockChart.ru, с ними не работал никогда, хотя бы с той позиции если можешь сам, то зачем кого-то звать, тем более начинающих)) Из трех обозначенных вариантов, если мне нужен робот на lua, я изучу lua. Тут вопрос только в трате времени, а не в способностях. Автору я предложил вариант решения проблемы — модульность. Дальше, я вот уверен на 100%, всё зависит от того как подвешен язык, если человек умеет ясно излагать что он хочет, то не будет большой проблемой свести их совместную работу на уровне интерфейсов и регламента взаимодействия.
Да — там могут быть проблемы, когда будут частые передачи (например) из ядра в индюк и обратно по ходу работы всего ПО, хотя и эти обращения можно рассматривать отдельно. Я работаю с программистами, но несколько на другом уровне, и меня удивляет ваше ярое отрицание возможности разбиения задачи на подзадачи, разделение труда и т.п., тем более если вы опытный программист. (насколько я понял вы таковым являетесь).
Также я слабо представляю что итоговый листинг с включением всех процедур, функций и модулей в коде (чтобы пример был ярким и показательным скажем что это ОС) собирал один единственный профи))))
Знаете сколько приходит таких задач, вот есть черный ящик где-то там и он выплёвывает такие то данные. Окей, дайте спецификацию, опишите как эти данные обрабатывать и в каком регламенте взаимодействие должно осуществляться. Это вопрос метода, подхода к решению задачи. По сути это вариант перевода задачи от написания всего полноценного кода разом, к вопросам интегрирования. Чем не выход? Отладка — да, дело будет сложное, хотя в большинстве случаев просто срок будет растянут, т.к. возникают накладные расходы на координацию команды, но эта задача упрощается если все модули готовы в срок, настроено корректное и полное логирование.
Может быть ваше категоричное мнение обусловлено моим примером с ядром и индюком, якобы в такой системе больше ничего нет от того она и простая. Но я привел упрощенный пример, касающийся именно тех частей, где будет зашита интеллектуальная собственность. Понятное дело, что там коннектор нужен, отдельные модули для формирования параметров позиции, ведения позиции, блок анализа сделок, расчет риска (хотя это больше функция ядра) и т.п. Там дохрена подзадач, т.к. робот это полноценная система. Но я и не говорил что написание роботов, да еще и силами других людей — это простая задача. Я говорю что методы могут быть простыми, упрощенными. И банально, скажем так второстепенные задачи и индюка мы можем отдать одному прогеру, а ядро другому. Как еще проще объяснить. Программисту отдаем задачу построения кузова, коробки, подвески, рулевого управления и описываем параметры подкапотного пространства + описание интерфейса взаимодействия с коробкой передач. А движок другому программисту. Если стоит вопрос написания всех модулей робота в одном пространстве имен, то это тоже не великая проблема.
Serj90, мое категоричное мнение основано на опыте кодирования уже дай бог 28 лет
Сложность реализации от масштаба растет экспонентциально, а не линейно. На коленке что то наваять несложно. Поэтом это очень быстро разваливается под своим весом
1) позвать в качестве программиста своего брата
2) предложить программисту написать кастомизированный вариант, т. е. будет вариабле, которая потом будет заменяться вручную, он то конкретных чисел не знает, а подбором заниматься муторно, это ведь не перебор вариантов пароля.
3) взять программиста в долю, размер доли подбирать индивидуально
Написать длинное, подробное ТЗ. Найти самого годного программиста, такого, чтобы мог бы даже написать бинарный поиск без ошибок. Пригласить на обсуждение ТЗ. В момент, когда программист будет обдумывать ваш эффективный алгоритм курвафиттинга и мартингейла, подкрасться сзади и треснуть по башке чем-нибудь тяжелым. Труп расчленить, печень программиста съесть. Только жарить не надо, лучше даже и не варить, если нет аллергии на кристаллический кофеин.
После этого вы сможете сами реализовать свой замечательный алгоритм. Можно даже сразу перейти к этому пункту, дорогу осилит идущий.
Tatiana Gracheva,
Добрый вечер, отправлял ОБЫЧНЫМ письмом с описью вложения. Не курьерская доставка. Опись вложения составляется, чтобы в случае потери/вскрытия письма, можно достоверно доказать...
Сохраняется высокий темп выкачки природного газа из европейских ПХГ
Текущие запасы газа составляют 108.4 миллиардов кубических метров. Снижение за сутки полмиллиарда кубических метров.
Ав...
Сохраняется высокий темп выкачки природного газа из европейских ПХГ
Текущие запасы газа составляют 108.4 миллиардов кубических метров. Снижение за сутки полмиллиарда кубических метров.
Ав...
any_to_real, вот и я же говорю: — Давай тогда за мужиков!
— На Курском напрямке*взяли у полони — первого наглосакса и еще с ним 12 человек ВСУ.
— Служил с 2019 до 2023 года в ВС Великобритании,...
Метод трех волн, или как я считаю коррекцию. Всем привет! В техническом анализе существует множество способов, при помощи которых можно высчитывать вероятные области ценовой коррекции (откаты). Это ...
или этих
законспектировал!
Ну разве что ещё сформулировать алгоритм максимально обще, с кучей параметров, задаваемых в конфиге (чтобы даже направление сделки параметризировалось, например), чтобы программист не смог понять в чем вообще логика работы. И потом параметрами уже под себя задать конкретную логику.
Правда, в этом случае уже у вас может быть проблема, что вы не сможете проверить, что программист написал то что надо.
А при реализации же думаешь.
И отдельные идеи тестируешь отдельно.
Даже если их в тз нет.
И они обойдены.
Торгуется неэффективность и вполне можно в копилку добавить еще одну неэффективность по результатам выполнения ТЗ.
Дело в том, что к таким как вы изначально относятся как городским сумасшедшим и просто даже нет желания проверять что вы там такое выдали. К тому же проверять надо своими живими деньгами, на истории то все подряд работает. Вы как то неуловимый Джо — не ловят потому что никому не интересен
Что касается ублюдков — а что проблема отдать свои идеи кому-то даром. Честно, не понимаю… почему бы другим не помочь. Ну тут же на голубом глазу предлагают че-то накодить нахаляву. Все это очень забавно — с одной стороны автор просит сделать ему бесплатно, а с другой ищет как бы его гениальные идеи не сперли. Картинка такого заказчика вырисоывается )))
вот человек поработал внутри, кое-что узнал, потому ушёл на «вольные хлеба». И что, к нему могут докопаться, он будет раскрывать им свой алгоритм?
Так что идеи к которым программист придет занимаясь написанием кода не защищаются.
А написать код и при этом не понять его идею.
Наверно можно так сделать ТЗ.
Кусками.
Заменить функции регрессии так средним )
Или в описании и принятии теста не тот тайм фреймйм задать.
И желательно с опытом.
Логично?
А опыт это знания и наработки.
В разработке роботов БОЛЬШЕ 50% времени это выяснение что-же хотел заказчик и за что он платит.
Иначе заказчик будет не доволен.
Результата не будет.
Это исследовательский проект где вы нанимаете исследователя.
который к тому же умеет кодить.
как доп функция.
другие просто не возьмутся так как тема не их.
слишком экзотично!
А кодер будет реализовывать вашу идею один… да и рынок как таковой ему скорее всего не интересен, иначе кодировал бы для себя
Другой вопрос что с частными трейдерами адекватный кодер работать не будет. Меня недавно звали в хэдж фонд на 300 000. Не пошел, потому что надо идти в офис. А шарамыги с улицы вообще часто хотят халявы и считают 20 — 30 тыс в робота пипец инвестицией и выпьют за них всю кровь. Ну нафиг
а ТЗ чтобы реализовать нужно понять о чем оно.
Хотя-бы для того чтобы оценить трудозатраты.
И в этот момент ты уже собираешь из кусочков.
Вот это уже есть.
Вот эту функцию я писал.
А вот это интересный поворот — зачем он в тз, и сколько его кодить.
Может его вообще не закодить.
Приходится уже на этапе чтения тз понимать как это будет работать.
С нуля то же ничего не пишется.
Это не возможно.
Так-как это значит что сфера новая и опыта в нем нет.
Оценить тз на трудозатраты нельзя.
Время и цен сказать нельзя.
Я вот например тз от некоторых людей на этом сайте вообще готов бесплатно сделать ).
очень простые.
e=mc^2 это очень простая формула.
И регрессия очень простая формула.
И матица очень простая вещь.
торгуются неэффективности.
алгоритм это метод их фиксации в виде позиции в рынке.
неэффективность получается из алгоритма можно вытащить и использовать отдельно.
если она есть.
а если неэффективность никакая не эксплуатируется то робот будет сливать примерно со скоростью комиссии.
если вы предполагаете что неэффективностй нет на рынке то из него надо уходить.
для меня еще одна неэффективность это артефакт.
можно ее добавить как фильтр.
или фильтр из другой неэффективности..
ну например из продавай в мае и уходи.
их можно миксовать.
можно просто покрывать в мае позиции фьючерсом, получая дешевую по входу облигацию.
с короткой дюрацией.
как раз на лето).
Модули которые должны общаться друг с другом должны знать спецификацию интерфейсов и типы данных друг от друга.
Короткий пример. Есть ядро системы и есть подтверждающий индюк. Без их совместной работы ТС является пустышкой. Ваша задача составить ТЗ на написание ядра таким образом, чтобы были четко описаны выходные данные (их типы, объемы, расстановка в переменных и т.п. в простейшем понимании).
Соответственно в ТЗ на индюк вы пишите, что на вход индюку будут подаваться такие данные (такого-то типа, в таком-то объеме, в такой-то расстановке в переменных и т.д.)
Если в ходе отладки возникают ошибки, вы сможете локализовать их и обратиться по гарантии именно к тому прогеру, кто ваял проблемный модуль и сказать «я подаю на вход значения 5 и ААА, а он не фурычит. Переделывай»
и во время теста при сдаче вам придется тестировать на каких-то данных.
а значит этот индикатор отдельно.
а робота по индикатору на md5 (md4) можно за 20 usd купить.
не считайте что кодер идиот.
особенно если он в этой нише несколько лет.
1. Разбираться с Lua
2. Писать на С#
3. Отдать на аутсорс вот с таким вот вопросом от топикстартера
Да — там могут быть проблемы, когда будут частые передачи (например) из ядра в индюк и обратно по ходу работы всего ПО, хотя и эти обращения можно рассматривать отдельно. Я работаю с программистами, но несколько на другом уровне, и меня удивляет ваше ярое отрицание возможности разбиения задачи на подзадачи, разделение труда и т.п., тем более если вы опытный программист. (насколько я понял вы таковым являетесь).
Также я слабо представляю что итоговый листинг с включением всех процедур, функций и модулей в коде (чтобы пример был ярким и показательным скажем что это ОС) собирал один единственный профи))))
Знаете сколько приходит таких задач, вот есть черный ящик где-то там и он выплёвывает такие то данные. Окей, дайте спецификацию, опишите как эти данные обрабатывать и в каком регламенте взаимодействие должно осуществляться. Это вопрос метода, подхода к решению задачи. По сути это вариант перевода задачи от написания всего полноценного кода разом, к вопросам интегрирования. Чем не выход? Отладка — да, дело будет сложное, хотя в большинстве случаев просто срок будет растянут, т.к. возникают накладные расходы на координацию команды, но эта задача упрощается если все модули готовы в срок, настроено корректное и полное логирование.
Может быть ваше категоричное мнение обусловлено моим примером с ядром и индюком, якобы в такой системе больше ничего нет от того она и простая. Но я привел упрощенный пример, касающийся именно тех частей, где будет зашита интеллектуальная собственность. Понятное дело, что там коннектор нужен, отдельные модули для формирования параметров позиции, ведения позиции, блок анализа сделок, расчет риска (хотя это больше функция ядра) и т.п. Там дохрена подзадач, т.к. робот это полноценная система. Но я и не говорил что написание роботов, да еще и силами других людей — это простая задача. Я говорю что методы могут быть простыми, упрощенными. И банально, скажем так второстепенные задачи и индюка мы можем отдать одному прогеру, а ядро другому. Как еще проще объяснить. Программисту отдаем задачу построения кузова, коробки, подвески, рулевого управления и описываем параметры подкапотного пространства + описание интерфейса взаимодействия с коробкой передач. А движок другому программисту. Если стоит вопрос написания всех модулей робота в одном пространстве имен, то это тоже не великая проблема.
Сложность реализации от масштаба растет экспонентциально, а не линейно. На коленке что то наваять несложно. Поэтом это очень быстро разваливается под своим весом
2) предложить программисту написать кастомизированный вариант, т. е. будет вариабле, которая потом будет заменяться вручную, он то конкретных чисел не знает, а подбором заниматься муторно, это ведь не перебор вариантов пароля.
3) взять программиста в долю, размер доли подбирать индивидуально
Написать длинное, подробное ТЗ. Найти самого годного программиста, такого, чтобы мог бы даже написать бинарный поиск без ошибок. Пригласить на обсуждение ТЗ. В момент, когда программист будет обдумывать ваш эффективный алгоритм курвафиттинга и мартингейла, подкрасться сзади и треснуть по башке чем-нибудь тяжелым. Труп расчленить, печень программиста съесть. Только жарить не надо, лучше даже и не варить, если нет аллергии на кристаллический кофеин.
После этого вы сможете сами реализовать свой замечательный алгоритм. Можно даже сразу перейти к этому пункту, дорогу осилит идущий.