import stock_base
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'FreeMono'
def calculate_sma(stock_data, window):
sma = stock_data['close'].rolling(window=window).mean()
return sma
def simulate_trading(stock_data, strategy, initial_balance=100000, commission_rate=0.0005, slippage_rate=0.01, tax_rate=0.001):
balance = initial_balance
position = 0
trade_history = []
stock_data['trade_date'] = pd.to_datetime(stock_data['trade_date'], format='%Y%m%d')
signal = strategy(stock_data)
for index, row in stock_data.iterrows():
if signal[index]