MCPcopy Create free account
hub / github.com/SkyworkAI/DeepResearchAgent / test_backtest

Function test_backtest

src/environment/quickbacktest/backtest.py:92–120  ·  view source on GitHub ↗

Run backtest

(
        data: pd.DataFrame,
        code: Union[str, List[str]],
        strategy: BaseStrategy,
        signal: BaseSignal,
        strategy_kwargs: Dict = STRATEGY_PARAMS,
        commission_kwargs: Dict = COMMISSION,
        workdir: Path = None,
    )

Source from the content-addressed store, hash-verified

90
91
92def test_backtest(
93 data: pd.DataFrame,
94 code: Union[str, List[str]],
95 strategy: BaseStrategy,
96 signal: BaseSignal,
97 strategy_kwargs: Dict = STRATEGY_PARAMS,
98 commission_kwargs: Dict = COMMISSION,
99 workdir: Path = None,
100 ) -> Any:
101 """Run backtest"""
102 combo_data: pd.DataFrame = signal(data).fit(data)
103 combo_data.set_index("trade_time", inplace=True)
104
105 result = backtest_strategy(
106 data=combo_data,
107 code=code,
108 strategy=strategy,
109 strategy_kwargs=strategy_kwargs,
110 commission_kwargs=commission_kwargs,
111 )
112 ax = plot_cumulative_return(result, title="Buy and Hold Strategy")
113 plt.savefig(workdir / "cumulative_return.png") if workdir else None
114 plt.close(ax.figure)
115 return {
116 "sharpe_ratio": get_strategy_sharpe_ratio(result),
117 "cumulative_return (%)": get_strategy_cumulative_return(result).iloc[-1],
118 "max_drawdown (%)": get_strategy_maxdrawdown(result),
119 "picture_path": str(workdir / "cumulative_return.png") if workdir else None
120 }

Callers

nothing calls this directly

Calls 7

backtest_strategyFunction · 0.85
plot_cumulative_returnFunction · 0.85
get_strategy_maxdrawdownFunction · 0.85
fitMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected