Regras para Livros de Ordens e Negócios

Visão Geral

SimpleRulesStrategy é uma estratégia que demonstra várias formas de criar e aplicar regras no StockSharp. Subscreve negócios e livros de ordens e, em seguida, define várias regras para processar os dados recebidos.

Componentes Principais

// Componentes principais
public class SimpleRulesStrategy : Strategy
{
}

Método OnStarted

Chamado quando a estratégia inicia:

  • Cria subscrições para negócios e livros de ordens
  • Demonstra várias formas de criar e aplicar regras
// Método OnStarted
protected override void OnStarted2(DateTime time)
{
	var tickSub = new Subscription(DataType.Ticks, Security);
	var mdSub = new Subscription(DataType.MarketDepth, Security);

	// -----------------------Criar regra. Método №1-----------------------------------
	mdSub.WhenOrderBookReceived(this).Do((depth) =>
	{
		LogInfo($"Regra WhenOrderBookReceived №1 BestBid={depth.GetBestBid()}, BestAsk={depth.GetBestAsk()}");
	}).Once().Apply(this);

	// -----------------------Criar regra. Método №2-----------------------------------
	var whenMarketDepthChanged = mdSub.WhenOrderBookReceived(this);

	whenMarketDepthChanged.Do((depth) =>
	{
		LogInfo($"Regra WhenOrderBookReceived №2 BestBid={depth.GetBestBid()}, BestAsk={depth.GetBestAsk()}");
	}).Once().Apply(this);

	// ----------------------Regra dentro de regra-----------------------------------
	mdSub.WhenOrderBookReceived(this).Do((depth) =>
	{
		LogInfo($"Regra WhenOrderBookReceived №3 BestBid={depth.GetBestBid()}, BestAsk={depth.GetBestAsk()}");

		// ----------------------não é regra Once-----------------------------------
		mdSub.WhenOrderBookReceived(this).Do((depth1) =>
		{
			LogInfo($"Regra WhenOrderBookReceived №4 BestBid={depth1.GetBestBid()}, BestAsk={depth1.GetBestAsk()}");
		}).Apply(this);
	}).Once().Apply(this);

	// Enviar solicitações de assinatura de dados de mercado.
	Subscribe(tickSub);
	Subscribe(mdSub);

	base.OnStarted2(time);
}

Lógica

Método #1: Criar uma Regra

  • Cria uma regra que é accionada quando é recebido um livro de ordens
  • Regista o melhor bid e ask
  • A regra é accionada apenas uma vez (Once())

Método #2: Criar uma Regra

  • Demonstra uma forma alternativa de criar uma regra
  • Funcionalmente idêntica ao Método #1

Regra Dentro de uma Regra

  • Cria uma regra que é accionada quando é recebido um livro de ordens
  • Dentro desta regra, é criada outra regra
  • A regra externa é accionada uma vez; a regra interna, sempre que é recebido um livro de ordens

Funcionalidades

  • Demonstra várias formas de criar e aplicar regras no StockSharp
  • Usa subscrição de negócios e livros de ordens
  • Mostra um exemplo de registo de informação numa estratégia usando o método LogInfo
  • Ilustra a utilização de Once() para limitar o accionamento da regra