历史文档

【历史文档】策略回测-其他方法

由qxiao创建,最终由small_q 被浏览 665 用户

更新

本文内容对应旧版平台与旧版资源,其内容不再适合最新版平台,请查看新版平台的使用说明

新版量化开发IDE(AIStudio):

https://bigquant.com/wiki/doc/aistudio-aiide-NzAjgKapzW

新版模版策略:

https://bigquant.com/wiki/doc/demos-ecdRvuM1TU

新版数据平台:

https://bigquant.com/data/home

https://bigquant.com/wiki/doc/dai-PLSbc1SbZX

新版表达式算子:

https://bigquant.com/wiki/doc/dai-sql-Rceb2JQBdS

新版因子平台:

https://bigquant.com/wiki/doc/bigalpha-EOVmVtJMS5

\

TradingCalendar

定义

class TradingCalendar

示例代码

session_distance(start_session_label, end_session_label):

获取两个交易日之间的差值交易日

参数:

  • start_session_label – 开始交易日
  • end_session_label – 结束交易日

示例代码

distance = context.trading_calendar.session_distance(pd.Timestamp('2017-06-13'), pd.Timestamp('2017-06-16'))
# 预期输出: 3

自定义交易日历

定义

get_extend_calendar_with_tradingdays(name, tradingdays=None, trading_sections= None)

如果是不同市场或者不同品种,那么需要设置不同的交易日历。

参数:

  • name - str 交易日历名称
  • tradingdays - datetime 日期
  • trading_sections - list 交易日历的section。其中,每个开盘、收盘形成一个section,section的类型为tuple,第一个元素为开盘时间,第二个元素为收盘时间。

示例代码

from datetime import time
# 直接根据回测数据的DataFrame的date来生成交易日历对象
trading_date = history_ds.read_df()['date']  # 交易日历的日期
trading_sections = [(time(9,30), time(11,30)), (time(13, 00), time(15,00))]  # 交易日历的开、收盘时间
# 生成交易日历
trading_calendar = get_extend_calendar_with_tradingdays('MyFutCalendar', tradingdays=trading_date, trading_sections=trading_sections)

# 3. 启动回测
m = M.trade.v4(
    instruments=instruments,
    start_date=start_date,
    end_date=end_date,
    initialize=initialize,
    handle_data=handle_data,
    prepare=prepare,
    order_price_field_buy='open',
    order_price_field_sell='open',
    capital_base=1000000,
    volume_limit=0,
    data_frequency=data_frequency,
    product_type=product_type,
    history_ds=history_ds,
    benchmark=benchmark_ds,
    trading_calendar=trading_calendar, # 传入交易日历
    m_deps=np.random.rand()
)

TradingAlgorithm

定义

class TradingAlgorithm

即context对象

参数:

  • trading_day_index – 当前交易日下标
  • capital_base – 初始资金
  • data_frequency – 数据频率
  • start_date – 回测开始时间
  • end_date– 回测结束时间
  • instruments– 回测证券空间
  • volume_limit–回测单个头寸上限比例

\

{link}