# 导入聚宽函数库 import jqdata log.set_level("system","error") # 初始化程序, 整个回测只运行一次 def initialize(context): # 开启动态复权模式(真实价格) set_option('use_real_price', True) # 股票类交易手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱 set_order_cost(OrderCost(open_tax=0, close_tax=0.001, \ open_commission=0.0003, close_commission=0.0003,\ close_today_commission=0, min_commission=5), type='stock') # 股票池 g.stocks = list(get_all_securities(['stock']).index) #上涨家数 g.num = [] #上涨家数(去重) g.b=[] # 计数器 g.run_num = -1 # 运行函数 run_daily(market_open, time='every_bar') def before_trading_start(context): # 得到所有股票前1日收盘价 g.last_df = history(1,'1d','close',g.stocks) def market_open(context): #频率10分钟一次 g.run_num += -1 if g.run_num != 10: return else: g.run_num = 0 #每天每10分钟实时价格 for security in g.stocks: # 得到当前价格 current_data = get_current_data() price = current_data[security].last_price g.one = g.last_df[security][0] if price > g.one: g.num.append(security) g.b = list(set(g.num)) elif price < g.one: if security in g.num: g.num.remove(security) g.b = list(set(g.num)) print(len(g.b))把上述代码改成只在14:30分运行
时间: 2024-02-14 10:25:15 浏览: 282
你可以在`initialize`函数中添加一个定时器,使其在14:30分运行。具体的修改如下:
```python
def initialize(context):
# 其他代码...
# 添加定时器,每天的14:30分运行
run_daily(market_open, time='14:30')
```
这样修改后,`market_open`函数将在每天的14:30分被调用。你可以在该函数中继续执行你的逻辑。
阅读全文