|
|
@ -7,35 +7,34 @@ from auto_trading.predictor.selector import SelectorPredictor |
|
|
|
from auto_trading.predictor.random_predictor import RandomPredictor |
|
|
|
from auto_trading.main import Bot |
|
|
|
import matplotlib.pyplot as plt # type: ignore |
|
|
|
from tqdm import tqdm |
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
|
csv = "data/gold.csv" |
|
|
|
bt = Backtest(csv, index_col=0) |
|
|
|
|
|
|
|
start = {"USD":10_000, "Gold": 0} |
|
|
|
pred = MeanAggregator([NormalizedPredictor(), SelectorPredictor({"USD": -0.1}), RandomPredictor()]) |
|
|
|
pred = MeanAggregator([RandomPredictor(), SelectorPredictor({"USD": -0.1}), RandomPredictor()]) |
|
|
|
|
|
|
|
bot = Bot( |
|
|
|
ptf=InMemoryPortfolio(start.copy()), |
|
|
|
strategy=AllIn(), |
|
|
|
broker=Backtest(csv, index_col=0), |
|
|
|
predictor=pred |
|
|
|
broker=bt, |
|
|
|
predictor=SelectorPredictor({"USD": -0.1}) |
|
|
|
) |
|
|
|
|
|
|
|
bot.print_results() |
|
|
|
print("\n") |
|
|
|
|
|
|
|
TIME = range(400) |
|
|
|
TIME = bt.data.index |
|
|
|
B = [] |
|
|
|
for _ in TIME: |
|
|
|
for _ in tqdm(TIME): |
|
|
|
bot.run_once() |
|
|
|
#bot.print_results() |
|
|
|
assets = bot.ptf.content() |
|
|
|
spread=1/100 |
|
|
|
for k in assets.keys(): |
|
|
|
assets[k]=(1-spread)*assets[k] |
|
|
|
# bot.print_results() |
|
|
|
# assets = bot.ptf.content() |
|
|
|
# spread=1/100 |
|
|
|
# for k in assets.keys(): |
|
|
|
# assets[k]=(1-spread)*assets[k] |
|
|
|
B.append( bot.balance() ) |
|
|
|
print(B[-1]) |
|
|
|
print("\n") |
|
|
|
bot.print_results() |
|
|
|
|
|
|
|
plt.plot(TIME,B) |
|
|
|
plt.show() |
|
|
|