时间循环事件驱动入口
运行机制
定义
描述
OnData会按交易时间顺序同步执行,确保策略状态与市场数据严格一致。
当新数据到达时引擎自动调用此方法,将当前时间切片(Slice对象)传入。
如:当初始化时加载了000001.XSHE平安银行股票分钟数据,2025-01-01至2025-06-30日数据进行回测时,OnData会从2025-01-01开始每个交易日的每分钟的0秒时刻触发直到触发到2025-06-30日
当新数据到达时引擎自动调用此方法,将当前时间切片(Slice对象)传入。
如:当初始化时加载了000001.XSHE平安银行股票分钟数据,2025-01-01至2025-06-30日数据进行回测时,OnData会从2025-01-01开始每个交易日的每分钟的0秒时刻触发直到触发到2025-06-30日
示例
public override void Initialize()
{
///系统设置 必须设置 因为此方法会获取策略ID 且必须是第一句
SetConfig(1, 5);
Print("初始化配置");
SetStartDate(BeginTime); // 设置回测开始日期,界面上选择2025-01-01
SetEndDate(EndTime); // 设置回测结束日期,界面上选择2025-06-30
//设置平安银行股票
var stock = AddStock("000001.XSHE", Resolution.Minute);
SymbolPool.Add(stock);
}
/// <summary>
/// 每天数据到达时调用
/// </summary>
/// <param name="slice"></param>
public override void OnData(Slice slice)
{
//每天10.00分打印所有股票此刻价格
if (Time.Hour == 10 && Time.Minute == 0)
{
foreach (var item in SymbolPool)
{
Console.WriteLine($"股票:{item.Value},价格:{Securities[item].Price}");
}
}
}