Merge pull request #5244 from octaviusgus/develop

fix daily profit data bug and daily profit curve example
This commit is contained in:
Matthias 2021-07-09 07:06:14 +02:00 committed by GitHub
commit fb25130588
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 7 deletions

View File

@ -148,13 +148,18 @@ import pandas as pd
stats = load_backtest_stats(backtest_dir) stats = load_backtest_stats(backtest_dir)
strategy_stats = stats['strategy'][strategy] strategy_stats = stats['strategy'][strategy]
dates = []
profits = []
for date_profit in strategy_stats['daily_profit']:
dates.append(date_profit[0])
profits.append(date_profit[1])
equity = 0 equity = 0
equity_daily = [] equity_daily = []
for dp in strategy_stats['daily_profit']: for daily_profit in profits:
equity_daily.append(equity) equity_daily.append(equity)
equity += float(dp) equity += float(daily_profit)
dates = pd.date_range(strategy_stats['backtest_start'], strategy_stats['backtest_end'])
df = pd.DataFrame({'dates': dates,'equity_daily': equity_daily}) df = pd.DataFrame({'dates': dates,'equity_daily': equity_daily})

View File

@ -272,7 +272,7 @@ def generate_daily_stats(results: DataFrame) -> Dict[str, Any]:
winning_days = sum(daily_profit > 0) winning_days = sum(daily_profit > 0)
draw_days = sum(daily_profit == 0) draw_days = sum(daily_profit == 0)
losing_days = sum(daily_profit < 0) losing_days = sum(daily_profit < 0)
daily_profit_list = daily_profit.tolist() daily_profit_list = [(str(idx.date()), val) for idx, val in daily_profit.iteritems()]
return { return {
'backtest_best_day': best_rel, 'backtest_best_day': best_rel,

View File

@ -215,13 +215,18 @@
"stats = load_backtest_stats(backtest_dir)\n", "stats = load_backtest_stats(backtest_dir)\n",
"strategy_stats = stats['strategy'][strategy]\n", "strategy_stats = stats['strategy'][strategy]\n",
"\n", "\n",
"dates = []\n",
"profits = []\n",
"for date_profit in strategy_stats['daily_profit']:\n",
" dates.append(date_profit[0])\n",
" profits.append(date_profit[1])\n",
"\n",
"equity = 0\n", "equity = 0\n",
"equity_daily = []\n", "equity_daily = []\n",
"for dp in strategy_stats['daily_profit']:\n", "for daily_profit in profits:\n",
" equity_daily.append(equity)\n", " equity_daily.append(equity)\n",
" equity += float(dp)\n", " equity += float(daily_profit)\n",
"\n", "\n",
"dates = pd.date_range(strategy_stats['backtest_start'], strategy_stats['backtest_end'])\n",
"\n", "\n",
"df = pd.DataFrame({'dates': dates,'equity_daily': equity_daily})\n", "df = pd.DataFrame({'dates': dates,'equity_daily': equity_daily})\n",
"\n", "\n",