定时任务在量化中的应用
在实盘量化程序中有时候我们需要定时的从数据接口获取数据来供交易策略处理产生交易信号进而做出交易决策。比如基于15分钟K线设计的交易策略需要每15分钟向数据接口发出请求获取最新的15分钟k线数据交给交易策略处理,产生相应的交易信号最后做出相应的交易决策。
python模块介绍
面对定时任务处理需求python给我们提供了一些非常方便的定时任务处理模块,主要有time.sleep, threading.Timer, sched(python自带), schedule和apscheduler五个模块。
各模块的优缺点如下:

示例代码
在上述的量化应用场景当中我们一般使用apscheduler定时框架,以便在高效完成相关量化实盘程序的定时需求。比如你想在能被15整除的分钟数才获取k线数据,用其他的模块就难以完成,但是使用apscheduler框架就能通过几行非常简短的代码来实现该需求。
在此笔者以每10秒向tushare请求数据为例展示 apscheduler定时框架的相关用法。
代码如下:
# -*- coding: utf-8 -*-
# python环境:python3.7
# apscheduler版本:3.6.1
from apscheduler.schedulers.blocking import BlockingScheduler
import tushare as ts
from queue import Queue,Empty
from threading import Thread
from datetime import datetime
class Demo:
def __init__(self,token):