Как я могу разработать этот алгоритм, чтобы лучше рассчитать вознаграждение за некоторые финансовые движения?

Это не чисто технический вопрос, но речь идет об алгоритме для решения проблемы о том, как рассчитать заработанные деньги в финансовые инвестиции.

Здесь вы можете найти базовый лист Excel, связанный с тем, как я моделирую проблему:

https://drive.google.com/file/d/1R29ofaOfSlzqkcjFsAmWvry-knfv8zOn/view?usp=sharing

Теперь я постараюсь объяснить вам контекст в деталях:

  • Он представляет собой криптовалюту финансовых вложений. В этом случае этот конкретный лист связан с валютой Эфириума.

  • Раздел IN MOVEMENTS слева содержит входные движения: пользователь покупает валюту Эфириума, используя евро, количество евро для каждого входного движения находится в столбце B с меткой *IN-VALUE**. Количество купленного эфириума для каждого движения указано в столбце D (с меткой КОЛИЧЕСТВО). Изменение € на ETH внесено в столбец E с меткой CHANGE VALUE. За некоторые перемещения я плачу в евро, представленную значением столбца F (с обозначением FEE).

  • В ВНЕШНИХ ДВИЖЕНИЯХ у меня есть выходные движения. Эти движения представляют, когда я меняю определенное количество валюты эфириума (представленное столбцом K, имеющим метку QUANTITY) на другую криптовалюту (потому что я использую валюту Ethereum для покупки других криптовалют на бирже). Так что для каждого выходного движения у меня есть столбец K, представляющий количество Эфириума, который собирается купить другую валюту (де-факто эти эфириум не уничтожаются и не теряются, а преобразуются в нечто иное, что будет рассматриваться в другом листе Excel) и значение в € этого количества эфириума (значение в столбце I) в конкретное время этого движения (этот последний шаг очень важен по моей причине).

  • Наконец, в ячейку N13 у меня есть последнее значение валюты Эфириума в €.

Теперь моя проблема: как рассчитать, сколько я зарабатываю?

Я начал думать: это просто, и я просто должен сделать что-то вроде этого:

REWARD = [(SUM(D clumn values) + SUM(K column values)] * N13 + SUM(I column values)

Итак, запишите эту формулу, вознаграждение в евро) - это итоговое число монеты Эфириума, которую я имею (сумма купленной мною монеты + отрицательное число монет, которые вышли, покупая другие валюты), умноженные на текущая стоимость монеты ETH (в евро) + отрицательная сумма евро, связанная с каждым движением.

Но в этом случае у меня большая проблема, я пытаюсь вам объяснить. Смотря мой пример Excel, есть 2 возможных ситуации:

1) Сценарий на красном фоне, в котором я покупаю немного Эфириума и немедленно перемещаю это количество Эфириума (точно такое же количество) на Рынок, и я покупаю другую валюту. Таким образом, IN-VALUE и OUT-VALUE имеют одинаковые значения (или в остальном очень похожи). И это нормально, я думаю, что можно справиться с моей предыдущей формулой вознаграждения.

2) Все остальные ситуации (которые проблематичны). Например, используя мой Excel в качестве примера, я делаю 3 разных ДВИЖЕНИЯ (на эти даты: 12/12/2017 и 15/12/2017 и 21/12/2017)

Затем, 16.12.2017, я делаю выходное движение, где я передаю -0,3353050000 Ethereum на другой рынок. Проблема в том, что за это время значение Ethereum изменилось (в данном случае оно было увеличено), поэтому у меня есть значение в € -198,96 €, которое нарушило мою предыдущую формулу вознаграждения, например:

REWARD = [(SUM(D clumn values) + SUM(K column values)] * N13 + SUM(I column values)

средства:

REWARD = 0,55363224 * 728,454911165 - 292,94

->

REWARD = 110.356124207 €

Проблема в том, что я думаю, что это очень плохое приближение, и проблема связана с этим разделом моей формулы НАГРАДЫ: СУММА (значения в столбце I).

На самом деле, я добавляю отрицательную стоимость в евро в тот момент, когда выполняю транзакцию на покупку, чтобы купить другую валюту. Это значение отражает фактическое преобразование ETH в постоянную €. Если значение ETH значительно увеличивается после того, как я выполнил мою последнюю входную транзакцию, этот раздел SUM(значения столбца I) должен принять слишком высокое значение. Если значение ETH значительно уменьшается после того, как я выполнил мою последнюю входную транзакцию, этот раздел формулы должен принять слишком низкое значение. Так что мое окончательное значение может быть не значимым. Это моя причина верна?

Поэтому я думаю решить ситуацию следующим образом:

Для каждого вышедшего движения я вычислю что-то вроде актуализированного значения (в столбец L, теперь помеченный XXX) следующим образом:

Я рассматриваю дату текущего выездного движения (например, 16/12/2017), затем беру все ВХОДНЫЕ ДВИЖЕНИЯ, имеющие предшествующую дату (поэтому входные движения связаны с этими датами: 12/12/2017, 15/12/2017, 21.12.2017). Я использую эти движения для расчета средневзвешенного значения конверсии ETH в € (поэтому, если у меня есть 3 входных движения, в которых я купил 3 разных количества ETH по 3 разным ценам, я вычислю средневзвешенное значение конвертации ETH в €), Я хочу использовать средневзвешенное значение, потому что, если в движении я покупаю большее количество ETH по определенной цене, оно должно весить больше в среднем).

Итак, теперь у меня есть средневзвешенное значение для всех предыдущих входных движений, и я поместил его в ячейку L3 (обозначенную XXX) текущего выходного движения. Я знаю, сколько монет ETH я переместил в этой транзакции (значение K3), поэтому умножьте значение K3* для нового значения **L3, и я использую эти значения L coumn в своей формуле REWARD вместо значений в столбце I.

Так что моя формула будет:

REWARD = [(SUM(D clumn values) + SUM(K column values)] * N13 + SUM(L column values)

Я думаю, что таким образом я должен получить более точное значение вознаграждения.

Имеет ли смысл моя идея?

0 ответов

Другие вопросы по тегам