INNER CODE UNIT · Python
execute
shashankvemuri/Finance · src/finance/backtesting/engine.py:115
def execute(quantity, price, timestamp, signal_time, phase):
nonlocal cash, shares, fees_total
for j, delta in enumerate(quantity):
if abs(delta) < 1e-10:
continue
fill_price = price[j] * (1 + np.sign(delta) * slippage)
fee = abs(delta) * fill_price * commission
cash -= delta * fill_price + fee
shares[j] += delta
fees_total += fee
fills.append(
{
"date": timestamp,
"signal_date": signal_time,
"asset": opens.columns[j],
"quantity": delta,
"price": fill_price,
"commission": fee,