You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.3 KiB

import matplotlib.pyplot as plt
from import Backtest
from auto_trading.indicators.dumb import Dumb
from auto_trading.indicators.slopy import Slopy
from auto_trading.indicators.sma import SMA
from auto_trading.interfaces import Indicator
from auto_trading.strat.buyupselldown import BuyUpSellDown
from auto_trading.strat.hold import Hold
from auto_trading.ptf.in_memory import InMemoryPortfolio
from import Bot
if __name__ == "__main__":
bt = Backtest("./data/NYSE_small.csv")
ptf = InMemoryPortfolio(
base_balance=100, change_rate_getter=lambda: bt.current_change
strategy = BuyUpSellDown({"slopy": Slopy(), "sma": SMA(windowSize=5)})
bot = Bot(ptf, strategy, bt)
###### Visualisation ######
data =
# select high prices for each action
closeData = data["close"]
sma = closeData.rolling(window=5).mean()
ema = closeData.ewm(alpha=0.6).mean()
plt.plot(closeData, label="real", marker="x", linewidth=0)
plt.plot(sma, color="red", label="SMA")
plt.plot(ema, color="green", label="EMA")
for order in ptf.history: