运行机制

定义

时间循环事件驱动入口

描述

OnData会按交易时间顺序同步执行,确保策略状态与市场数据严格一致。
当新数据到达时引擎自动调用此方法,将当前时间切片(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}");
        }
    }
}