Regra para uma Única Vela
Visão Geral
SimpleCandleRulesStrategy é uma estratégia que demonstra a utilização de regras para velas no StockSharp. Acompanha os volumes das velas e regista informação quando determinadas condições são cumpridas.
Componentes Principais
// Componentes principais
public class SimpleCandleRulesStrategy : Strategy
{
}
Método OnStarted
Chamado quando a estratégia inicia:
- Inicializa uma subscrição de velas de 5 minutos
- Define regras para processar velas
// Método OnStarted
protected override void OnStarted2(DateTime time)
{
var subscription = new Subscription(TimeSpan.FromMinutes(5).TimeFrame(), Security)
{
// velas prontas são muito mais rápidas que compressão em tempo real
// turn off compression to boost optimizer (!!! make sure you have candles)
//MarketData =
//{
// BuildMode = MarketDataBuildModes.Build,
// BuildFrom = DataType.Ticks,
//}
};
Subscribe(subscription);
var i = 0;
var diff = "10%".ToUnit();
this.WhenCandlesStarted(subscription)
.Do((candle) =>
{
i++;
this
.WhenTotalVolumeMore(candle, diff)
.Do((candle1) =>
{
LogInfo($"Regra WhenCandlesStarted e WhenTotalVolumeMore vela={candle1}");
LogInfo($"Regra WhenCandlesStarted e WhenTotalVolumeMore i={i}");
})
.Once().Apply(this);
}).Apply(this);
base.OnStarted2(time);
}
Lógica
- A estratégia subscreve velas de 5 minutos
- Quando cada vela começa a formar-se, é definida uma regra
- A regra é accionada quando o volume total da vela excede 10% (usando um valor percentual)
- Quando a regra é accionada, a informação sobre a vela e o contador é adicionada ao log
- Depois do primeiro accionamento, a regra deixa de funcionar graças ao método
Once()
Funcionalidades
- Demonstra a utilização das regras
WhenCandlesStartedeWhenTotalVolumeMore - Usa o mecanismo de subscrição de velas
- Mostra um exemplo de criação de um valor percentual através de
"10%".ToUnit() - Mostra um exemplo de registo de informação numa estratégia usando o método
LogInfo - Contém código comentado para configurar a construção de velas a partir de ticks