dr-mart
Техзадание полностью по ссылке
Тут ниже привожу основную часть.
Алгоритм робота. Главная задача робота это купить/продать заданное количество контрактов по выбранной цене. Далее необходимо провести трейд по алгоритму.
Алгоритм выставления заявки:
Выбираю инструмент в котором будут выставляться заявки. Все сделки будут совершаться на срочном рынке, но должна быть возможность задавать цену входа и по спот-рынку. (Например на инструменте SBER выбираем для продажи цену 180.00 руб, программа должна продать заданное количество контрактов на срочном рынке в инструменте SRH7 в то время когда на споте будет 180.00 руб) На данный момент меня интересует только комбинации SBER-SR и USD_TOM-Si.
Задаю цену входа в позицию. Например Si 60500
Выбираю направление сделки short / long
Задаю количество контрактов в лотах для фьючерса. Важно чтобы робот учитывал сколько контрактов забрали на цене входа, т.к. например из 100 контрактов забрали 70. Алгоритм должен это понимать и работать по системе с 70 контрактами.
Задаю стоп-лосс в пунктах. Стоп на фьючерсе.
Задаю тейк-профит. Здесь 3 принципа: а. Выставляем тейк в пунктах по фьючерсу. б. Тейк при закрытии ниже/выше (в зависимости от направления трейда) соседней 5 минутной свечи. в. Тейк при закрытии ниже/выше (в зависимости от направления трейда) соседней 60 минутной свечи. В роботе должна быть возможность во время трейда менять принцип тейка.
Выбираю время в минутах для выхода из позиции по времени, если сделка остается в 0 или минусе но не достала до стопа.
Робот должен пользоваться не лимитными заявками, т.к. на счету одновременно может не хватать средств на все выбранные операции. Вариант есть с виртуальными заявками. Когда цена доходит до выбранной, там подставляется лимитка.
Робот должен уметь переносить заявки и позиции через любые клиринги. (дневной, вечерний, овернайт, планки)
После выставления всех параметров ждем входа в позицию.
Алгоритм ведения трейда:
Здесь 2 ветки поведения. Если позиция в + или в -. И еще 1 ветка включается если прошло заданное время.
Если позиция в плюсе, то включается заданная система тейка
Если позиция в минусе, то либо срабатывает стоп, либо через заданное время робот выходит по рынку.
Если через заданное время позиция в плюсе, но еще не закрылась по тейку, то стоп переставляется в безубыток (т.е. + несколько тиков от точки входа)
Если забрали не все лоты выставленные на цене входа за заданное время ( в этом случае позиция в плюсе), то робот работает с тем количеством лотов сколько в позиции, переставляет стоп в б/у и работает по тейку.
Также в функционале робота должна быть возможность в любой момент выключить автоматический режим и перейти к ручному управлению.
Варианты базирования робота:
Рассматриваю разные варианты. Предпочтительнее подключение через плазу или квик. Рассмотрим более простой вариант.
Приблизительная таблица функционала:
По пунктам:
Просто порядковые номера трейдов. Столбцов необходимо ~10-15
Выбор инструмента.
Записываем цену входа в позицию.
Выбор направления трейда
Выбор объёма позиции.
Выбор стопа в пунктах. Если это спот то пишем стоп по фьючу.
Выбор тейка либо закрытие при поглощении 5 мин свечи, либо при поглощении 60 мин свечи. Здесь надо еще иметь возможность находясь в трейде переключать вид тейка. Если позиция 0 или минус, то работает стоп или тайминг для выхода.
Возможность выхода из позиции по таймингу. Здесь указывается количество минут через которое позиция закроется, если она не в плюсе.
ставишь цену нижу встречной в стакане — получается 'рыночная'))
скрин вообще оказался с сайта qquik =))) а я развелся =)
чем меньше, тем лучше естественно))
А молодым фрилансерам такой продукт доверить очень рисково.
Плаза еще месяц потянет. С отладкой.
Это если заниматься в рабочем порядке с утра и до 18:00
Тут Тимофей будет за качеством следить.
Это твоя оценка * Pi )
«Не читал, но осуждаю»
Время на изучение API СтокШарпа бесплатное?
Административная работа с клиентом больше чем кодирования.
Не считал?
Риски не оплаты по таким работам Это ~30%.
В цену включил?
Кодирования на неделю, а работы на месяц.
Большая часть работы по разовым контрактам это не кодирование а коммуникации.
Их не считать в рабочее время?
Рабочее время только кодирование?
Раз все равно учишь, учи на реальном примере.
Сделай бесплатно.
За спасибо.
Тебе опыт.
Клиенту работа.
Или сколько заплатит от широкой клиентской душу на карту по результатам то и ладно.
Будет приятный подарок.
Антон Б,
«Время на изучение API СтокШарпа бесплатное?»
Ну ты тогда ещё включи сюда время обучения в школе, универе, питание и т.п. расходы )))
Я тебе уже ниже ответил. Что если ты в схеме не главный, то проект ты будешь делать месяц, с риском что тебя могут кинуть. Но если схема иная, тут работы на неделю. Сделать бесплатно? ))) За опыт? Опыт написанияе недо-полу-привода? ))) Да, я таких уже вагон написал. После каждого видеоурока получается какой-то новый привод. Опыта таких полуприводов, у меня уже вагон. Да, я и за деньги даже делать не буду. Почему? Потому что вы окорыночники! Это ваш бизнес. И я в ваш круг входить не собираюсь! Я изучаю СтокШарп для себя, для написания своих ботов, а не с целью составить вам конкуренцию.
А если серьезно, то история очень банальная. Заказчик слушает вот такого криворукого студента, готового работать за еду и 2 дня, он делает такую поделку, которая «ну почти работает» — т.к. есть окошко и 2 кнопочки, доделывает работу в начале 2 недели, потом месяц, потом полгода, потом говорит что надо все переписать и пропадает с концами
Это все равно что новичек с 2 месяцами торгов будет рассказывать профи как легко заработать 100% в месяц стабильно и поучать их ))
StockChart.ru, эти типичные рассуждения ворья и жулья, с наглым искажением фактов. Я нигде не писал, что увидел C# несколько недель назад. Я говорил, что освоил его на 30-40%, ибо этого с лихвой хватило чтобы писать ботов с помощью API СтокШарпа. Даты я не упоминал, ибо сам не знаю ))), я начал изучать сей язык где-то год-два назад. Можешь иметь опыт хоть 100 летнего программирования, это не имеет никакого смысла, если ты недельную работу, которую сделаю даже я, делаешь месяц. Вероятно, ты эстонец ))). Я же писал выше, что уже вагон таких полуприводов написал! Вагон! Опыта — завались. Если ты плохо умеешь читать, то сочувствую.
Сергей Гаврилов, не, всё бы было тип топ. Я чтобы самому не запутаться, блокирую ненужные кнопки. Просто делаю их неактивными, чтобы случайно не нажать не то. А некоторые элементы — вообще скрываю. Ну и конечно, если бы я делал это для других, я бы забабахал инструкцию в скринах. Но опять же, я не пишу роботов по заказ. Я сам ещё освоил не весь СтокШарп и много чего пока не умею. Да и когда освою полностью, не собираюсь писать ботов на заказ. Писать ботов буду тока для себя.
Андрей К, не я тут подумал… срок надо добавить… до полугода ))).
Есть такая штука как «Закон Паркинсона» ru.wikipedia.org/wiki/Закон_Паркинсона
И это работает. Я помню времена когда работал на дядю. Если начальство не ставило жёсткого плана на месяц, т.е. не было списка заданий с сроками(временными рамками). То наша производительнсоть была очень низкой. Мы тупо брали какое-либо одно задание, причём по возможности выбирали самое простое, и растягивали его выполнение на месяц ))). Потихоньку, помаленьку, через лень — выходил месяц. То есть, в месяц вместо 3-4 проектов, делалася всего один. Но как только начальство ввело ежемесячный план, где чётко прописаны задания и сроки их исполнения, то как ни старанно — мы их успевали сделать почти все. То есть, одну и ту же работу можно растянуть как на неделю, так и на полгода ))). Работа по времени может растягиваться весьма нехило, особенно если нет над головой начальства, которое махая палкой, ругаясь матом и грозя лишением премии — тебя подгоняет и мотивирует въябывать как Папо Карло ))).
то есть не готов платить адекватно за работу
Пробовал сам написать бота, но потом заказал. Там было условие: если больше 0 покупает, меньше продает.
Там столько нюансов это пипец.
То, что мне нужно было, с 5 раза доработали.
И то, что твой корешь здесь написал, скорее всего еще будет дорабатываться не один раз и сумма будет увеличиваться каждый раз за доработку.
Дешевле в разы.
И быстрее чем квик в разы.(но не плаза)
На истории можно тестировать.
Это не стакан а робот.
Так как сам принимает решение о выходе из позиции.
Это вполне логично учитывая что сливаются 99%
-> 10 плече фортса не хватает чтобы держать лимитки в стакане....
Это странно.
Все равно при подходе надо лимитки выставлять.
Иначе по рынку бить придется.
И стоит дешевле разработчика шарп в разы.
Цена робота.
Объем работы с роботом.
Перекрывают бренд брокера в разы.
Открыть счет у одного из этих 2-х брокеров под робота.
+ робот.
Дешевле.
Чем робот на шарпе.
А цена очень важна.
Робот это исследование рынка.
И тест за дешево это очень хорошо.
За дешево — это меньше времени.
Меньше рисков.
Больше денег на доработку.
Если идея стоящая.
И меньше денег выкинуто если идея не окупилась.
Антон Б, я бы ставил не на цену, а на универсальность. Рано или поздно, СтокШарповцы запилят коннектор к метаку, ну как только найдётся инвестор который проспонсирует сие дело. И такого бота можно будет цепануть к метаку. А не понравится метак, цепануть к квику или к плазе, или к англо-пиндоским брокерам: начиная с интерактив-брокера, кончая опен-е-край. То есть, робот на C# будет платформенно независим, его всегда можно будет быстро переключить на любого брокера. У СтокШарпа гора коннекторов, бери не хочу. Правда некоторые платные ))). Кстати, плаза 2 — там платный. Если заказчик хочет халявный коннект к плазе, то это надо к ОСЕ за роботом обращаться, но у них на Квик коннектор убогий, он там через ДДЕ. А метаквотавцы, с языком мкл5, рано или поздно, сделают тоже самое что с мкл4, и тоже самое что с сделали мкл3, т.е. он умрёт. Через 5-10 лет, появится метак 6 и новый язык мкл6.
Универсальность нужна для штуки, которая уже работает.
Для теста стратегии нужна скорость теста и минимальная цена теста.
Учитывая шансы сразу написать прибыльного робота.
Антон Б, да это даже не робот, это полуроботопривод ))). Есть заказ: написать полуроботапривод с конретным техзаданием. Программиста не должно интересовать, будет ли зарабатывать сие штука. Важно одно: выполнить работу согласно техзаданию. Остальное его не касается. Всё просто ))).
Знаешь как клиент не хочет платить за сливающего робота?
И начинает накручивать еще условий по пути?
Особенно если в его представлении это просто «кнопки»
Администрирование всего этого процесса это больше 50% работы.
Больше чем кодирования.
Нужно проследить чтобы платежи пришли до того, как клиент поймет что идея не работает.
Потому что его ответ будет «мне это не пригодится».
Вот эта коммуникация и будет в итоге больше времени чем на кодинг.
Я это проходил и прохожу сейчас.
На задачах для метатрайдера и рынка времени на коммуникации уходит больше чем на кодирование.
А если эти коммуникации пытаться игнорировать.
Просто: получить тз, прочитать, написать, отослать результат.
Даже без исходника, только исполняемый файл отослать.
То оплаты не будет.
Этот ваш комментарий прямо противоречит предыдущему.
Или вы не считаете коммуникации по проекту рабочим временем?
И не учитываете коммуникации по проекту в оценке времени на проект?
Антон Б, я не пишу роботов на заказ. Но если бы я это делал, я бы не спорил с заказчиком и не пытался его убеждать и переубеждать в чём-либо. Он платит. Есть чётко прописанное техзадание. Иного, и не нужно. Если ты отойдёшь от этого плана, и дашь ему волю, предоставишь право быть главным: то в итоге начнутся вечные хотелки, перехотелки, передумки, а потом он в конце ещё и откажется, мол я уже перехотел бота ))). В итоге, то что пишется за неделю, выльется в месяц, а в конце ещё и останешься без бабла ))). Ну прикинь он тебе словами скажет — сделай вот так, ты сделаешь, а завтра скажет я такого не говорил, я имел ввиду иное. Ты сам замучаешься. Нужен чёткий список, чтобы при любых спорах ты мог на его описаться. От слов люди отказываются очень просто. И от написанного тоже отказываются, но тут мяч на твоей стороне. И когда заказчик публично про тебя напишет гневный пост, ты всегда можешь защититься техзаданием. Это договор, который нарушать нельзя. Поэтому, не надо спорить, уговаривать, переубеждать — нужно получить чёткое техзадание и строго делать по пунктам, без самодеятельности. Если после этого ему нужна какая-то новая доработка. То пусть пишет новое техзадание в письменной форме. И платит за новую работу. Если ему лень этим заниматься, если нет чёткого техзадания в письменной форме, то и браться не стоит, ибо всё закончится печально.
Тот мой коммент не противоречит предыдущему ни в какой его части. Первый коммент — это строго работа по техзаданию, ни шага в сторону. Второй коммент — оценка работы и безопасность в части оплаты.
Это не спор.
Это предложение использовать другие технологии.
ДО КОНТРАКТА.
Те что клиенту больше подойдут, по моему мнению.
Да это отсекает половину лидов.
Но отсекает плохую половину лидов.
В рынке очень много тех кто напишет по тз, без знаний в предметной области.
И конкурировать с ними только по цене это тупик.
Клиент которому нужно только код по тз легко найдет самого дешевого кодера.
В конце клиент выяснит что его цель проверка идеи на рынке.
И он уже проверил эту идею.
А то что исходников не получил и ладно.
Просто не будет платить.
И даже ограничение по времени в коде программы не поможет.
Поскольку пользоваться кодом он не будет.
А результат проекта — тест идеи клиент уже получил.
А зачем сбиваешь цену если делать не будешь?
Из спортивного интереса?
Суть в цене чтобы 50% предоплаты хватило на проект.
А 50% после выполненных работ это премия.
На которую рассчитывать нельзя.
Честные клиенты бывают.
Хотя, с точки зрения теории игр, кидать должны всегда.
Кроме случаев дальнейшей работы.
О ценообразовании на услуги разработки вообще habrahabr.ru/post/256537/
Суть своими словами:
Предположим что проект 40 часов кода 1 неделя.
Если просто умножить на 10$ в час это 400 долларов...
Вроде неплохо...
Но дополнительные затраты:
+40 часов на коммуникации внутри проекта.
+20 часов на пердпродажу. продажа и поиск клиента это тоже работа.
Итого 100 часов времени чистого.
+ 50% вероятность неоплаты.
— это значит что в среднем из 2 проектов будет оплачен 1.
-> 200 часов скорректированной на риск.
400$/200 часов = 2$ в час. -> это приведенный доход программиста.
Это 2*168=330$ в месяц для программиста средней квалификации на шарпе...
Если он будет делать эти проекты не учитывая затраты времени,(кроме программирования) и риски.
Если считать только кодинг.
А фактически тратить все время на проект.
Я Тебе посчитал реальные затраты времени.
На проекты в целом.
1)Если Считать кидалово = 0 — 100% предоплата.
+ Договор оплаты за часы работы.
Так как, если клиент не попишет акт выполненных работ, то деньги придется вернуть.
Такая форма кидалова тоже бывает.
Тойесть по 100% предоплате продаются 40 часов работы по счетчику....
Что малореально. )
2) коммуникации не 40 часов а 20.
Хотя моя статистика говорит что на маленьких проектах разговоров столько-же что и на средних.
Проект подразумевает уникальную работу.
Это это подразумевает уникальные разговоры об уникальном результате.
3) Форма на сайте это лид.
Он не снимает времени на проход по воронке продаж.
Форма не снимает времени на рекламу чтобы этот лид получить.
Наличие формы не убавляет времени на продажу.
Так посчитаем предоплата 100%.
Клиент будет неразговорчивый.
40 +20 +20 =80 часов.
итого 5$ в час в идеальном мире.
Тоже не фонтан.
Это общепринятое ценообразование проектное.
О ценообразовании на услуги разработки вообще habrahabr.ru/post/256537/
Вообще можно это не считать время коммуникации, считать только часы программирования в проекте.
Остальное время в проекте просто дарить.
Думать что точно не кинут в этот раз.
Но это все непрофессионально.
А значит это новичек, и это его первый или второй проект.
И риски соответствующие уже на клиенте.
Или такой как Вы, ради опыта входа бесплатно решит помочь.
Изучить инструмент.
2$ в час это подарок для клиента.
Если Вы все равно изучаете S# то для вас даже райт 2$ в час это хорошо.
Так как альтернатива 0$...
Вы же все равно учите.
Разработка роботов это исследовательский проект.
Его цель: исследование работы разработанного робота.
Будет достигнута и без исходников.
После того как цель будет достигнута — клиент исследует работу робота.
Робот клиенту уже будет не нужен в 95% случаев.
В этот момент результат достигнут.
И этот результат не робот.
И не исходный код который я еще не выслал.
А исследование работы робота.
А оплата еще не произведена.
«Правда есть риск, что Мартынов сам убежит с баблом ))).»
Это вряд ли, публичная персона.
А вот ожидать честного арбитража между школьным другом из деревни. ( их с возрастом становится все меньше)
И неизвестным кодером который деньги гребет.
Школьный друг недоволен.
Кодер зажрался со своими доходами x2 от средней зарплаты. x4 от медиальной.
Мой рациональный выбор на месте Тимофея.
За други своя против левого чувака.
По этому проверять идеи.
Исследовать рынок нужно на максимально дешовым способом.
метатрайдером.
трейдер себе в помощь кнопки хочет сделать =))
«Конки в помощь» которые сами входят и сами выходят.
По времени, по достижении убытка.
По линии горизонтальной.
Это робот )
А не кнопки.
На метатрайдере 500$
+500$ за риск того что клиент пришел от Тимофея
За бренд Тимофея.
Без Тимофея было бы 500$ )
сложности:
1. одновременное отслеживание неопределённого заранее кол-ва цен и условий
2. плюс возножность для пользователя задавать всё на бегу, а если не успел, захочет отменить, а он захочет! вообще любая GUI часть, для меня лично гемор, но это субъектив.
3. про виртуальные заявки тут справедливо сказали. раундтрип минимальный в квике 10 миллисекунд в самое наиспокойное время. обычно 200 -250. и ведь надо ещё котировку получить ту самую. т.е. робот частенько будет неуспевать. а про проскальзывание в задании не сказано НИЧЕГО. так работать не будет. без проскальзывания заявка может исполниться через пару часов. или день. работал я без них, в самом начале.
4. надо писать какую-то базюльку-хранилище, чтобы иметь возможность переживать роботу выключения-отключения. там хранить цены и время входа. и выставленные, но не исполенные заявки. потому что квик заявки больше чем с прошлого дня не хранит. и цены входа после клиринга тютю, да и быстрее будет из своего хранилища брать чем из квика.
если кто дешевле штуки баксов возьмётся сам не рад будет :)
да и за штуку я думаю тут придётся попотеть гораздо больше.
но сам факт публичных заданий, я считаю, надо ГОРЯЧО приветствовать!
кстати похоже на робота арбитражера, которого тут другой знакомый Тимофея хотел. тоже про сбер речь шла.
неужели там рыба есть. надо покопать :)
Интересен вопрос дальнейшего использования Заказчиком: для себя ( зашит торговый счет к примеру) или распространения как коммерческого продукта.
Это те самые 40 часов коммуникации из
smart-lab.ru/blog/372971.php#comment6687760