一个基本的量化交易系统大致上有两个分层:资金管理层与 ( 商品 策略 ) 层。 框架 ( 模组 ) 决定好了,再更有系统地强化各个模组,进而更接近交易本质。 初阶的交易者多数先选定一个邻近市场,如外汇或是熟悉的台股、台指期、台指选择权,并进行策略的开发。 一个基本策略的框架大致上如下,可以分成数个模组,设计者可以依循这样的框架进行一个初步策略开发或交易程式撰写:
1、多空指标 也就是多数人所认知的技术分析,诸如均线、KD、MACD、董诠通道、布林通道等大家耳熟能详的指标,场内游戏者希望能够藉此探知当前市场状态,是多或空。
2、交易合约模组 这个模组会较为细分,因不同交易所提供的商品与合约不同,使用这一模组可以快速选定特定商品与合约进行交易。
3、风控模组 交易员可以设置停损、加码、减码等动作,以及交易杠杆比例。
4、交易执行模组 这个模组会负责开平仓的讯号执行,以及订单的管理。
5、数据管理模组 这个模组通常会包括行情数据、财务数据、以及交易记录。
6、运算模组 这个模组可以进行技术指标计算、机器学习以及深度计算。
以下是一个简单的量化交易系统开发170系统-2006搭建-5093可电可微源码demo(使用Python编写),供参考:
i
import numpy as np
import pandas as pd
from sklearn import linear_model
import numpy as np
import pandas as pd
from sklearn import linear_model
# 定义交易资金
capital = 100000
# 定义每次交易的数量
trade_qty = 1000
# 定义交易费用
trade_fee = 0.003
# 定义时间跨度
time_span = 10
# 计算交易收益
def calc_profit(open_price, close_price):
return (close_price - open_price) * trade_qty - trade_qty * trade_fee * 2
# 计算交易均值回归模型
def calc_linear_model(df):
X = np.array(df['open']).reshape(-1, 1)
y = np.array(df['close']).reshape(-1, 1)
model = linear_model.LinearRegression()
model.fit(X, y)
return model.coef_[0][0], model.intercept_[0]
# 读入交易数据
df = pd.read_csv('trade_data.csv')
# 计算交易均值回归模型参数
slope, intercept = calc_linear_model(df)
# 初始化资产和交易结果
capital_list = []
result_list = []
# 开始交易
for i in range(time_span, len(df)):
# 计算收益
open_price = df.iloc[i-time_span]['open']
close_price = df.iloc[i]['close']
profit = calc_profit(open_price, close_price)