VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 59
声望: 4

数据源采用聚宽连续合约,标的铁矿石,参数设置如下:

# 样本外检验
# 配置合约信息
# 缺TA8888 CF8888 SM8888 SC8888 ZC8888
# 合约大小写按交易所格式
vt_symbols = [
    "i8888.DCE"
]

rates = {s: 0.001 for s in vt_symbols}
slippages = {s: 0 for s in vt_symbols}
sizes = {s: contract_sizes[s] for s in vt_symbols}
priceticks = {s: 0.01 for s in vt_symbols}

# 创建回测引擎
engine = BacktestingEngine()

engine.set_parameters(
    vt_symbols=vt_symbols,
    interval=Interval.MINUTE,
    start=datetime(2019, 1, 1),
    end=datetime(2022, 4, 30),
    rates=rates,
    slippages=slippages,
    sizes=sizes,
    priceticks=priceticks,
    capital=10_000_000,
)

setting = {
    "entry_window": 20,
    "exit_window": 10,
    "n_window": 20,
    "unit_limit": 2
}
engine.add_strategy(TurtleStrategy, setting)

engine.load_data()
engine.run_backtesting()

df = engine.calculate_result()
engine.calculate_statistics()
engine.show_chart()

回测发现问题,如图,在2020年2月3日位置,发现净值跳跃

description

查看文华财经,铁矿石加权价格数据,2月3日为春节后,第一天,价格跳空,如图

description

通过函数engine.daily_results,engine.trades 导出合成的日线close和 成交明细数据,发现三个问题,需要请教:

第1个问题
在2020年2月3日,跳空前的几天,随机抽取两天1月20日,1月22日,发现 合成的收盘价,是23:00。跳空后的几天,随机抽取两天,合成的收盘价 是在15:00,为什么2月3日的前几天,合成的收盘价会取23:00?

1月20日
description

1月22日
description

2月6日

description

第2个问题
2020年2月3日跳空当天,分钟数据,价格基本都是在600附近,合成的2月3日收盘价 693.5 是如何得出来的?

description

第3个问题
向下跳空后,按道理,应该是向下突破做空吧?成交明细中,是买多,为什么会开多仓?

description

description

Member
avatar
加入于:
帖子: 59
声望: 4

怎么上传excel附件?

Member
avatar
加入于:
帖子: 4696
声望: 287
  1. 应该是数据源的问题,用米筐看了下也是这些时间段。不是数据源数据缺失就是缺失时段缺失没有交易吧;
  2. 可以自己在DailyBarGenerator里打印看看是在哪里出错的;
  3. 可以在策略中结合策略逻辑打印排查
© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】