为什么策略回测没有交易

用户头像sh_*792nc6
2026-07-14 发布

可转债日内交易策略,编译运行后没有买入卖出,策略收益一直是0,这是哪里设置的问题吗

评论

用户头像
2026-07-14 16:20:26

def initialize(context):

设置股票池:只用一只股票测试

g.stock = '000001.SZ' # 平安银行
set_universe([g.stock])
log.info(f"股票池: {g.stock}")

状态记录

g.bought = False
g.buy_price = 0

每天 09:35 执行买入或卖出

run_daily(trade, time='09:35')
def trade(context, data):
stock = g.stock
if data[stock].is_suspended:
log.info(f"{stock} 停牌,跳过")
return

price = data[stock].close
if price <= 0:
return

如果没有持仓且今天还没买,就买入100股

if not g.bought and stock not in context.portfolio.positions:
order(stock, 100) # 买入100股
g.buy_price = price
g.bought = True
log.info(f"买入 {stock} 100股,价格 {price:.3f}")

如果有持仓,卖出

elif g.bought and stock in context.portfolio.positions:
order_target(stock, 0) # 全部卖出
g.bought = False
log.info(f"卖出 {stock},买入价 {g.buy_price:.3f},现价 {price:.3f}")

没有执行买入,这个需要其他设置吗,我是在网页版运行的

评论
用户头像
sh_*792nc6回复:sup****nd001
2026-07-14 16:44:28

def initialize(context):

设置股票池:只用一只股票测试

g.stock = '000001.SZ' # 平安银行
set_universe([g.stock])
log.info(f"股票池: {g.stock}")

状态记录

g.bought = False
g.buy_price = 0

每天 09:35 执行买入或卖出

run_daily(trade, time='09:35')
def trade(context, data):
stock = g.stock
if data[stock].is_suspended:
log.info(f"{stock} 停牌,跳过")
return

price = data[stock].close
if price <= 0:
return

如果没有持仓且今天还没买,就买入100股

if not g.bought and stock not in context.portfolio.positions:
order(stock, 100) # 买入100股
g.buy_price = price
g.bought = True
log.info(f"买入 {stock} 100股,价格 {price:.3f}")

如果有持仓,卖出

elif g.bought and stock in context.portfolio.positions:
order_target(stock, 0) # 全部卖出
g.bought = False
log.info(f"卖出 {stock},买入价 {g.buy_price:.3f},现价 {price:.3f}")

没有执行买入,这个需要其他设置吗,我是在网页版运行的

评论