期货量化策略中的简单资金管理_固定比例与波动率缩放

期货量化策略中的简单资金管理_固定比例与波动率缩放 免责声明本文基于个人使用体验与任何厂商无商业关系。内容仅供技术交流参考不构成投资建议。一、前言同样的信号仓位不同结果差异很大。简单资金管理常用固定比例或按波动率缩放手数。做了二十年期货交易我习惯在策略里加一层资金管理。今天分享期货量化策略中固定比例与波动率缩放两种简单资金管理思路。二、固定比例# 总资金的一定比例作为单笔风险或单笔仓位# 例如每次开仓用权益的 10% 对应保证金deffixed_ratio_lots(account_balance,ratio0.1,margin_per_lot5000):按权益比例算手数简化capital_useaccount_balance*ratio lotsint(capital_use/margin_per_lot)returnmax(1,lots)iflots1else0三、波动率缩放# 波动大时减仓、波动小时可适当加仓使风险敞口相对稳定fromtqsdk.taimportATRdefvolatility_scaled_lots(klines,base_lots1,atr_period20,target_risk_ratio0.02):按 ATR 缩放手数思路示例atrATR(klines,atr_period)iflen(atr.atr)1:returnbase_lots atr_valatr.atr.iloc[-1]closeklines[close].iloc[-1]ifatr_val0orclose0:returnbase_lots# 简化波动大则减仓scale(close*0.01)/atr_val# 目标波动占比lotsmax(1,int(base_lots*scale))returnlots四、在策略里接入fromtqsdkimportTqApi,TqAuth,TqAccount apiTqApi(TqAccount(期货公司,账号,密码),authTqAuth(账户,密码))accountapi.get_account()klinesapi.get_kline_serial(SHFE.rb2510,300,100)positionapi.get_position(SHFE.rb2510)whileTrue:api.wait_update()ifapi.is_changing(klines)andlen(klines)20:# 信号closeklines[close].iloc[-1]ma20klines[close].rolling(20).mean().iloc[-1]ifclosema20andposition.pos_long0:lotsfixed_ratio_lots(account.balance,ratio0.1,margin_per_lot5000)iflots0:api.insert_order(SHFE.rb2510,BUY,OPEN,lots)elifclosema20andposition.pos_long0:api.insert_order(SHFE.rb2510,SELL,CLOSE,position.pos_long)api.close()五、总结简单资金管理可用固定比例或波动率缩放控制手数使风险更可控。固定比例易实现波动率缩放需结合 ATR 等指标。我目前策略会加一层资金管理再实盘。量化交易有风险资金管理只是其一策略和风控才是核心。声明本文基于个人学习经验整理仅供技术交流参考不构成任何投资建议。