Reglas para libros de órdenes y operaciones
Descripción general
SimpleRulesStrategy es una estrategia que demuestra distintas formas de crear y aplicar reglas en StockSharp. Se suscribe a operaciones y libros de órdenes, y luego establece varias reglas para procesar los datos recibidos.
Componentes principales
// Componentes principales
public class SimpleRulesStrategy : Strategy
{
}
Método OnStarted
Se llama cuando se inicia la estrategia:
- Crea suscripciones a operaciones y libros de órdenes
- Demuestra distintas formas de crear y aplicar reglas
// Método OnStarted
protected override void OnStarted2(DateTime time)
{
var tickSub = new Subscription(DataType.Ticks, Security);
var mdSub = new Subscription(DataType.MarketDepth, Security);
//-----------------------Crear una regla. Método №1-----------------------------------
mdSub.WhenOrderBookReceived(this).Do((depth) =>
{
LogInfo($"Regla WhenOrderBookReceived №1 BestBid={depth.GetBestBid()}, BestAsk={depth.GetBestAsk()}");
}).Once().Apply(this);
//-----------------------Crear una regla. Método №2-----------------------------------
var whenMarketDepthChanged = mdSub.WhenOrderBookReceived(this);
whenMarketDepthChanged.Do((depth) =>
{
LogInfo($"Regla WhenOrderBookReceived №2 BestBid={depth.GetBestBid()}, BestAsk={depth.GetBestAsk()}");
}).Once().Apply(this);
//----------------------Regla dentro de una regla-----------------------------------
mdSub.WhenOrderBookReceived(this).Do((depth) =>
{
LogInfo($"Regla WhenOrderBookReceived №3 BestBid={depth.GetBestBid()}, BestAsk={depth.GetBestAsk()}");
//----------------------no es una regla Once-----------------------------------
mdSub.WhenOrderBookReceived(this).Do((depth1) =>
{
LogInfo($"Regla WhenOrderBookReceived №4 BestBid={depth1.GetBestBid()}, BestAsk={depth1.GetBestAsk()}");
}).Apply(this);
}).Once().Apply(this);
// Envío de solicitudes para suscribirse a datos de mercado.
Subscribe(tickSub);
Subscribe(mdSub);
base.OnStarted2(time);
}
Lógica
Método #1: Creación de una regla
- Crea una regla que se activa cuando se recibe un libro de órdenes
- Registra el mejor bid y ask
- La regla se activa solo una vez (
Once())
Método #2: Creación de una regla
- Demuestra una forma alternativa de crear una regla
- Funcionalmente idéntica al método #1
Regla dentro de una regla
- Crea una regla que se activa cuando se recibe un libro de órdenes
- Dentro de esta regla, se crea otra regla
- La regla externa se activa una vez; la regla interna, cada vez que se recibe un libro de órdenes
Características
- Demuestra distintas formas de crear y aplicar reglas en StockSharp
- Usa suscripción a operaciones y libros de órdenes
- Muestra un ejemplo de logging de información en una estrategia mediante el método
LogInfo - Ilustra el uso de
Once()para limitar la activación de reglas