Тестирование на Python с использованием процентной комиссии

#python #pandas #stocks #back-testing

#python #pandas #акции #обратное тестирование

Вопрос:

Я пишу скрипт для тестирования некоторых стратегий для набора акций с использованием платформы bt для python. В документации bt (модуль backtest) говорится:

комиссия (fn (количество)): Используемая функция комиссии.

Поэтому, когда я запускаю свой код

 result = bt.Backtest(strategy, data, initial_capital= 100000.00, commissions=)
  

Я хочу передать функцию, которая возвращает процентную комиссию, например, 0,5% от транзакции. Поскольку я не знаю размер транзакций, возможно ли это вообще? Как бы это иначе можно было решить, используя установленную комиссию?

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

1. Просто предположение, но если цена не меняется слишком сильно, комиссия за количество должна иметь тот же эффект, что и комиссия за цену.

2. Я использую данные с начала 2000 года, поэтому цена будет сильно меняться. Но я также не могу основывать это на количестве, как мне теперь определить количество транзакций?

Ответ №1:

Решил проблему, создав функцию с параметрами для количества и цены. Таким образом, было легко вернуть процент, основанный на стоимости транзакции, следующим образом:

 def my_comm(q, p):
    return abs(q)*p*0.0025
  

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

1. знаете ли вы, возможно ли получить временной ряд (точных) комиссий, выплачиваемых за транзакцию? я понимаю, что комиссии учитываются при расчете res.display() . То же самое с непогашенными денежными средствами, есть ли у нас временные ряды непогашенных денежных средств во все моменты времени?