Regla Until
Descripción general
SimpleRulesUntilStrategy es una estrategia que demuestra el uso de una regla con condición de terminación (Until) en StockSharp. Se suscribe a operaciones y libros de órdenes, y luego establece una regla que se ejecuta hasta que se cumple una condición determinada.
Componentes principales
// Componentes principales
public class SimpleRulesUntilStrategy : Strategy
{
}
Método OnStarted
Se llama cuando se inicia la estrategia:
- Crea suscripciones a ticks y libros de órdenes
- Crea una regla que se ejecuta cuando se reciben datos del libro de órdenes hasta que se cumple una condición determinada
// Método 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($"Regla WhenOrderBookReceived BestBid={depth.GetBestBid()}, BestAsk={depth.GetBestAsk()}");
LogInfo($"Regla WhenOrderBookReceived i={i}");
})
.Until(() => i >= 10)
.Apply(this);
// Envío de solicitudes para suscribirse a datos de mercado.
Subscribe(tickSub);
Subscribe(mdSub);
base.OnStarted2(time);
}
Lógica
- Al iniciarse, la estrategia crea suscripciones a ticks y libros de órdenes
- Se crea una regla que se activa cada vez que se reciben datos del libro de órdenes
- Cuando la regla se activa:
- El contador
ise incrementa - La información sobre los mejores precios bid y ask se agrega al log
- El valor actual del contador
ise agrega al log
- El contador
- La regla se ejecuta hasta que el valor del contador
ialcanza o supera 10 - Después de que se cumple la condición, la regla deja de funcionar automáticamente
Características
- Demuestra el uso del método
Until()para limitar la ejecución de reglas - Usa suscripción a operaciones y libros de órdenes
- Muestra un ejemplo de logging de información sobre el libro de órdenes y el estado del contador mediante el método
LogInfo - Ilustra cómo limitar el número de ejecuciones de una regla en función de una condición específica