Комиссии при расчете на фондовом рынке

#python #pandas #numpy #stock

Вопрос:

я работаю над бэктестом, и у меня возникла проблема с расчетом платы.

Предположим, что плата составляет 0,1%

И у меня уже есть цены на покупку/продажу, чтобы я мог получить процент прибыли:

где:

 df['Profit'] = ((df['Sells'] - df['Buys']) / df['Buys'])   1
 

Пример:

Покупает Продает Прибыль
3697.35 3698.69 1.000362
3698.24 3699.81 1.000425
3703.69 3706.23 1.000686

Таким образом, возвраты без сборов являются

 returns = df.Profit.cumprod()
 

Как я могу рассчитать фактическую прибыль (с учетом сборов) ?

Комментарии:

1. Что означает «комиссия в размере 0,1%»? Взимается ли плата за каждую транзакцию? Или от прибыли?

2. @TC, составляет 0,1% с каждой транзакции

Ответ №1:

Давайте сначала взглянем на вашу формулу:

 Profit = (Sells - Buys) / Buys   1
       = Sells / Buys - Buys / Buys   1
       = Sells / Buys - 1             1
       = Sells / Buys
 

Теперь из-за комиссии за транзакцию 0,1% вычитается из ваших продаж, а также добавляется к вашим покупкам. Таким образом, мы можем переписать код следующим образом:

 fee = 0.001
df['Profit'] = df['Sells'].mul(1 - fee) / df['Buys'].mul(1   fee)