01.自动化交易综述

算法交易的概念:

利用自动化平台,执行预先设置的一系列规则完成交易行为。

算法交易的优势

1.历史数据评估

2.执行高效

3.无主观情绪输入

4.可度量评价

5.交易频率

算法交易的劣势

1.成本,成本低难以体现收益

2.技巧

算法交易流程

大前提:基于某种平台(可自建)

1.提出假设

2.建立模型

3.回测验证

4.执行交易

交易策略的来源(trading strategy)

1市场微观结构研究(for HFT mostly)

2.基金结构套利(fund structure arbitrage)

3机器学习/人工智能(重点)

机器学习的四个流派:

离散的角度:符号主义(symbolism),可解释性好

代表性算法领域 1:决策树,涉及到的学科知识:信息论;

代表性算法领域 2:规则学习 (Rule),涉及到的学科知识:数理逻辑;

连接主义(connectionism)

代表性算法领域:神经网络,涉及到的学科知识:泛函分析。

连续的角度:频率主义(frequentists)

代表性算法领域:支持向量机 (SVM),涉及到的学科知识:统计学;

概率角度:贝叶斯主义(bayesian)

代表性算法领域:贝叶斯,例如朴素贝叶斯、概率图等,涉及到的学科知识:统计学、概率论;

ML的核心三板斧:

Data

Model & Objective Function

Optimization:寻找上面function的极值的方法

ML+Trading

限价委托单薄模型(Limit Order Book Modeling)

基于价格的分类模型(Price-based Classification Models),最常用,吃价格,输出分类(买卖)

基于文本的分类模型(Text-based Classification Models)基于高质量网站(Twitter)或股票评论网站(新浪财经新闻),采用自然语言处理方式进行选股票(信噪比较大,新闻来源,各种托)

强化学习(Reinforcement Learning)

ML+Trading建模四要素

Good model and efficient trading algorithms

Hardware( GPU/CPU)硬件要求

High quality data,数据是模型精度的上限

Platform(keras/tensorflow/sklearn) python为主

交易策略的评估

1.策略的基本假设

2.Sharp Ratio

3.杠杆

4.频率

5.风险

6.W/L

7.模型复杂度 VC dim

8.最大亏损 Maximum drawdown

9.Benchmarking

回测

1.回测是指将交易策略在历史数据中进行合理验证的过程。

2.回测的意义:

策略筛选

策略优化

策略验证

3.错误的回测:

乐观主义偏差 special look back region

时间旅行

·程序bug

·train/val/test set

幸存者误差(选股)

搭建平台需要理解事件驱动的编程模型

python 复制代码
while True:
	new_even = get_new_event()
	if new_event.something='事件1':
		do_something()
	if new_event.something='事件2':
		do_something_else()
	
	tick(50) #wait 50 milliseconds

金融时间序列数据统计分析(米筐)

python 复制代码
import warnings
warnings.filterwarnings("ignore")
import numpy as numpy
import pandas as pd
import matplotlib.pyplot as plt
# matplotlib没有就 pip install matplotlib
plt.style.use('seaborn')
#将matplotlib的图表直接嵌入到Notebook之中,py文件不支持这个命令
#%matplotlib inline

'''
导入数据
1.以时间为索引
2.将事件转换成标准格式
3.绘制展示各个指标的走势图
'''
#指定第一列为索引列,并且自动将时间文本转化为日期类型
data = pd.read_csv('stockdata.csv',index_col=0,parse_dates=True)
data.head()

data.plot(figsize = (10,12))

#分开显示
data.plot(figsize = (10,12),subplot = True)

'''
各个指标含义
AAPL.O:Applo Stock
MSFT.O:Microsoft Stock
INTC.O:IntelStock
AMZN.O:Amazon Stock
GS.N:Goldman Sachs Stock
SPY:SPDR S&P 500 ETF Trust 
SPX:S&P 500 Index
VIX:VIX Volatity Index
EUR:EUR/USD Exchange Rate 
XAU:Gold Price 
GDX:VanEck Vectors Gold Miners ETF 
GLD:SPDR Gold Trust
'''

# 统计分析
data.info()

data.describe().round(2)

data.mean()

data.aggregate([min,max,np.mean,np.std,np.median])
python 复制代码
#示例程序,至少包含4个必须实现的方法
import talib
# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):
    context.s1 = "000001.XSHE"
    #实时打印日志
    logger.info("Interested at stock:" + str())

# before_trading函数会在每天交易开始前被调用,当天仅会调用一次
def before_trading(context, bar_dict)
	pass
	
#

# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
# 该策略执行的频率在右边可以选择:天、分钟
def handle_bar(context, bar_dict):
    # 开始编写你的主要的算法逻辑
    pass

# after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):
    pass

从300支股票从选取10支收益率最高的股票,并买入;

收益率从股票的财务数据中提取,然后排序;

该策略每天执行,每天都会更新10支股票,需要将现有股票与排行榜中的股票进行比对,卖掉不在榜内的股票,买入在榜上的股票。

相关推荐
硅谷秋水2 小时前
EgoHumanoid‑V2 方法分析
人工智能·机器学习·计算机视觉·语言模型·机器人
2601_967979124 小时前
机器学习必修课:经典算法与Python实战
python·算法·机器学习·实战·课程
BYSJMG4 小时前
计算机毕业设计选题推荐:【基于深度学习的车辆损坏严重程度评估方法研究】ResNet50 图像分类
人工智能·深度学习·目标检测·机器学习·计算机视觉·分类·课程设计
wangxiaoxuan2174 小时前
从深度图到点云:投影、滤波、降采样与聚类
机器学习·数据挖掘·机器人·聚类·科沃斯八界
在所不辞兄5 小时前
为什么在电池供电场景下,不能采用固定电压频率策略,而需要动态调整以最大化 Race-to-Sleep 收益?
人工智能·深度学习·神经网络·机器学习
2601_967987375 小时前
SVM支持向量机通俗解析:找到机器学习的“最优分界线”
机器学习·svm·分类算法·核函数·最大间隔
BYSJMG6 小时前
计算机毕业设计选题推荐|【基于深度学习的电梯电动车违规进入检测研究】YOLO26m+可视化大屏
人工智能·深度学习·神经网络·目标检测·机器学习·计算机视觉·课程设计
benchmark_cc15 小时前
用 QuantDash 读取单只股票五档盘口:抽样、缺失值检查与复现记录
python·数据分析·pandas·量化交易·股票数据·quantdash
罗西的思考17 小时前
【轻量化复刻大模型 / KIMI K3】AttnRes 模块交互式演示
人工智能·算法·机器学习
硅谷秋水1 天前
将闲科技(LiberAI)提出世界动作模型Liber-0
机器学习·计算机视觉·语言模型·机器人