Расскоментирование строки:
//_connector.SubscribeCandles(_candleSeries);
приводит к удвоению переменной _trades_count.
using System;
using Ecng.Common;
using StockSharp.Algo.Candles;
using StockSharp.Algo.Storages;
using StockSharp.Algo.Testing;
using StockSharp.BusinessEntities;
using StockSharp.Messages;
namespace ConsoleApp1
{
class Program
{
private static HistoryEmulationConnector _connector;
private static CandleSeries _candleSeries;
private static int _trades_count=0;
static void Main(string[] args)
{
var storageRegistry = new StorageRegistry { DefaultDrive = new LocalMarketDataDrive(@"D:\StockSharp\Storage\".ToFullPath()) };
var security = new Security { Id = "XBTUSD@BMEX", Code = "XBTUSD", Board = ExchangeBoard.Bitmex };
var portfolio = new Portfolio { Name = "test account", BeginValue = 1000000 };
_connector = new HistoryEmulationConnector(new[] { security }, new[] { portfolio })
{
HistoryMessageAdapter =
{
StorageRegistry = storageRegistry,
StorageFormat = StorageFormats.Csv,
StartDate = new DateTimeOffset(2017, 1, 1, 0, 0, 0, TimeSpan.FromTicks(0)),
StopDate = new DateTimeOffset(2017, 1, 2, 0, 0, 0, TimeSpan.FromTicks(0))
},
};
_candleSeries = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromMinutes(1))
{
BuildCandlesMode = MarketDataBuildModes.Build,
BuildCandlesFrom = MarketDataTypes.Trades,
};
_connector.NewSecurity += Connector_NewSecurity;
_connector.NewTrade += Connector_NewTrade;
_connector.Connect();
while (Console.ReadKey().KeyChar.ToString() != "z")
{
Console.WriteLine($"Кол-во сделок = {_trades_count}");
};
}
private static void Connector_NewSecurity(Security security)
{
_connector.RegisterTrades(security);
//_connector.SubscribeCandles(_candleSeries);
_connector.Start();
}
private static void Connector_NewTrade(Trade trade)
{
_trades_count++;
}
}
}