Вопрос опытным программистам (ну и остальных мнения интересны)....
Вопрос по сути в следующем:
Когда вы пишете какую-либо программу (в нашем случае торгового робота), которая подразумевает постоянную доработку в части проверки новых идей, вы:
Добавляете в код реализацию новой идеи, тестируете и, при отрицательном результате —
1. оставляете эту часть в коде, но выключаете ее, чтобы, возможно в дальнейшем, использовать в комбинации с новой идеей?
2. удаляете эту часть кода, чтобы его не перегружать?
3. ваш правильный профессиональный вариант.
Сразу скажу — вариант с добавлением чего-то в виде функции — понятен. Просто не все можно реализовать в виде независимой функции.
Поясню откуда вопрос.
Мой код на Qpile распух от первоначальных рабочих 300 строк до 2500. Причем работают из них, наверное, те же 500-700. Ini-файл также представляет собой уже подобие реестра Windows))). Добавляется какая-то идея, проверяется — не работает, оставляется для возможности использования в дальнейшем, в ini-файле прописывается выключение этой идеи.
Результат — перегруженность кода, задержки на проверку множества условий, большое количество перекрестных зависимостей в программе (да простят меня профи за не проф язык).
Версии предыдущих программ, конечно, сохраняются, но проблема в том, что последняя версия всегда актуальна не только по добавлению в нее новой идеи, но и по исправлению ошибок. В результате просто к предыдущей версии вернуться не могу.
Дополню пост по результатам первых ответов.
Предположим есть функуия выставления заявок Trans(Параметры).
Проверяем идею: Ставить заявки лимитками или по рынку:
В Ini файле признак Limit = 1
Получаем (синтаксис условный):
if Limit = 1
Trans(лимитка)
if Limit = 0
Trans(порынку)
И т.п… Таких вот if набирается очень много. Даже при том, что какие-то операции реализованы в виде функций…
Все можно и нужно реализовывать в виде независимой функции (модуля, если язык позволяет). Любая программа должна писаться «сверху вниз». Структурное программирование — это наше все.
Я пишу своего робота на 1С, не потому, что она для этого наиболее подходит, а потому, что в совершенстве владею этой платформой. Мне быстрее написать на знакомом инструменте, чем изучать специализированные. Так вот в 1С я решил данную проблему просто:
Сама программа отвечает только за базовые операции по совершению сделок, а сами правила совершения сделок вынесены в пользовательский режим. То есть, например, M стратегий — это M элементов справочника, при этом каждую стратегию я могу N раз теститировать с разными параметрами. Но я пока тестирую только базовые идеи, вроде «шортим по цене открытия, в конце дня закрываемся». На более сложные вещи пока не хватает времени, но описанной проблемы у меня нет.
Возможно, у вас тоже можно отделить алгоритм, процессы его тестирования и базовые операции друг от друга. Хотя бы разнести на разные файлы.
Спасибо, в принципе я и сам знал ответ на свой вопрос. Функциональность и структурированность… Но это мой косяк и сейчас и всегда был с института. Всегда валю все в кучу. Понимаю, что не профессионально. Хорошо хоть сейчас стал комментарии писать почти на каждую строку. Раньше и этого не делал…
Результаты ДельтаЛизинг за 12 месяцев 2025 года: рекордный размер чистой прибыли и доходности бизнеса за 26-летнюю историю компании
ООО «ДельтаЛизинг» (входит в группу «Инсайт Лизинг»), один из ведущих игроков на рынке лизинга оборудования, сообщает о публикации консолидированных финансовых результатов за 12 месяцев 2025 года,...
Две акции ритейлеров с потенциалом роста в апреле 2026
К концу марта Индекс МосБиржи заметно отступил вниз от трехнедельного максимума. Среднесрочные перспективы рынка акций теперь выглядят неопределенными. Вместе с тем в некоторых бумагах...
Компания раскрыла сообщение о приостановлении эмиссии выпуска конвертируемых облигаций в связи с внесением технических корректировок в документ, содержащем условия размещения выпуска (ДСУР)....
Самый большой "перетряс" моего портфеля за последние годы. Синтетический валютный бонд с доходностью 13% годовых
Доброго дня, дорогие читатели. Сегодня я все утро совершал сделки. Вероятно, это даже самый большой перетряс портфеля за последние годы. Ротация портфеля затронула почти все позиции в нем. Я не...
Геоэнергетика ИНФО Комплекс по перевалке и фракционированию стабильного газового конденсата (СГК) НОВАТЭК-Усть-Луга выведен из строя. Комплекс включает 2 установки фракционирования СГК мощностью 3 млн...
Толяныч, ну вот. Запас бенза на нефтебазах Евротранса пригодится теперь. Напряжённость на рынке возрастает из-за внеплановых остановок НПЗ и задержек отгрузок с НПЗ, пишет Коммерсант от 24.03.2026....
Y MMST, как может получиться минус 30%. Меньше. Сейчас ценник 111,7. Потеря меньше 20%. Начинал удачно. Помню НКНХ брал, продержал полгода и рано продал, а он потом 3иксанул.
Русал. Иран нанес удары по двум заводам, производящим алюминий и связанным с американской военной промышленностью, в ОАЭ и Бахрейне. Иран нанес удары по двум заводам, производящим алюминий и связанным...
Вк уже неделю исправляет проблемы с загрузкой и просмотром видео. Акции продавать. Вот такая у нас замена Ютубе. Инвесторы в курсе интересно. Вот уже почти целую неделю ВК Видео стал жёстко глючить. ...
Что будет с Россией, если цена нефти дойдёт до 200$? История повторяется!
Март 2026г стал поворотным: Ормузский пролив, через который идет 20% мировой нефти, фактически перекрыт. Цена нефти уже дох...
если те или иные блоки не понадобятся мне в ближайшее время — выношу в отдельный файл.
пишу на c#
Сама программа отвечает только за базовые операции по совершению сделок, а сами правила совершения сделок вынесены в пользовательский режим. То есть, например, M стратегий — это M элементов справочника, при этом каждую стратегию я могу N раз теститировать с разными параметрами. Но я пока тестирую только базовые идеи, вроде «шортим по цене открытия, в конце дня закрываемся». На более сложные вещи пока не хватает времени, но описанной проблемы у меня нет.
Возможно, у вас тоже можно отделить алгоритм, процессы его тестирования и базовые операции друг от друга. Хотя бы разнести на разные файлы.