Для изменения размера нажмите или перетащите

Свечи

S# поддерживает следующие виды:

  • TimeFrameCandle - свеча на основе временного отрезка, таймфрейма. Можно задавать как популярные отрезки (минутки, часовики, дневные), так и кастомизированные. Например, 21 секунда, 4.5 минуты и т.д.
  • RangeCandle - свеча ценового разброса. Новая свеча создается, когда появляется сделка с ценой, выходящей за допустимые пределы. Допустимый предел формируется каждый раз на основе цены первой сделки.
  • VolumeCandle - свеча формируется до тех пор, пока суммарно по сделкам не будет превышен объем. Если новая сделка превышает допустимый объем, то она попадает уже в новую свечу.
  • TickCandle - то же самое, что и VolumeCandle, только в качестве ограничения вместо объема берется количество сделок.
  • PnFCandle - свеча пункто-цифрового графика (график крестики-нолики).
  • RenkoCandle - Рэнко свеча.

Как работать со свечами, показано в примере SampleCandle, который расположен в папке Samples/Quik/SampleCandles.

На следующих рисунках представлены графики TimeFrameCandle и RangeCandle:

sample timeframecandles
sample rangecandles

Запуск получения данных

  1. Все необходимые для методы получения свечей реализованны в классе Connector.

    Создадим коннектор и сконфигурируем его через Окно настройки подключений, как это сделать описано в пункте Окно настройки подключений

    C#
    ...
    
    private readonly Connector _connector = new Connector();
    
    ...
    
    if (_connector.Configure(this))
                {
                    new XmlSerializer<SettingsStorage>().Serialize(_connector.Save(), _connectorFile);
                }
    
    ...
  2. Далее, необходимо подписаться на событие ConnectorCandleSeriesProcessing, сигнализирующее о появлении нового значения для обработки:

    C#
    _connector.CandleSeriesProcessing += Connector_CandleSeriesProcessing;
    ...
    
    private void Connector_CandleSeriesProcessing(CandleSeries candleSeries, Candle candle)
    {
        Chart.Draw(_candleElement, candle);
    }
    
    ...
    Примечание Примечание
    Для отображения свечей используется графический компонент Chart.
  3. Необходимо объявить, какие именно свечи требуются и запустить получение данных через SubscribeCandles:

    C#
    ...
    
    //var _candleSeries = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromMinutes(5))
    //var _candleSeries = new CandleSeries(typeof(VolumeCandle), security, 10000m)
    //var _candleSeries = new CandleSeries(typeof(TickCandle), security, 1000)
    //var _candleSeries = new CandleSeries(typeof(RangeCandle), security, new Unit(0.1m))
    //var _candleSeries = new CandleSeries(typeof(RenkoCandle), security, new Unit(0.1m))
    //var _candleSeries = new CandleSeries(typeof(PnFCandle), security, new PnFArg() { BoxSize = 0.1m, ReversalAmount =1})
    //{
    //    BuildCandlesMode = MarketDataBuildModes.Build,
    //    IsCalcVolumeProfile = true
    //};
    
    _candleSeries =
        new CandleSeries(CandleSettingsEditor.Settings.CandleType, security, CandleSettingsEditor.Settings.Arg)
        {
            BuildCandlesMode = MarketDataBuildModes.Build,
            BuildCandlesFrom = MarketDataTypes.Trades,
            IsCalcVolumeProfile = true,
    
        };
    
    ...
    
    _connector.SubscribeCandles(_candleSeries, DateTime.Today.Subtract(TimeSpan.FromDays(30)), DateTime.Now);

    После этого этапа начнет вызываться событие ConnectorCandleSeriesProcessing.

Работа со свечами

Следующие шаги