相对于全仓买入, 增加仓位管理(凯利公式), 在交易过程中动态更新胜率和赔率, 有效降低风险回撤和资金回测.
def simulate_kelly_trading(stock_data, signal, initial_balance=100000, commission_rate=0.0005, slippage_rate=0.01, tax_rate=0.001):
balance = initial_balance
position = 0
trade_history = []
portfolio_value_history = []
peak_value = initial_balance
max_risk_drawdown = 0
max_capital_drawdown = 0
win_count = 0
loss_count = 0
total_win = 0
total_loss = 0
stock_data['trade_date'] = pd.to_datetime(stock_data['trade_date'], format='%Y%m%d')
for index, row in stock_data.iterrows():
if signal[index