Сап /b/, я принес тебе задачу. Вчера создавал тред, но по-моему никто так и не понял, чего я хотел. А потом тред умер нахуй. Сейчас попробую исправиться.Допустим есть условно два счета: Счет 1 (основной) и Счет 2 (процентный). В начальный момент времени ты кладеш на свой основной Счет 1 некое количество денег Р. На процентный Счет 2 непрерывно капает процент от текущей сумы на Счету 1, тоесть линейная функция от времени t с неким процент процентным коэфициентом r (процент за еденицу этого самого времени. Для реальных задач время может измеряться в часах с процентом 1 или в сутках с процентом 24, что одно и тоже). Когда деньги находятся на Счету 2, они НЕ влияют на скорость роста денег на этом же счету. Владелец счетов сам решает, когда (то сам выбирает моменты времени t_n) ему прибавлять свои деньги со Счета 2 в Счет 1 для увеличения сумарной прибыли. Но при этом за каждый такой перевод накопленых на Счету 2 денег на Счет 1 изымаеться фиксированная комиссия в размере f. Теперь вопрос: когда стоит переводить деньги со Счета 2 на Счет 1, так что бы сумарный рост денег (за условних m = 100 единиц времени) на Счету 1 был максимальным. Ну или же чему должна быть равна разница t_n - t_(n-1) в зависимости от размера процента и текущего баланса на Счету 1.Пикрил показывает, как это выглядит. В прошлом треде я это называл "оптимальной скоростью реинвестирования". Сразу говорю, если бы я мог это сформулировать "более математически", то наверное уже бы имел собственно решение
Кстати, я изначально думал, что подходить к решению нужно через формулу сложного процента, но с учетом этой самой фиксированой комисии f, но сейчас мне это не кажеться лучшим решением
>>209425828Мог бы сам сделать - давно уже сделал быдвач, заебал, это не дз в школу. Реальная практическая задача
>>209423213 (OP)Как-то заумно сформулировалТебе нужно определить оптимальный момент капитализации основного вклада?
>>209426922Я подумывал о численном решении но и его я не совсем понимаю, как получить. Есть идеи с чего начать и какой подход использовать? Пока что мои рассуждения:Я думал только о переборе/подстройке времени. Но вот в чем проблема: нужно получить максимальный рост за произвольное время t (я изначально в условии привел, что пусть будет 100). Так же, естественно, это время достаточно большое, что бы вообще какую-то прибыль получить, произвольное =/= произвольно малое. Допустим за 100 едениц времени мы сделали +-10 таких переводов денег со Счета 2 на Счет 1. Но интуиция мне подсказывает, что шаг времени в каждом из этих переводов со временем должен уменшаться (поскольку количество денег на Счету 1 должно расти, а комиссия остаеться фиксированой). Тоесть, что бы мне получить какою-то максимальную суму после 100 единиц времени, мне нужно будет подобрать все 10 шагов индивидуально да и ещё зависимость в них посчитать (что мне кажеться и есть ответом на изначальный вопрос)
>>209427511Да (если мы правильно поняли друг друга). Это вроде так и называеться правильно - капитализация вклада, я назвал это реинвестированием
>>209426922Ну а ещё мне кажеться, что аналитическое решение должно существовать, просто я до него не могу додуматься
>>209428000У тебя задача сводится к поиску тика времени, за которое прибыль от процента перевалит за комиссию. Потом легко адаптируешь к нужному виду. Я из твоих формул нихуя не понял.Я бы решал подобную задачу погромизмом на любом доступном языке.
>>209428206> аналитическое решениеПерестрой график под свои данные, только откладывай дельту по абсциссе, и проведи черту на уровне комиссии.
>>209428297Не уверен что правильно понял что ты имеешь ввиду, но если ты говориш, к примеру:Изначально 1000 рублей. Процент 10 (0.1) за единицу времени. Комиссия 1 руб. То по-твоему, мне нужно время, когда 10000.1t = 1 => t_искомое = 0.01 единиц времени? Тогда после первой итерации у нас на счету будет изначальная сума, и так далее. Тоесть в итоге прибыли вообще не будет.Но уверен, что ты имелл ввиду не это. Возможно, не прибыль от процента а процент от прибыли от процента с текущего вклада? Я тоже об этом думал, но не понимаю, почему это должно быть решением?
>>209427511по-моему нет. у него на 1 счету сами бабки. а на второй приходят с них проценты. и он спрашивает когда лучше всего положить проценты обратно на 1. но фигня в том что там комиссия за перевод есть.
>>209428206чувак забей на это.напиши простенькую программку котороя переберет быстренько все возможные моменты и покажет лучший
>>209429371Ок, я не против, но как это должно выглядеть, на что смотреть?Здесь >>209428000 писал, в чем вижу проблему. За один шаг мы ничего не определим. Несколько шагов хуй знает как перебирать
>>209430377Пиздатый расчет. Ты никакому банку не пишешь алгоритмы? За 10 тиков 42к под 1.1%? Ты где-то на сотку не поделил!
>>209431246Вот же как он считает. Там проблема не в том, что он на 100 не поделил, а в том, что у него процент получеться не процент, а сразу основной вклад + процент, то есть acc2 по-сути прибавляет к себе не 0.1 от 1000 = 100, а все 1100.Но то все равно, мелочи я могу исправить. Алгоритм пока что не понятен..
>>209423213 (OP)Походу надо рассуждать с дивана так:1. У нас есть сумма бабок на двух счетах в каждый тик. Это как один счет без капитализации.2. Мы видим, что скорость прироста бабла есть константа во времени.3. Если бабки капитализируются каждый тик и без комиссии, то и скорость во времени растет, причем нелинейно. 4. Но комиссию нам завезли. Так вот когда комиссия станет меньше скорости прироста скорости прироста бабла (вторая производная), то пора бабло перекидывать.
>>209433051Если мне кто-нибудь поведает, что же такое тик, то возможно я скажу, что с самого начала рассуждал подобным образом здесь в конце >>209429010 .Но это не точно. Надо подумать..
>>209433051Кстати на задачу в пункте 3 есть решение. Это будет просто экспонента конечная_сума(t) = начальная епроцентt
>>209433400Не хочу тебя расстраивать, анончик, но я немного подебагал твой код, и пришел к выводу, что он хуйню какую-то делает непонятную. Также вне зависимости от входных данных всегда получаеться число равное полочине изначальных TICKS (если только комиссия не больше изначального вложения)
>>209433789не хочу тебя расстраивать но если для тебя три функции по паре строк непонятные.. ну ты понял.а так - не нравится - исправь.
>>209433789Так вот, нужно ебать двойным дифференциалом функцию графика бабла, а она и задается толи натуральным логарифмом, толи самой е. Потому формула ответа логична, а объяснение этой мандуле я вроде дал.
>>209433869Я не понял, что ты делаешь, потому что не понял, что ты пытался сделать. Арифметические операции я могу прочесть, но не могу прочесть в них смысла.Ну и извиняй, если что то показалось обидным в моих словах
>>209434147я даж не знаю что тут объяснять.первая функция добавляет проценты от первого на второй.вторая - проходит по всему времени, если в заданный момент времени может первести (денег больше комиссии) - переводит, и вызывает первую каждый момент времени.третья - вызывает вторую в цикле и каждый раз задает новый момент для перевода. ну и сохраняет максимальный профит за всё время.
>>209434441> если в заданный момент времени может первести (денег больше комиссии) - переводитПо логике это просто будет сжирать прибыль, а по цифрам в проге творится что-то нелогичное.
>>209434629Я смотрю на входные и выходные данные. Не нужно даже вникать в код, чтобы понять что он считает какую-то дичь.
>>209434712Ты понимаешь прикладную область этой задачи? Представь, что ты в банк положил 1к под 0,01% на 20 лет и получаешь 120к! Наебалово чувствуешь при любых манипуляциях со счетами!
>>209434441Потому что не код нужно обьяснять, а алгоритм вычисления оптимального времени. Если вторая - проходит по всему времени, если в заданный момент времени может первести (денег больше комиссии) - переводит, и вызывает первую каждый момент времени. это действительно так, то все остальное проёбываеться, потому что это никакой прибыли не дасть, а будет просто покрывать комиссию за перевод и деньги на основном счету будут оставаться равны изначальной суме вклада
>>209423213 (OP)короче, делай так:пишешь функцию расчёта итоговой суммы, которая моделирует твои процессыделаешь входным вектором шаги итераций, на которых надо перекладывать со 2 в 1после этого натравливаешь на это сверху оптимизатор, варьируя параметры входного вектораСперва вектор сделай длинной 1, получишь оптимальный момент перекладывания, если оно будет всего одноПотом 2, получишь 2 временных момента перекладыванияЗатем 3, 4, и т.д.Гарантий что оно придёт к глобальному максимуму никаких нет, но попробовать стоит
>>209435382Короче, с точки здравого смысла: 1. в проге проеб именно в алгоритме2. Представь тот момент, когда тебе будет обиднее держать комиссию на втором счету! Тогда, когда в следующем периоде процент от суммы перевода минус комиссия тебе принесут бабок больше, чем эта комиссия.
>>209430362https://repl.it/repls/JaggedNegligibleFlashdrives>>209430362я вам там вторую стратегию добавил - переводить каждые Х тиков.
>>209439352Я не оп, но мне было бы интересно узнать, как подобные штуки решать аналитически. Хотя бы на примере данной конкретной.
Ноль, целковый, полушка, четвертушка, осьмушка, пудовичок, медячок, серебрячок, золотничок, девятичок, десятичок.
>>209438635Как в любом оптимизационном процессеЕсли улучшение функционала меньше дельты, то всё останавливаетсяНу или количество итераций
>>209423213 (OP)НужноТак как коммисия - фиксированная сумма, то нужно чтобы проценты были больше чем коммисия. Далее нужно исходить из того какие потери приемлимы, то есть какой процент от профита ты готов отдать в виде комиссии, допустим 50% будет дохуя, а вот 10% норм. Но чем реже выводишь, тем меньше коммиссия в процентах.А вообще, если говоришь про реинвестирование, то тебе принципиально надо другой вклад, без вывода денег, чтобы проценты приходили на счёт вклада, тогда будут проценты на проценты, т.е. сложный процент. А так у тебя всё равно надо со второго счёта ложить на первый. Либо если хочешь тратить часть профита, то может стоит два вклада сделать, один как я советую, а вторрй чтобы пенку снимать и тратить? Я просто не вижу смысла платить коммисию при реинвестировании, есть более оптимальные пути.
Это если под коммисией ты подразумевал именео фиксированную сумму в рублях, а не фиксиррванный процент.>>209440047
>>209423213 (OP)> Теперь вопрос: когда стоит переводить деньги со Счета 2 на Счет 1, так что бы сумарный рост денег (за условних m = 100 единиц времени) на Счету 1 был максимальным. Ну или же чему должна быть равна разница t_n - t_(n-1) в зависимости от размера процента и текущего баланса на Счету 1Вопрос можно трактовать, как постоянную периодичность или частоту, но где гарантия ну так сходу, что оптимальной стратегией будет именно постоянная, а не переменная периодичность?
>>209440047Да, комиссия фиксированная в рублях. Реинвестированние в итоге работает как сложный процент, но с уплатой этой фиксированной комисии при каждой итерации реинвестированния. В итоге деньги растут по экспоненте даже с комиссией, но мне ведь хочеться, что бы они росли по экспоненте по максимуму (не уверен, на что скорость рентвестированния влияет, на базу экспоненты или на сам показатель)
>>209440663Нет, это не будет постоянный период. По мере увеличения размера денег на Счете 1, время между следующими итерациями реинвестирования постоянно будет уменшаться (так как процент множиться на текущую сумму на счету, который увеличиваеться, а комиссия остаеться фиксированной)
>>209440795> деньги растут по экспоненте даже с комиссиейЕсли комиссия большая, чем прибыль за весь рассматриваемый период, то в реинвестиции вообще нет смысла и ответ никогда.Если комиссия нулевая, то реинвестицию нужно вообще делать каждыйтик и ответ всегда.
>>209439352Я ОП, мне конкретную. Желательно, что бы параметры могли изменяться, если хочешь предложить чисельнное решение
>>209441034> чисельнное решениеТак дай данные конкретные. Чую наших всем тредом усилий не хватит, чтобы решить её в общем случае. Там матан кусается. А так и побрутить можно, тут даже погромисты мелькали.
>>209440984Спасибо кэп. Ваще да, ты мыслишь правильно, и с твоих рассуждений следует, что где-то посредине с конечными значениями этих велечин должен существовать максимум этой скорости ренвестированния. Естественно я рассматриваю реалистическую задачу с решением. К примеру 1000 руб - начало. 1 процент в день, комиссия 5 руб за перевод. Такая задача имеет решение. А вот какое оно, и есть тема треда