INNER CODE UNIT · Python

borrow

shashankvemuri/Finance · src/finance/backtesting/engine.py:168

        borrow = np.maximum(-shares, 0) @ price * borrow_rate / periods
        cash -= borrow
        borrow_total += borrow
        if protective:
            high, low = highs.iloc[i].to_numpy(), lows.iloc[i].to_numpy()
            for j in range(len(shares)):
                side = np.sign(shares[j])
                if not side:
                    continue
                stop = entries[j] * (1 - side * stop_loss) if stop_loss else None
                if trailing_fraction:
                    trail = extremes[j] * (1 - side * trailing_fraction)
                    stop = (
                        trail
                        if stop is None
                        else (max(stop, trail) if side > 0 else min(stop, trail))
                    )
                profit = entries[j] * (1 + side * take_profit) if take_profit else None

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…