Obteniendo ticks online y transacciones agregadas

Para obtener datos de ticks online, es necesario anular el método OnNewTrade (MarketDataArg arg)

public class SampleTick:Indicator
    {
        protected override void OnCalculate(int bar, decimal value)
        {
        }

        protected override void OnNewTrade(MarketDataArg arg)
        {
        }
    }

La API también permite obtener transacciones agregadas. Para ello, debe anular el método OnCumulativeTrade(CumulativeTrade arg)

public class SampleTick:Indicator
    {
        protected override void OnCalculate(int bar, decimal value)
        {
        }

        protected override void OnCumulativeTrade(CumulativeTrade arg)
        {
        }
    }

Ejemplo de implementación de un indicador que emite un delta de las transacciones acumuladas por encima de 3 lotes:

public class SampleCumulativeTrades : Indicator
{
    protected override void OnCalculate(int bar, decimal value)
    {
    }
    protected override void OnCumulativeTrade(CumulativeTrade arg)
    {
        if (arg.Volume < 3) return;
        this[CurrentBar - 1] += arg.Volume * (arg.Direction == TradeDirection.Buy ? 1 : -1);
    }
}