基于Python+爬虫的股票量化交易分析平台设计与实现
import pandas as pd
from jqdata import *
# 初始化函数,设定可交易日期等
def initialize(context):
set_option('use_real_price', True)
set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
set_benchmark('000300.XSHG')
# 设定我们要分析的股票池
g.security = '000001.XSHE'
# 每天开始时执行的函数
def handle_data(context, data):
# 获取当前可用资金
cash = context.portfolio.cash
# 获取当前 security 的价格
price = data[g.security].mavg(20, 'day')
# 如果可以买入
if cash > 10000:
order_value(g.security, 10000 // price)
# 如果股票持有量大于0,且当前价格低于20日均线,可以卖出
if context.portfolio.positions[g.security].holding_quantity > 0 and price < data[g.security].mavg(20, 'day'):
order_target(g.security, 0)
# 运行函数,初始化并运行回测
if __name__ == '__main__':
run_backtest(initialize=initialize, handle_data=handle_data, start_date='2015-01-01', end_date='2020-01-01')
这个简易的例子展示了如何使用jqdata
库来进行股票的价格平均线交易策略回测。在这个例子中,我们设定了一个基准股票池,并在每天开始时检查当前的可用资金和股票价格。如果可以购买并且当前资金大于10000,我们就买入股票。如果持有股票并且价格落到了20日线以下,我们就清空股票位置。这个例子简单明了,但是它展示了如何将实际的交易策略嵌入到一个自动化的回测环境中。
评论已关闭