Regra Until
Visão Geral
SimpleRulesUntilStrategy é uma estratégia que demonstra a utilização de uma regra com uma condição de terminação (Until) no StockSharp. Subscreve negócios e livros de ordens e, em seguida, define uma regra que é executada até uma determinada condição ser cumprida.
Componentes Principais
// Componentes principais
public class SimpleRulesUntilStrategy : Strategy
{
}
Método OnStarted
Chamado quando a estratégia inicia:
- Cria subscrições para ticks e livros de ordens
- Cria uma regra que é executada quando são recebidos dados do livro de ordens até uma determinada condição ser cumprida
// 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($"Regra WhenOrderBookReceived BestBid={depth.GetBestBid()}, BestAsk={depth.GetBestAsk()}");
LogInfo($"Regra WhenOrderBookReceived i={i}");
})
.Until(() => i >= 10)
.Apply(this);
// Enviar solicitações de assinatura de dados de mercado.
Subscribe(tickSub);
Subscribe(mdSub);
base.OnStarted2(time);
}
Lógica
- Ao iniciar, a estratégia cria subscrições para ticks e livros de ordens
- É criada uma regra que é accionada sempre que são recebidos dados do livro de ordens
- Quando a regra é accionada:
- O contador
ié incrementado - A informação sobre os melhores preços bid e ask é adicionada ao log
- O valor actual do contador
ié adicionado ao log
- O contador
- A regra é executada até o valor do contador
iatingir ou exceder 10 - Depois de a condição ser cumprida, a regra pára automaticamente de funcionar
Funcionalidades
- Demonstra a utilização do método
Until()para limitar a execução da regra - Usa subscrição de negócios e livros de ordens
- Mostra um exemplo de registo de informação sobre o livro de ordens e o estado do contador usando o método
LogInfo - Ilustra como limitar o número de execuções da regra com base numa condição específica