|
|
@ -5,9 +5,10 @@ from auto_trading.predictor.mean_agg import MeanAggregator |
|
|
|
from auto_trading.predictor.normalized import NormalizedPredictor |
|
|
|
from auto_trading.predictor.selector import SelectorPredictor |
|
|
|
from auto_trading.predictor.random_predictor import RandomPredictor |
|
|
|
from auto_trading.main import Bot |
|
|
|
from auto_trading.bot import Bot |
|
|
|
from tqdm import tqdm # type: ignore |
|
|
|
import pandas as pd # type: ignore |
|
|
|
|
|
|
|
pd.options.plotting.backend = "plotly" |
|
|
|
|
|
|
|
|
|
|
@ -15,11 +16,13 @@ if __name__ == "__main__": |
|
|
|
csv = "data/gold.csv" |
|
|
|
|
|
|
|
bt = Backtest(csv, start=10, index_col=0) |
|
|
|
|
|
|
|
|
|
|
|
start = {name: 0 for name in bt.data.columns} |
|
|
|
start["USD"] = 10_000 |
|
|
|
|
|
|
|
pred = MeanAggregator([RandomPredictor(), SelectorPredictor({"USD": -0.1}), RandomPredictor()]) |
|
|
|
pred = MeanAggregator( |
|
|
|
[RandomPredictor(), SelectorPredictor({"USD": -0.1}), RandomPredictor()] |
|
|
|
) |
|
|
|
|
|
|
|
bot = Bot( |
|
|
|
ptf=InMemoryPortfolio(start.copy()), strategy=AllIn(), broker=bt, predictor=pred |
|
|
@ -30,7 +33,10 @@ if __name__ == "__main__": |
|
|
|
for date in tqdm(data.index): |
|
|
|
bot.run_once() |
|
|
|
current_investments = bot.ptf.content() |
|
|
|
converted_investments = {name: amount * bot.current_conversion_rate[name] for name, amount in current_investments.items()} |
|
|
|
converted_investments = { |
|
|
|
name: amount * bot.current_conversion_rate[name] |
|
|
|
for name, amount in current_investments.items() |
|
|
|
} |
|
|
|
data.loc[date] = converted_investments |
|
|
|
bot.print_results() |
|
|
|
|
|
|
|