#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()
. То же самое с непогашенными денежными средствами, есть ли у нас временные ряды непогашенных денежных средств во все моменты времени?