基于量化交易回测的金融股票案例分析

本案例涉及到大量金融方面知识,大家可以自行去网上搜寻,我会在另一篇博客上写一些本项目涉及到的基础知识,欢迎大家浏览!
准备阶段:

因子选取很重要,会直接影响量化的结果准确性。这里省去寻找因子过程
因子已经提前准备好:
基于量化交易回测的金融股票案例分析_第1张图片
context.weights = np.array([ 0.02953221, -0.04920124, -0.10791485, 0.00801783, -0.03613599, 0.1310877 , -0.03030564, 0.40286239, -0.30166898])

本分析用的软件是米筐(https://www.ricequant.com/)
基于量化交易回测的金融股票案例分析_第2张图片
基于量化交易回测的金融股票案例分析_第3张图片
基于量化交易回测的金融股票案例分析_第4张图片

项目过程
基于量化交易回测的金融股票案例分析_第5张图片
代码:
基于量化交易回测的金融股票案例分析_第6张图片

# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
import pandas as pd
import numpy as np
from sklearn.linear_model import  LinearRegression
# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):
    # 在context中保存全局变量
    # context.s1 = "000001.XSHE"
    #确定股票池
    context.hs300=index_components('000300.XSHG')
    #定义选股数量
    context.stock_num=20
    # print(context.hs300)
    #确定权重系数 一一对应
    arr = np.array([ 0.02953221, -0.04920124, -0.10791485,  0.00801783, -0.03613599, 0.1310877 , -0.03030564,  0.40286239, -0.30166898])
    context.weights=np.mat(arr).T
    #获取财务数据
    scheduler.run_monthly(myregression,tradingday=1)
    
#离群点处理
def three_sigan(data):
    high=data.mean()+3*data.std()
    low=data.mean()-3*data.std()

    #将离群点拉倒正常范围内
    np.where(data>high,high,data)
    np.where(data

基于量化交易回测的金融股票案例分析_第7张图片

你可能感兴趣的:(基于量化交易回测的金融股票案例分析)