3 changed files with 31 additions and 34 deletions
@ -1,44 +1,19 @@ |
|||
from auto_trading.broker.backtest import Backtest |
|||
from auto_trading.strat.all_in import AllIn |
|||
from auto_trading.strat.hold import Hold |
|||
from auto_trading.ptf.in_memory import InMemoryPortfolio |
|||
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.bot import Bot |
|||
from tqdm import tqdm # type: ignore |
|||
import pandas as pd # type: ignore |
|||
|
|||
pd.options.plotting.backend = "plotly" |
|||
|
|||
|
|||
if __name__ == "__main__": |
|||
csv = "data/gold.csv" |
|||
|
|||
bt = Backtest(csv, start=10) |
|||
|
|||
start = {name: 0 for name in bt.data.columns} |
|||
start["USD"] = 10_000 |
|||
|
|||
pred = MeanAggregator( |
|||
[RandomPredictor(), SelectorPredictor({"USD": -0.1}), RandomPredictor()] |
|||
) |
|||
|
|||
bot = Bot( |
|||
ptf=InMemoryPortfolio(start.copy()), strategy=AllIn(), broker=bt, predictor=pred |
|||
bt = Backtest("./data/NYSE_smallest.csv") |
|||
ptf = InMemoryPortfolio( |
|||
base_balance=100, change_rate_getter=lambda: bt.current_change |
|||
) |
|||
strategy = Hold("GOOGL") |
|||
|
|||
data = pd.DataFrame(index=bt.data.index, columns=bt.data.columns) |
|||
bot = Bot(ptf, strategy, bt) |
|||
|
|||
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() |
|||
} |
|||
data.loc[date] = converted_investments |
|||
bot.print_results() |
|||
bot.run() |
|||
|
|||
# data.plot().show() # faster plot |
|||
data.plot.area().show() |
|||
for order in ptf.history: |
|||
print(order) |
|||
|
Loading…
Reference in new issue