А вы составляете точный алгоритм до того как написать программу?
Если да, то как? Рисуете блок-схему на бумаге? Или может есть какие- то программы для визуального составления блок-схемы алгоритма…
Или шарашите код сразу? Всухача))
Александр Муханчиков, нихера себе. А думаешь это эффективно? Ведь начнешь херачить код, а потом поймешь, что было бы гораздо эффективнее сделать чуточку по-другому, но переделывать уже радикально поздно…
Тимофей Мартынов, на самом деле, если писать код правильно, то любое изменение, которое не меняет концепции, не должно приводить к тотальному переписыванию исходного кода.
Тимофей Мартынов, да это вполне нормально! Я как то по началу пытался рисовать схему, и как то подумал себя на мысли что уже написал бы робота и начал тестировать за это же время.
В линейном еде вы начале подписываю каждый блок отвечающий за свою функцию, проверяю их последовательность, а потом уже заполняю действиями.
Наверное это и есть моя блок схема, просто надо понимаю как работает программа, линейно или нет.
Тимофей Мартынов, тоже никаких схем не рисую. Обычно написание робота выглядит так: берёшь уже когда-то написанного робота и подправляешь в нём алгоритм в нужных местах. :))
В большинстве роботов меняется только условие открытия/закрытия позиции. Вся инфраструктура остаётся постоянной.
Тимофей Мартынов, Если только начинаете, то лучше конечно нарисовать на бумаге ромбики, прямоугольники. Можно по принципу — сначала блок-схема в общем и детализции некоторых блоков схемы. А вот с опытом начинаешь их строить в голове и сразу переносить на исходный текст.
В своё время, правда, давно, много рисовал диаграм, как раз для софта, испробовал кучу программ. Вывод такой: реально пользоваться только 2-мя: MS Visio (входит в офис) или Dia (бесплатная) live.gnome.org/Dia
Но минимум в половине случаев побеждает с абсолютным перевесом «бумага+карандаш».
Достаточно описать на бумаге, то что Вы хотите. Программисты все остальное — то, что им нужно сделают сами. Если подойти более формально, то достаточно документа под названием «Требования к программному продукту», то есть то, что он (продукт) должен делать. Но сейчас в эпоху «Agile» и «Экстремального» программирования лучше всего будет работать с программистом в тесном контакте. В этом случае будете получать релиз примерно раз в неделю. При данном подходе Заказчик «созревает» вместе с программой.
ПС. Роботы не панацея.
1. Рисуешь алгоритим или записываешь.
2. Создаешь тест на алгоритм и начинаешь смотреть убыточные сделки. Думаешь. идет пункт 1.
3. Код робота — это самое простое.
Рисование блок-схем это какое-то идеалистическое представление написании программ. Типа «нарисовали красивую, полную и правильную схему по ГОСТу, правильно ее закодили и больше не меняли до следующего цикла». Подозреваю, что это было актуально годах в 70-80х. Сейчас так никто так не работает, это полная фигня. В основном сейчас все работают на принципах agile software development.
Что до ответа на вопрос: алго пишу по достаточно приблизительному черновому описанию, составленному самим себе в блокноте. При этом процесс написания, по сути, не останавливается никогда. Код постоянно дописывается и рефакторится по мере надобности. Живет, в общем. Собственно поэтому никакие блок-схемы и не нужны — они устареют практически на следующий день.
Все рабочие стратегии-идеи достаточно простые, чтобы их держать в голове и не тратить время на ерунду вроде блок-схем. Если идея усложнилась до того, что требует оформления на бумаге — в корзину такую идею, т.к. работать не будет.
Резюме: не пишу))
Всегда рисую алгоритм любой программы. Каждый узел, разумеется, детализируется по-разному, но в целом такой подход помогает более четко представить структуру будущей программы (не только запись самого алгоритма на понятном машине языке, но также систему именования идентификаторов, дерево вызовов, структуры данных и пр.)
всё зависит от уровня программиста. чем выше уровень тем быстрее он может писать сразу код. ну а так… обдумать можно. но без бумажек. обычно всё в голове.
Тимофей, ты сам говорил рынок иногда бывает непредсказуем или непредвиден. Что нужно систематизировать на рынке, правильно — только убытки. Осмелюсь предположить что блок схему для программы надо формировать из ограничения убытков, убытков и еще раз убытков. Простите за банальность фразы. А как формировать блок схему при бычьем рынке при резком провале цены ниже уровня тренда. Как формировать блок схему при медвежьем рынке при резких отскоках. Как нужно писать блок схему при долгосрочном формировании дна рынка (1, 2 месяца). Как нужно писать блок схему при дивидендных выплатах в марте – апреле месяце. Блог схемы полезны. Это неоспоримо. Блог схемы нужны и целесообразны. Однако состояние рынка медвежий тренд, бычий тренд, консолидация, паника, эйфория как все это описать в одной блок схеме? Думаю в одной схеме это крайне сложно. Остается писать блок схемы для каждой рыночной ситуации в отдельности. А трейдер будет сам решать в зависимости от своего убеждения, какую схему выбрать в данный период времени.
Один вопрос? Робот убыточный или прибыльный?
Если прибыльный — то задача не решается.
И вот почему, никаких роботов по сути не существует.
Сделка является реакцией на фиксацию некоторого события в фиде. Голова и плечи, облако Ишимоку, нити Гартли, объемы, тики, мувинги, ключевые слова в новостях и тд и тп.
Пишу сначала на псевдокоде, простыми словами, вроде такого:
каждый тик
··если открыта позиция
····сопровождение открытой позиции
··иначе
····если характер рынка походит
······проверка возможности открытия позиции
Я бы разделил понятие алгоритма на внешнее и внутреннее.
Внешнее — это просто набор правил(чёткий) по которым должен функционировать робот. Эту часть составляет трейдер. Внутренний — это уже переложение внешнего алгоритма в программный код.
И ту и другую часть я обязательно рисую(не раз) на бумаге и маркерной доске.
Рисую, и откладываю в сторону на день или два.
Потом достаю и анализирую.
Обычно, за этот период возникают идеи которые и применяю.
Уверен, что визуализировать обязательно, потому что это облегчает восприятие, оптимизацию и развитие идеи.
Да и держать в голове кучу связей не нужно.
А где рисовать не так важно, главное чтобы было удобно.
Если в голове порядок и все по полочкам расставлено — сразу рисую то, что хочу.
Если некоторые вещи не понятны — рисую сначала блок схемы с пояснениями. и только потом переношу все программу с дополнениями по ходу.
Тимофей, Вы спрашиваете Кто как и что делает при разработке роботов. Вот Вам и написали тыщу вариантов. А нужно просто взять на вооружение методы, которые СЕЙЧАС в МИРЕ используются, популярны и доказали свою высокую эффективность в этой области ( разработке ПО ). Наберите в поисковике AGILE, SCRUM — и Вы увидите, что все уже давно придумано КАК ЭТО НАДО ДЕЛАТЬ СЕЙЧАС.
ИМХО, описание обязательно, чем сложнее и непонятнее для вас система, тем больше ее нужно формализировать и описывать. Я программист, конечно с опытом мелкие задачи пишу сразу, ибо уже мыслю этими параметрами. Задачи побольше описывать алгоритмом, не блок-схемой, но что-то наподобии просто по пунктам. В таких ситуациях если неописывать совсем, не разбивать работу на части, будет больше ошибок, код будет более путанным и тестить его будет сложнее! Для больших и стратегически важных задач,uml — диаграммы, ТС и IDEF — диаграммы предоставляют заказчики, либо делаешь сам))
Чем сложнее логика, тем актуальнее подготовка в виде блок-схемы. Зачастую уже на этом этапе обнаруживаются ошибки:) А вообще код не проблема, проблема — работоспособная идея.
Ой, вэй!, Дивы? ).
В большом сомнении).
В массе суда стоят, не работают, какие дивы ?
Для перевозки нефти Россия использует(фрахтует) иностранные танкеры, что бы увильнуть от санкций.
Свои ...
Дмитрий, Н… да… спорить не буду ...
Да и Потанин то же прав...
В виду того, что часть работоспособного населения на СВО, а другая его часть, причем самые квалифицированные специалисты и ученые ...
МОСКВА, 17 дек — ПРАЙМ. Количество вакансий с частичной занятостью в России за год удвоилось — популярность подработки выросла из-за низкого уровня безработицы в стране и дефицита большинства специали...
Михаил Тайков, в мозгу у тебя дефолт🤣
Не, я конечно понимаю, набрали шортов и теперь не выйти, но так топорно пропагандировать🤭
Закрывай шорт иначе сегодня на маржинкол отвезут
Алгоритм в любом случае подвергается доработкам во время тестов
Или ты гений просто?
Я просто программирую начальную задумку, начинаю тестить и меняю по ходу дела.
В линейном еде вы начале подписываю каждый блок отвечающий за свою функцию, проверяю их последовательность, а потом уже заполняю действиями.
Наверное это и есть моя блок схема, просто надо понимаю как работает программа, линейно или нет.
В большинстве роботов меняется только условие открытия/закрытия позиции. Вся инфраструктура остаётся постоянной.
В своё время, правда, давно, много рисовал диаграм, как раз для софта, испробовал кучу программ. Вывод такой: реально пользоваться только 2-мя: MS Visio (входит в офис) или Dia (бесплатная) live.gnome.org/Dia
Но минимум в половине случаев побеждает с абсолютным перевесом «бумага+карандаш».
если что то сложное — описываю как должно работать, с этого пишу код
блок схемы — трата времени (слишком трудоемко и слишком детально)
ПС. Роботы не панацея.
А дальше дорабатываем тестируем оптимизируем переводим в код и тд и тп.
что душе угодно.
2. Создаешь тест на алгоритм и начинаешь смотреть убыточные сделки. Думаешь. идет пункт 1.
3. Код робота — это самое простое.
Что до ответа на вопрос: алго пишу по достаточно приблизительному черновому описанию, составленному самим себе в блокноте. При этом процесс написания, по сути, не останавливается никогда. Код постоянно дописывается и рефакторится по мере надобности. Живет, в общем. Собственно поэтому никакие блок-схемы и не нужны — они устареют практически на следующий день.
Резюме: не пишу))
Рисовать можно используя для этого специальные программы.
Краткий обзор программ, которые позволяют рисовать блок-схемы можно уведить по этой ссылке: www.analogs.ru/group/165
Можно использовать платную программу Microsoft Visio, которая входит в состав Microsoft Office.
Но мне больше нравится программа diaw — скачать её можно здесь: dia-installer.de/
Она полностью бесплатна, поддерживает русский язык, позволяет делать очень многие удобные вещи.
Вкратце почитать про программу можно, к примеру, вот тут…
www.videouroki.net/view_post.php?id=93
более подробно написано тут: finlabportal.ru/2011/04/kod-torgovoj-sistemy-highlowlong-dlya-wealth-lab/
Если прибыльный — то задача не решается.
И вот почему, никаких роботов по сути не существует.
Сделка является реакцией на фиксацию некоторого события в фиде. Голова и плечи, облако Ишимоку, нити Гартли, объемы, тики, мувинги, ключевые слова в новостях и тд и тп.
каждый тик
··если открыта позиция
····сопровождение открытой позиции
··иначе
····если характер рынка походит
······проверка возможности открытия позиции
Внешнее — это просто набор правил(чёткий) по которым должен функционировать робот. Эту часть составляет трейдер. Внутренний — это уже переложение внешнего алгоритма в программный код.
И ту и другую часть я обязательно рисую(не раз) на бумаге и маркерной доске.
Рисую, и откладываю в сторону на день или два.
Потом достаю и анализирую.
Обычно, за этот период возникают идеи которые и применяю.
Уверен, что визуализировать обязательно, потому что это облегчает восприятие, оптимизацию и развитие идеи.
Да и держать в голове кучу связей не нужно.
А где рисовать не так важно, главное чтобы было удобно.
Если некоторые вещи не понятны — рисую сначала блок схемы с пояснениями. и только потом переношу все программу с дополнениями по ходу.