点差交易规则
概览
SimpleTradeRulesStrategy 是一种策略,它展示了在 StockSharp 中使用组合规则分析交易价格的方法。它订阅交易并创建一个在特定价格条件下触发的规则。
主要组件
// 主要组件
public class SimpleTradeRulesStrategy : Strategy
{
}
OnStarted 方法
策略开始时调用:
- 创建对行情的订阅
- 创建一个用于分析交易价格的组合规则
// OnStarted 方法
protected override void OnStarted2(DateTime time)
{
var sub = new Subscription(DataType.Ticks, Security);
sub.WhenTickTradeReceived(this).Do(t =>
{
sub
.WhenLastTradePriceMore(this, t.Price + 2)
.Or(sub.WhenLastTradePriceLess(this, t.Price - 2))
.Do(t =>
{
LogInfo($"规则 WhenLastTradePriceMore 或 WhenLastTradePriceLess tick={t}");
})
.Apply(this);
})
.Once() // call this rule only once
.Apply(this);
// 发送市场数据订阅请求。
Subscribe(sub);
base.OnStarted2(time);
}
逻辑
- 当收到第一个行情时,会创建一个组合规则
- 它基于收到的价格波动:创建一个当价格变动±2时触发的规则
- 当最后一次交易的价格超过当前价格 +2 或低于当前价格 -2 时,该规则生效
- 当规则触发时,有关该勾选的信息会被添加到日志中
- 外部规则只触发一次(
Once())
特征
- 演示使用
Or()创建组合规则 - 使用
WhenLastTradePriceMore和WhenLastTradePriceLess进行价格分析 - 显示使用
LogInfo方法记录交易信息的示例 - 说明如何使用
Once()来限制规则触发 - 将 tick 参数传递给事件处理程序(与文档中的示例不同)