Files
AlphaFlow-MT5-ML-DL-Trading…/backtests/__pycache__/simple_backtest.cpython-311.pyc
T

45 lines
3.1 KiB
Plaintext
Raw Normal View History

2025-03-02 22:25:33 +01:00
§
gŒ³g
ãó&ddlZddlZddZddZdS)éNç-Cëâ6*?cóLt|¦«t|¦«krtd¦«d|jvrtd¦«|d ¦« d¦«|d<t jt|¦«¦«}d}tt|¦«¦«D]K}|||dj|z||<|dkr|||kr||xx|zcc<||}ŒLd|z  ¦«dz
}|dz}||fS)aj
A simple backtest function that simulates trading based on signals (+1/-1/0).
Parameters
----------
signals : array-like of int
Sequence of +1, -1, or 0 indicating long, short, or flat.
df : pd.DataFrame
Must contain at least a 'close' column with the same length as 'signals'.
cost : float
Transaction cost fraction per position change (e.g. 0.0002 = 0.02%).
Returns
-------
daily_returns : np.array
The sequence of returns from the strategy for each bar.
total_return : float
The total percentage return (e.g., 10.0 = +10%).
z*Length of signals must match length of df.Úclosez!df must contain a 'close' column.rÚ price_returnégY@)
ÚlenÚ
ValueErrorÚcolumnsÚ
pct_changeÚfillnaÚnpÚzerosÚrangeÚilocÚprod)ÚsignalsÚdfÚcostÚ
daily_returnsÚ prev_signalÚcumulative_returnÚ total_returns úCc:\Users\moham\OneDrive\ml_bot_trading\backtests\simple_backtest.pyÚsimulate_tradingr s<õ( ˆ7|„|•s˜2‘w”wÒÐÝÐb”jÐ Ð ÝИGœ×Ñ;€B€~Ñõ
”H™\œ\Ñ*€Mà€KÝ
•3w<”<Ñ
Ô
ð!ˆà" 1œ:¨¨>Ô(:Ô(?ÀÔ(BÑBˆ
ð
ˆqŠ5ˆ5W˜Q”Z ;Ò ˜!Ð Ð Ô  Ñ Ð Ñ Ø˜a”jˆ ˆ ð˜]Ñ2°QÑØ$ ,€Là ˜ çcó¶tj|¦«}||z
}tj|¦«}tj|¦«}|dkr tjS||z }|S)
Calculates a simple Sharpe ratio for a series of returns.
Parameters
----------
returns : list or np.array
A sequence of returns per bar/day.
risk_free : float, optional
Risk-free rate per bar/day, default is 0.0 (no risk-free rate).
Returns
-------
float