直到规则
概览
SimpleRulesUntilStrategy 是一种策略,展示了在 StockSharp 中使用带有终止条件(Until)的规则的用法。它订阅交易和订单簿,然后建立一个规则,该规则会执行直到满足某个条件。
主要组件
// 主要组件
public class SimpleRulesUntilStrategy : Strategy
{
}
OnStarted 方法
策略开始时调用:
- 创建对行情和订单簿的订阅
- 创建一个规则,当收到订单簿数据时执行,直到满足某个条件为止
// OnStarted 方法
protected override void OnStarted2(DateTime time)
{
var tickSub = new Subscription(DataType.Ticks, Security);
var mdSub = new Subscription(DataType.MarketDepth, Security);
var i = 0;
mdSub.WhenOrderBookReceived(this).Do(depth =>
{
i++;
LogInfo($"规则 WhenOrderBookReceived BestBid={depth.GetBestBid()}, BestAsk={depth.GetBestAsk()}");
LogInfo($"规则 WhenOrderBookReceived i={i}");
})
.Until(() => i >= 10)
.Apply(this);
// 发送市场数据订阅请求。
Subscribe(tickSub);
Subscribe(mdSub);
base.OnStarted2(time);
}
逻辑
- 启动时,该策略会创建对报价和订单簿的订阅
- 创建了一个规则,每次接收到订单簿数据时都会触发
- 当规则触发时:
- 计数器
i已被增加 - 有关最佳买价和卖价的信息已被添加到日志中
- 计数器
i的当前值已添加到日志中
- 计数器
- 该规则会执行,直到计数器
i的值达到或超过 10 - 在条件满足后,规则会自动停止运行
特征
- 演示如何使用
Until()方法来限制规则执行 - 使用订阅进行交易和订单簿
- 展示了如何使用
LogInfo方法记录关于订单簿和对手方状态的信息的示例 - 说明如何根据特定条件限制规则执行的次数